·ChinaUnix首页 ·论坛 ·博客 
Linux首页 | Linux新闻 | Linux论坛 | Linux文档 | Linux下载 | Linux博客 | Linux搜索 | 开源项目孵化平台 | 《开源时代》
新手入门 | 安装启动 | 管理员指南 | 开发手册 | 桌面应用 | 程序开发 | 数据库 | 网络技术| CentOS | Fedora | MySQL | Apache | Ubuntu | Gentoo| OSCON08
  Linux时代 >> 技术文档 >> 安装启动
 
linux 单网卡来绑定多IP实现多网段访问以及多网卡绑定单IP实现附载均衡
来源: ChinaUnix博客  日期: 2010.01.26 16:30 (共有条评论) 我要评论
 

今天有遇到实现linux下访问多网段问题,以前只是有注意资料修改linux路由的的方法,在使用2003系统时倒是有经常单网卡访问多网段。前提是先绑定每个网段的一个IP
那同理如果我们需要实现linux下单网卡访问多网段,我们就必须先在单网卡上绑定多个IP了,看以下实现:
我这里以自己使用的Redhat Enterprise Linux为例说明。
假设需要绑定多IP的网卡是eth0,我们先看看原网卡的配置信息和系统路由:
[root@test network-scripts]# more ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static
BROADCAST=172.16.1.255
HWADDR=00:0C:29:A2:0C:32
IPADDR=172.16.1.55
NETMASK=255.255.255.0
NETWORK=172.16.1.0
ONBOOT=yes
TYPE=Ethernet
[root@test network-scripts]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
172.16.1.0      0.0.0.0         255.255.255.0   U     0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth0
0.0.0.0         172.16.1.1      0.0.0.0         UG    0      0        0 eth0
请在/etc/sysconfig/network-scripts目录里面创建一个名为ifcfg-eth0:0的文件,内容和原来ifcfg-eth0内容类似,但是需要注意按照自己的目的修改,如下这是原网卡的配置信息:我们也可以简单地将原ifcfg-eth0复制一份并更名为ifcfg-eth0:1
[root@test network-scripts]# cp ifcfg-eth0 ifcfg-eth0:1
并修改内容如下
[root@test network-scripts]# more ifcfg-eth0:1
DEVICE=eth0:1   
BOOTPROTO=static
BROADCAST=192.168.140.255
HWADDR=00:0C:29:A2:0C:32
IPADDR=192.168.140.242
NETMASK=255.255.255.0
NETWORK=192.168.140.0
ONBOOT=yes
TYPE=Ethernet
其中的DEVICE为设备的名称,如果复制过来后设备名没有修改,该网卡上将会被绑定eth0:1这个文件中的IP。
IPADDR为此设备的IP地址,BROADCAST是广播地址,NETMASK为子网掩码,ONBOOT 表示在系统启动时自动启动,如果IP地址相同,该网卡会被自动down掉的,即ONBOOT=no
[root@test network-scripts]# service network restart  //配置完成后重新启动网络服务就可以了连接到新的网段了。
[root@test network-scripts]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
172.16.1.0      0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.140.0   0.0.0.0         255.255.255.0   U     0      0        0 eth0  //增加绑定IP后自动添加的路由
169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth0
0.0.0.0         172.16.1.1      0.0.0.0         UG    0      0        0 eth0
[root@test network-scripts]# ping 192.168.140.1    //并且可以对应网段正常通信了。
PING 192.168.140.1 (192.168.140.1) 56(84) bytes of data.
64 bytes from 192.168.140.1: icmp_seq=0 ttl=255 time=3.75 ms
如果需要再绑定多一个IP地址,只需要把文件名和文件内的DEVICE中的eth0:x加一即可,LINUX最多可以支持255个IP别名.
对以上内容的一点扩充:在这里我在用route命令添加静态路由,使该机器可以访问到其他网段:注意:我这里的环境是192.168.140.1为三层交换机上一个VLAN的IP,并且三层交换上启用了路由在手动增加静态路由之前,我们并没有办法访问到192.168.140.1以外的网段。我们这里添加一条路由
[root@test network-scripts]# route add -net 192.168.0.0/16 gw 192.168.140.1
[root@test network-scripts]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
172.16.1.0      0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.140.0   0.0.0.0         255.255.255.0   U     0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth0
192.168.0.0     192.168.140.1   255.255.0.0     UG    0      0        0 eth0
0.0.0.0         172.16.1.1      0.0.0.0         UG    0      0        0 eth0
[root@test network-scripts]# ping 192.168.200.1   //这里我们可以看到增加静态路由后立即就可以通过三层交换访问到其他网段了
PING 192.168.200.1 (192.168.200.1) 56(84) bytes of data.
64 bytes from 192.168.200.1: icmp_seq=0 ttl=63 time=3.77 ms
route 命令参数如果记不牢固,可以通过route --help查看即可。对于linuix使用者来说,任何情况这是最直接也是最好的帮助了。当然我们希望不要每次重新启动计算机之后去手动添加路由,那我们可以把该命令写入到系统启动脚本/etc/rc.d/rc.local中
普遍适用的单网卡绑定多IP实现方法
ifconfig eth0:1 192.168.140.242 broadcast 192.168.140.255 netmask 255.255.255.0
同样可以把上述命令加在启动脚本/etc/rc.d/rc.local中.
多网卡共用单IP的实现方法
 
  使用多块网卡虚拟成为一块网卡,具有相同的IP地址。这项技术其实在cisco和sun中已经存在,分别称为Trunking和 etherchannel技术,在linux中,这种技术称为bonding.因为bonding在内核2.4.x中已经包含了,只需要在编译的时候把网络设备选项中的 Bonding driver support选中就可以了。然后,重新编译核心,重新起动计算机,执行如下命令:
ismod bonding
ifconfig eth0 down
ifconfig eth1 down
ifconfig bond0 ipaddress
ifenslave bond0 eth0
ifenslave bond0 eth1
现在两块网卡已经象一块一样工作了,这样可以提高集群节点间的数据传输。
你最好把这几句写成一个脚本,再由/etc/rc.d/rc.local,以便一开机就生效。
  bonding对于服务器来是个比较好的选择,在没有千兆网卡时,用两三块100兆网卡作 bonding,可大大提高服务器到交换机之间的带宽。但是需要在交换机上设置连接bonding 网卡的两个口子映射为同一个虚拟接口。


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/94024/showart_2161337.html
  发表评论 查看评论(共有条评论)
 
 


最新资讯更多>> 
· 谷歌劝说诺基亚采用Android操作..
· Apache 基金会确认退出 JCP 执..
· Chrome 10 新功能探秘:新增GP..
· 金山宣布开源其安全软件
· 女黑客在开源会议上抱受骚扰
· 21款值得关注的Linux游戏
· 马化腾:腾讯半年后彻底转型,..
· [多图] Chrome OS 预发布版本多..
· Lubuntu 11.04 默认应用抢先一览
· Red Hat宣布收购云计算软件提供..
论坛热点更多>> 
· do_execve时候用户栈中参数的..
· swapinfo -atm 问题
· Linux 的优点简述
· VM虚拟机上得Red Hat Linux上..
· 我看成了上海男人喜欢女人毛..
· 校车展览,看了你就知道
· 在遇到他之前,唯一需要做的..
· GRUB的疑问
· 从来没有人真正付足书价——..
· 云存储 vs 网盘
文档更新更多>> 
· orcale queue
· 谁可以推荐几本经典的操作系统的..
· 【北京】某物联网公司招云计算应..
· 【北京】某物联网公司招云计算应..
· 谁能推荐几本关于操作系统的书
· 如何添加网络接口eth1
· 葡萄牙语入门教材的选取与经验分享
· 葡萄牙语就业前景分析
· 葡萄牙语学习经验交流
· Щ
 
关于我们 | 联系方式 | 广告合作 | 诚聘英才 | 网站地图 | 友情链接 | 免费注册

Copyright © 2001-2009 ChinaUnix.net All Rights Reserved

感谢所有关心和支持过ChinaUnix的朋友们

京ICP证:060528号