Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103605299
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: LINUX

2008-03-20 18:56:36

作者:sixth  出处:linux.ccidnet.com   
 
在Linux下有时候需要给一个网卡绑定多个IP: 

1、单网卡绑定多IP在Redhat系列中的实现方法 


假设需要绑定多IP的网卡是eth0,请在/etc/sysconfig/network-scripts目录里面创建一个名为ifcfg-eth0:0的文件, 

内容样例为: 


DEVICE=”eth0:0″ 

IPADDR=”172.16.170.2″ 

BROADCAST=”172.16.170.254″ 

NETMASK=”255.255.255.0″ 

ONBOOT=”yes” 


其中的DEVICE为设备的名称, 

IPADDR为此设备的IP地址, 

BROADCAST是广播地址, 

NETMASK为子网掩码, 

ONBOOT 表示在系统启动时自动启动。 

如果需要再绑定多一个IP地址, 

只需要把文件名和文件内的DEVICE中的eth0:x加一即可。 

LINUX最多可以支持255个IP别名 


2、普遍适用的单网卡绑定多IP实现方法 


ifconfig eth0:1 172.16170.0.3 broadcast 172.16.170.254 netmask 255.255.255.0 


可以把上述命令加在启动自运行文件里面,在Gentoo下是/etc/conf.d/local.start,而某些版本的Linux是/etc/rc.d/rc.local。 


3、多网卡共用单IP的实现方法 


使用多块网卡虚拟成为一块网卡,具有相同的IP地址。这项技术其实在sun和cisco中已经存在,分别称为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或者/etc/conf.d/local.start调用,以便一开机就生效。 


bonding对于服务器来是个比较好的选择,在没有千兆网卡时,用两三块100兆网卡作 bonding,可大大提高服务器到交换机之间的带宽。但是需要在交换机上设置连接bonding 网卡的两个口子映射为同一个虚拟接口。 

 
阅读(315) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~