首页 > 代码库 > Linux网卡多IP和bond实现多网卡使用同一IP

Linux网卡多IP和bond实现多网卡使用同一IP

一、一个网卡可以根据网络环境选择不同的IP

有时我们会遇到这样一种情况,在参加公司某个项目时,所在的网络环境没有DHCP服务,IP配置必须手动指定,而当我们下班回家继续工作时,必须更改IP配置才能正常上网。在windows和Linux中其实都支持备份IP的配置,即当主配置无法通过DHCP获得IP时,启用手动配置的备份IP。值得一提的是,只有当主IP配置使用DHCP时才能使用备用配置且备用配置必须手动指定。

这个配置非常的简单,只需创建一个/etc/sysconf/network-scripts/ifcfg-eth0:#即可,#为任意数字

内容为:

DEVICE=eth0:#

IPADDR=ip

PREFIX=mask

DNS1=dns

...

重启网络即可生效

技术分享

二、利用bond实现多网卡使用同一个IP,仅适用于centos6

就是将多块网卡绑定同一IP地址对外提供服务,可以实现高可用或者负载均衡。当然,直接给两块网卡设置同一IP地址是不可能的。通过bonding,虚拟一块网卡对外提供连接,物理网卡的被修改为相同的MAC地址。

bond有7个级别。这里以mode0,mode1,mode2为例

mode0:
轮转(Round-robin)策略:从头到尾顺序的在每一个slave接口上面发送数据包。本模式提供负载均衡和容错的能力

mode1:

活动-备份(主备)策略:在绑定中,只有一个slave被激活。当且仅当活动的slave接口失败时才会激活其他slave。为了避免交换机发生混乱此时绑定的MAC地址只有一个外部端口上可见

mode2:

广播策略:在所有的slave接口上传送所有的报文。本模式提供容错能力。

创建bonding设备的配置文件

[root@linux ~]# cat /etc/sysconfig/network-scripts/ifcfg-bond0 
DEVICE=bond0
IPADDR=10.1.70.233
PREFIX=16
BOOTPROTO=none
BONDING_OPTS="miimon=100 mode=0"
[root@linux ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
#TYPE=Ethernet
#UUID=5ac4135c-6d2f-43ca-a086-644149193ebb
#ONBOOT=yes
#NM_CONTROLLED=yes
#BOOTPROTO=none
#HWADDR=00:0C:29:00:90:1A
#IPADDR=10.1.70.101
#PREFIX=16
#GATEWAY=10.1.0.1
#DEFROUTE=no
#IPV4_FAILURE_FATAL=yes
#IPV6INIT=no
#NAME="System eth0"
MASTER=bond0
SLAVE=yes
[root@linux ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
#TYPE=Ethernet
#UUID=889cd85b-86bd-4acb-bc4b-6c525f60224c
#ONBOOT=yes
#NM_CONTROLLED=yes
#BOOTPROTO=dhcp
#HWADDR=00:0C:29:00:90:24
#DEFROUTE=yes
#PEERDNS=yes
#PEERROUTES=yes
#IPV4_FAILURE_FATAL=yes
#IPV6INIT=no
#NAME="System eth1"
MASTER=bond0
SLAVE=yes
[root@linux ~]# ifconfig 
bond0     Link encap:Ethernet  HWaddr 00:0C:29:00:90:1A  
          inet addr:10.1.70.233  Bcast:10.1.255.255  Mask:255.255.0.0
          inet6 addr: fe80::20c:29ff:fe00:901a/64 Scope:Link
          UP BROADCAST RUNNING MASTER MULTICAST  MTU:1500  Metric:1
          RX packets:2990 errors:0 dropped:0 overruns:0 frame:0
          TX packets:102 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:268909 (262.6 KiB)  TX bytes:13279 (12.9 KiB)
eth0      Link encap:Ethernet  HWaddr 00:0C:29:00:90:1A  
          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
          RX packets:30770 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1901 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:2798765 (2.6 MiB)  TX bytes:292096 (285.2 KiB)
eth1      Link encap:Ethernet  HWaddr 00:0C:29:00:90:1A  
          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
          RX packets:21834 errors:0 dropped:0 overruns:0 frame:0
          TX packets:11533 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:28555592 (27.2 MiB)  TX bytes:704577 (688.0 KiB)







Linux网卡多IP和bond实现多网卡使用同一IP