26
Jun

Linux单网卡绑定多IP与多网卡共用单IP的实现方法


版权声明:可以在网上任意转载,转载时请务必以超链接形式标明文章原始出处、作者信息及本声明文字。
作者:shunz,出处:http://shunz.net/2006/06/linux_muti_ip.html

在Linux下有时候需要给一个网卡绑定多个IP,本文介绍在Redhat系列(redhat,Fedora Core,Centos)中的实现方法和一种在Gentoo等其他Linux中普遍适用的方法。
1、单网卡绑定多IP在Redhat系列中的实现方法

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

DEVICE="eth0:0"
IPADDR="192.168.0.2"
BROADCAST="172.168.0.255"
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 192.168.0.3 broadcast 192.168.0.255 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 网卡的两个口子映射为同一个虚拟接口。

没有评论

第一个在本文留言。

发表评论

名字(必须)
邮箱(不会被公布)(必须)
网址

字体为 粗体 是必填项目,邮箱地址 永远不会 公布。

允许部分 HTML 代码:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>
URIs must be fully qualified (eg: http://shunz.net/) and all tags must be properly closed.

超出部分系统将会自动分段及换行。

请保证评论内容是与日志或 Blog 内容相关的,灌水、攻击性或不恰当的评论 may 会被编辑或删除。

    关于

      我,shunz,在这里默默记录自己的所学所思以及所关注的事情...
      Blog del.icio.us Flickr Furl Gmail/Google Talk Google Reader Google Shared Stuff Picasa Web Albums Twitter YouTube Zooomr douban

    订阅

    页面

    广告

    分类