Linux雙網卡聚合改造
一、環境和需求
Linux主機只有一塊網卡接到交換機上,為了消除交換機的單點,新增一臺交換機,Linux主機端新接一塊網卡到新交換機上,對這兩塊網卡做聚合達到目的。
二、物理連線
使用網線連接新增交換機和新網卡
三、停應用
對網卡做聚合改造,會造成網絡中斷,為了消除對生產的影響,建議停止應用后再做改造
四、網絡聚合改造
1)對/etc/modprobe.conf文件新增以下內容
# vi /etc/modprobe.conf
alias bond0 bonding
options bond0 mode=1 miimon=100 use_carrier=0
說明:
miimon=100,那么系統每100ms監測一次鏈路連接狀態,如果有一條線路不通就轉入另一條線路;
mode的值表示工作模式:
mode=0表示為負載均衡方式,兩塊網卡都工作。
mode=1表示提供冗余功能,工作方式是主備的工作方式
2)建立虛擬網卡配置文件
# vi /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.0.215
USERCTL=no
NETMASK=255.255.255.0
NETWORK=192.168.0.0
BROADCAST=192.168.0.255
GATEWAY=192.168.0.1
TYPE=Ethernet
其中IPADDR=192.168.0.215是原網卡的IP地址
3)更改原有網卡屬性
#vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
MASTER=bond0
SLAVE=yes
HWADDR=00:0C:29:38:37:23
4)更改新增網卡屬性
#vi /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
MASTER=bond0
SLAVE=yes
HWADDR=00:0c:29:38:37:2d
5)用命令/etc/rc.d/init.d/network restart重新啟動網絡子系統,也可以重新啟動系統來使bond0生效。
# /etc/rc.d/init.d/network restart
Shutting down interface bond0:[OK]
Shutting down loopback interface:[OK]
Bringing up loopback interface:[OK]
Bringing up interface bond0:[OK]
重啟網絡的時候,對IP做PING測試,中間有丟包,后續又恢復通訊
檢查IP地址:
# ifconfig
bond0Link encap:EthernetHWaddr 00:0C:29:38:37:23
inet addr:192.168.0.214Bcast:192.168.0.255Mask:255.255.255.0
UP BROADCAST RUNNING MASTER MULTICASTMTU:1500Metric:1
RX packets:48915 errors:0 dropped:0 overruns:0 frame:0
TX packets:4804 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:3857250 (3.6 MiB)TX bytes:394142 (384.9 KiB)
eth0Link encap:EthernetHWaddr 00:0C:29:38:37:23
UP BROADCAST RUNNING SLAVE MULTICASTMTU:1500Metric:1
RX packets:26942 errors:0 dropped:0 overruns:0 frame:0
TX packets:4754 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:2121514 (2.0 MiB)TX bytes:385269 (376.2 KiB)
eth1Link encap:EthernetHWaddr 00:0C:29:38:37:23
UP BROADCAST RUNNING SLAVE MULTICASTMTU:1500Metric:1
RX packets:21973 errors:0 dropped:0 overruns:0 frame:0
TX packets:50 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1735736 (1.6 MiB)TX bytes:8873 (8.6 KiB)
loLink encap:Local Loopback
inet addr:127.0.0.1Mask:255.0.0.0
UP LOOPBACK RUNNINGMTU:16436Metric:1
RX packets:1375 errors:0 dropped:0 overruns:0 frame:0
TX packets:1375 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:4201832 (4.0 MiB)TX bytes:4201832 (4.0 MiB)
# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.4.0-1 (October 7, 2008)
Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: eth2
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: eth2
MII Status: up
Speed: 100 Mbps
Duplex: full
Link Failure Count: 1
Permanent HW addr: b8:ca:3a:f9:6b:33
Slave Interface: eth3
MII Status: down
Speed: 100 Mbps
Duplex: full
Link Failure Count: 2
Permanent HW addr: b8:ca:3a:f9:6b:34
6)設置成聚合開機自啟動
# vi /etc/rc.d/rc.local
ifenslave bond0 eth0 eth1
7)網卡切換測試
拔eth0網卡網線,查看是否會自動切到eth1網卡上,檢查丟包情況
使用cat /proc/net/bonding/bond0命令查看
切到eth1網卡上
接回eth0網線,不會自動切回到eth0上,除非拔出eth1網卡