Linux(09):網路卡繫結
網路卡bond是透過把多張網路卡繫結為一個邏輯網路卡,實現本地網路卡的冗餘,頻寬擴容和負載均衡。在應用部署中是一種常用的技術,我們公司基本所有的專案相關伺服器都做了bond,這裡總結整理,以便待查。
一、bond模式
-
Mode=0(balance-rr) 表示負載分擔round-robin,和交換機的聚合強制不協商的方式配合。
-
Mode=1(active-backup) 表示主備模式,只有一塊網路卡是active,另外一塊是備的standby,這時如果交換機配的是捆綁,將不能正常工作,因為交換機往兩塊網路卡發包,有一半包是丟棄的。
-
Mode=2(balance-xor) 表示XOR Hash負載分擔,和交換機的聚合強制不協商方式配合。(需要xmit_hash_policy)
-
Mode=3(broadcast) 表示所有包從所有interface發出,這個不均衡,只有冗餘機制...和交換機的聚合強制不協商方式配合。
-
Mode=4(802.3ad) 表示支援802.3ad協議,和交換機的聚合LACP方式配合(需要xmit_hash_policy)
-
Mode=5(balance-tlb) 是根據每個slave的負載情況選擇slave進行傳送,接收時使用當前輪到的slave
-
Mode=6(balance-alb) 在5的tlb基礎上增加了rlb。
5和6不需要交換機端的設定,網路卡能自動聚合。4需要支援802.3ad。0,2和3理論上需要靜態聚合方式,但實測中0可以透過mac地址欺騙的方式在交換機不設定的情況下不太均衡地進行接收。
常用的有三種
-
mode=0:平衡負載模式,有自動備援,但需要”Switch”支援及設定。
-
mode=1:自動備援模式,其中一條線若斷線,其他線路將會自動備援。
-
mode=6:平衡負載模式,有自動備援,不必”Switch”支援及設定。
在mode=6 下有丟包現象。 推薦選擇mode=0
二、Linux網口繫結
透過網口繫結(bond)技術,可以很容易實現網口冗餘,負載均衡,從而達到高可用高可靠的目的。前提約定:
-
2個物理網口分別是:eth0,eth1
-
繫結後的虛擬口是:bond0
-
伺服器IP是:192.168.0.100
-
第一步,配置設定檔案:
-
/etc/sysconfig/network-scripts/ifcfg-bond0
TYPE=Ethernet DEVICE=bond0 BOOTPROTO=none ONBOOT=yes USERCTL=no IPADDR=192.168.0.100 NETMASK=255.255.255.0 NETWORK=192.168.0.0 BROADCAST=192.168.0.255 NM_CONTROLLED=no
-
/etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet DEVICE=eth0 BOOTPROTO=none ONBOOT=yes MASTER=bond0 SLAVE=yes USERCTL=no
-
/etc/sysconfig/network-scripts/ifcfg-eth1
TYPE=Ethernet DEVICE=eth1 BOOTPROTO=none ONBOOT=yes MASTER=bond0 SLAVE=yes USERCTL=no
第二步,修改modprobe相關設定檔案,並載入bonding模組:
-
在這裡,我們直接建立一個載入bonding的專屬設定檔案/etc/modprobe.d/bonding.conf
[root@test ~]# vi /etc/modprobe.d/bonding.conf
#追加
alias bond0 bonding
options bonding mode=0 miimon=100
-
載入模組(重啟系統後就不用手動再載入了)
[root@test ~]# modprobe bonding
-
確認模組是否載入成功:
[root@test ~]# lsmod | grep bonding
bonding 100065 0
第三步,重啟一下網路,然後確認一下狀況:任意拔掉一根網線,然後再訪問你的伺服器,看網路是否還是通的。
[root@test ~]# /etc/init.d/network restart [root@test ~]# cat /proc/net/bonding/bond0 Ethernet Channel Bonding Driver: v3.5.0 (November 4, 2008) Bonding Mode: fault-tolerance (active-backup) Primary Slave: None Currently Active Slave: eth0 …… [root@test ~]# ifconfig | grep HWaddr bond0 Link encap:Ethernet HWaddr 00:16:36:1B:BB:74 eth0 Link encap:Ethernet HWaddr 00:16:36:1B:BB:74 eth1 Link encap:Ethernet HWaddr 00:16:36:1B:BB:74
從上面的確認資訊中,我們可以看到3個重要資訊:
-
現在的bonding模式是active-backup
-
現在Active狀態的網口是eth0
-
bond0,eth1的實體地址和處於active狀態下的eth0的實體地址相同,這樣是為了避免上位交換機發生混亂。
第四步,系統啟動自動繫結、增加預設閘道器:
[root@test ~]# vi /etc/rc.d/rc.local #追加 ifenslave bond0 eth0 eth1 route add default gw 192.168.0.1
三、/etc/modprobe.d/bonding.conf
四網路卡繫結兩對網路卡需注意,不能使用追加的方式
-
第一種:你可以看到,這種方式的話,多個bond口的模式就只能設成相同的了:
alias bond0 bonding alias bond1 bonding options bonding max_bonds=2 miimon=200 mode=1
-
第二種,這種方式,不同的bond口的mode可以設成不一樣:
alias bond0 bonding options bond0 miimon=100 mode=1 install bond1 /sbin/modprobe bonding -o bond1 miimon=200 mode=0
bonding.conf 含義:
-
miimon 監視網路連結的頻度,單位是毫秒,我們設定的是200毫秒。
-
max_bonds 配置的bond口個數
-
mode bond模式,在一般的實際應用中,0和1用的比較多。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31490526/viewspace-2637475/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux網路卡繫結Linux
- linux 網路卡繫結Linux
- linux雙網路卡繫結Linux
- Linux 繫結雙網路卡Linux
- Linux 雙網路卡繫結Linux
- linux rac 網路卡繫結Linux
- 【LINUX】Linux網路卡繫結探析Linux
- linux6.5 網路卡繫結Linux
- linux redhat 雙網路卡繫結LinuxRedhat
- Linux 雙網路卡繫結實踐Linux
- linux6.5 雙網路卡繫結Linux
- Linux 雙網路卡繫結技術Linux
- Redhat Linux網路卡配置與繫結RedhatLinux
- RedHat Linux 5 雙網路卡繫結RedhatLinux
- Liunx 網路卡繫結
- 雙網路卡繫結
- Redhat Linux網路卡配置與繫結(zt)RedhatLinux
- 剖析網路卡繫結模式模式
- Linux單網路卡繫結多IP與多網路卡共用單IPLinux
- Linux下繫結網路卡的操作記錄Linux
- Linux下雙網路卡繫結bond0Linux
- Linux下設定網路卡繫結 (final)Linux
- 多塊網路卡繫結IP在linux下Linux
- SUSE linux雙網路卡繫結一個IPLinux
- Redhat linux雙網路卡繫結一個IPRedhatLinux
- Linux網路卡繫結實現頻寬翻倍Linux
- CentOS 5.4上雙網路卡(多網路卡)繫結CentOS
- [Linux] Linux bond 網路卡繫結配置教程(轉載)Linux
- Oracle RAC 與 網路卡繫結Oracle
- redhat 6.3 雙網路卡繫結Redhat
- Redhat AS 5.4 雙網路卡繫結Redhat
- 網路卡繫結七種模式模式
- centos 6.5 雙網路卡繫結CentOS
- 【轉】redhat 雙網路卡繫結Redhat
- liunx下雙網路卡繫結
- Linux雙網路卡繫結單個IP之(team)Linux
- 在 Linux 中用 nmcli 命令繫結多塊網路卡Linux
- (轉)linux 實現多網路卡繫結BondingLinux