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雙網路卡繫結單個IP之(team)Linux
- 剖析網路卡繫結模式模式
- 深度分析Linux下雙網路卡繫結七種模式 多網路卡的7種bond模式原理Linux模式
- Oracle 11gR2 RAC 單網路卡轉雙網路卡繫結配置Oracle
- 虛擬網路卡介面VETH(Virtual Ethernet )建立使用和繫結關係
- 基於nodejs的阿里雲DDNS服務,支援多網路卡繫結NodeJS阿里DNS
- Linux系統自定義網路卡並更改網路卡介面Linux
- Mac Linux 重啟網路卡MacLinux
- Linux 7 配置網路卡(nmcli)Linux
- Linux修改網路卡的名字Linux
- LINUX下手工新增網路卡Linux
- Linux Ubuntu 修改網路卡名字LinuxUbuntu
- Linux系統新增自定義網路卡並更改網路卡介面Linux
- rocky linux 重啟網路卡命令Linux
- linux檢視網路卡型號Linux
- Linux 雙網路卡雙IP配置Linux
- linux udev裸裝置繫結Linuxdev
- Linux虛擬網路卡TUN和TAPLinux
- linux網路卡配置檔案詳解Linux
- Linux 虛擬網路卡技術:MacvlanLinuxMac
- linux繫結多個ip(轉載)Linux
- 檢視Linux網路卡UUID和MAC地址---Linux命令LinuxUIMac
- Linux 中如何啟用和禁用網路卡?Linux
- 更改Linux系統的網路卡名稱Linux
- linux下打滿網路卡的頻寬和影響打滿網路卡的原因Linux
- linux下一個網路卡配置多個IPLinux
- Linux案例01:eth0網路卡異常Linux
- Linux網路卡配置檔案 引數詳解Linux
- sx-work網路繫結IP
- Oracle Linux 7.8 多路徑(Multipath)+Udev繫結磁碟OracleLinuxdev
- linux系統使用shell命令過濾物理網路卡Linux
- Kali Linux破解wifi密碼(無須外接網路卡)LinuxWiFi密碼
- Linux--程序繫結NUMA節點或cpu核心Linux
- 理解靜態繫結與動態繫結
- Linux中虛擬網路卡是什麼?有何作用?Linux
- 千兆網路卡與萬兆網路卡的區別在哪?