您的位置:首页 > 运维架构 > Linux

linux绑定多个ip(转载)

2011-10-07 14:41 281 查看
在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别名



就是仿照/etc/sysconfig/network-scripts/ifcfg-eth0增加一文件根据网络虚拟接口的名字进行命名,例如ifcfg-eth0:0或者ifcfg-eth0:1等等

下边看下ifcfg-eth0:0文件里面的配置信息

DEVICE=eth0:0 #网络虚拟接口eth0:0

ONBOOT=yes #启动的时候激活

BOOTPROTO=static #使用静态ip地址

IPADDR=192.168.0.1 #分配ip地址

NETMASK=255.255.255.0 #子网掩码

关闭一个ip呢则使用

#ifconfig eth0:0 down

---------------------------------------------------------------------------------------------------------------------------------

/etc/sysconfig/network-scripts目录里面创建一个名为ifcfg-eth0:0的文件,

格式就想这样

DEVICE="eth0:0"

IPADDR="74.117.61.20"

NETMASK="255.255.255.0"

ONBOOT="yes"

多个IP只需要eth0:x,比如 eth0:1 eth0:2


也不用重启,重启服务就可以了 /etc/init.d/network restart

---------------------------------------------------------------------------------------------------------------------------------

(说明在第一次安装之后如何在CentOS上添加另外的IP)

假设已有网卡配置为eth0,那么相应的应该有一个这样的文件:/etc/sysconfig/network-scripts/ifcfg-eth0
。我们可以用这个文件作为基础进行修改:


cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0:0
相应的如果需要配置第二个ip那么就是ifcfg-eth0:1

然后编辑这个文件:

vi /etc/sysconfig/network-scripts/ifcfg-eth0:0

内容大概如下:

# Intel Corporation 82545EM Gigabit Ethernet Controller (Copper)

DEVICE=eth0:0

BOOTPROTO=static

BROADCAST=192.168.0.255

IPADDR=192.168.0.101

NETMASK=255.255.255.0

NETWORK=192.168.0.0

ONBOOT=yes


一般来说只需要修改IPADDR就可以了。之后需要重启网络:

/etc/init.d/network restart

可能你也想修改一下/etc/hosts,不过这不是必需的步骤。

运行ifconfig就可以看到新配置的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 网卡的两个口子映射为同一个虚拟接口。

我一般用第二个。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: