Linux 雙網卡綁定
Table of Contents
1 什麼是bind
bind 是多網卡綁定的一種稱謂。通俗來講,bind 是一種網卡集羣的技術,能夠將多塊網卡 配置爲主備或者負載均衡,它會虛擬出一塊物理上不存在的網卡(一般名字爲bond0),並與 參與綁定的物理網卡持有相同的IP地址。css
bind有兩種模式: 網卡主備、負載均衡.假設參與綁定的物理網卡分別是eth0和eth1.對於 綁定模式的理解以下:html
mode=1:主備模式,只有主網卡eth0工做,eth1做爲備用網卡並不工做,eth1的做用就是 等待eth0沒法正常使用時,它頂替eth0繼續工做。 mode=0:負載均衡模式,兩塊網卡都工做,提供兩倍帶寬。
2 爲何要bind
-
高可用java
一套業務是由多個功能組件組成的。任何一個組件不能工做者會致使業務沒法正常運行, 爲了不因組件故障而影響業務,不少組件都出現了主備模式,實際就是有一個一樣功能 的備用組件,當正常工做的組件異常(壞掉了),備用的直接頂替原有組件工做。python
在主機中的網絡保障,就是經過雙網卡綁定技術來實現的,能夠保證業務在網絡層可持 續不間斷 .sql
-
提升網絡吞吐量shell
不少大企業天天處理幾T甚至幾十T的數據,有龐大的帶寬支持下,還須要網卡一樣支持 處理如此多的數據包,基於各類緣由,有時候一個網卡沒法知足如此大的數據量,此時 添加一塊網卡,進行雙網卡綁定爲負載均衡模式,能夠提升一倍的吞吐量。sass
3 如何配置
- 在操做系統上添加兩塊網卡
-
查看設備名ruby
ifconfig -a 或者 ip a
示例:bash
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 10.211.55.14 netmask 255.255.255.0 broadcast 10.211.55.255 inet6 fdb2:2c26:f4e4:0:21c:42ff:fe26:8b74 prefixlen 64 scopeid 0x0<global> inet6 fe80::21c:42ff:fe26:8b74 prefixlen 64 scopeid 0x20<link> ether 00:1c:42:26:8b:74 txqueuelen 1000 (Ethernet) RX packets 2163 bytes 650492 (635.2 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 212 bytes 23989 (23.4 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
其中eth0即爲設備名。通常狀況下CentOS/RHEL 中網卡的設備名是 ethN的格式或者ensN等, N爲非負整數。 因此新添加的網卡,通常爲eth0,eth1等,這裏以此爲例。服務器
- 配置網卡的網絡參數 網卡配置時,參數及值不區分大小寫。所以不用特別在乎。
-
確認配置文件 在Linux系統中,網卡的配置文件存放在 /etc/sysconfig/network-scripts 路徑中。 網卡對應的配置文件以以下格式命名:
ifcfg-<設備名>
-
修改物理網卡配置 此配置應用於eth0和eth1,請分別配置
DEVICE=<設備名> TYPE=Ethernet ONBOOT=yes BOOTPROTO=none MASTER=bond0 SLAVE=yes
- 參數說明
-
- DEVICE #網口名eth0
- TYPE #ethernet表示以太網接口
- ONBOOT=yes #LINUX在啓動時激活該網口
- BOOTPROTO=none #使用什麼協議激活網口, none表示不使用任何協議, static表示設置靜態IP, dhcp表示動態獲取IP
- MASTER=bond0 #指定虛擬網口的名字(主人)
- SLAVE=yes #備用(從設備)
-
配置虛擬網卡 通常虛擬網卡咱們配置成bondN,第一個虛擬網卡爲bond0,根據網卡配置文件的命名規則, 該虛擬網的配置文件爲名 ifcfg-bond0 ,在該文件中添加如下內容:
DEVICE=bond0 TYPE=Ethernet ONBOOT=yes BOOTPROTO=static IPADDR=192.168.150.50 NETMASK=255.255.255.0 GATEWAY=192.168.150.1
-
-
配置綁定模式及監測 在路徑/etc/modprobe.d/中新建一個文件,可隨意命名,便於區分該文件的做用便可。 好比物命名爲bind.conf. 在該文件中添加如下兩行內容:
alias bond0 bonding options bond0 miimon=100 mode=1
miimon是用來進行鏈路監測的:miimon=100表示系統每100ms監測一次鏈路鏈接狀態,若是有一條線路不一樣就轉入另外一條線路。
mode=1表示屬於主備模式。 -
配置物理網卡與虛擬網卡之間的綁定關係及開機啓動 /etc/rc.d/rc.local文件中加入以下語句:
ifenslave bond0 eth0 eth1
-
重啓服務器
reboot
4 查看當前使用的網卡
cat /proc/net/bonding/bond0|grep "Currently Active Slave"
示例:
Currently Active Slave: eth0
此示例表示eth0 爲當前正在使用的網卡,eth1爲備用