(五)網絡配置之bond0


IP、MASK、GW、DNS相關的配置文件:

/etc/sysconfig/network-scripts/ifcfg-IFACE

說明參考

/usr/share/doc/initcripts-*/sysconfig.txt

常用配置

設置 說明
TYPE 接口類型;常見有的Ethernet, Bridge
NAME 此配置文件應用到的設備
DEVICE 設備名
HWADDR 對應的設備的MAC地址
UUID 設備的惟一標識
BOOTPROTO 激活此設備時使用的地址配置協議,常用的dhcp, static, none, bootp
IPADDR 指明IP地址
NETMASK 子網掩碼,如:255.255.255.0
PREFIX 網絡ID的位數, 如:24
GATEWAY 默認網關
DNS1 第一個DNS服務器地址
DNS2 第二個DNS服務器地址
DOMAIN 主機不完整時,自動搜索的域名后綴
ONBOOT 在系統引導時是否激活此設備
USERCTL 普通用戶是否可控制此設備
PEERDNS 如果BOOTPROTO的值為“dhcp”,YES將允許dhcp server分配的dns服務器信息直接覆蓋至/etc/resolv.conf文件,NO不允許修改resolv.conf
NM_CONTROLLED NM是NetworkManager的簡寫,此網卡是否接受NM控制

配置當前主機的主機名

#centos6 之前版本
/etc/sysconfig/network
HOSTNAME=
#centos7 以后版
/etc/hostname
HOSTNAME

本地主機名數據庫和IP地址的映射

優先於使用DNS前檢查
getent hosts 查看/etc/hosts 內容

[root@localhost ~]# cat /etc/hosts

DNS域名解析

[root@localhost ~]# cat /etc/resolv.conf
nameserver DNS_SERVER_IP1
nameserver DNS_SERVER_IP2
nameserver DNS_SERVER_IP3
search DOMAIN

修改 /etc/hosts和DNS的優先級

/etc/nsswitch.conf
hosts: files dns

路由相關的配置文件

/etc/sysconfig/network-scripts/route-IFACE
兩種風格:
(1) TARGET via GW
如:10.0.0.0/8 via 172.16.0.1
(2) 每三行定義一條路由
ADDRESS#=TARGET
NETMASK#=mask
GATEWAY#=GW

范例: CentOS7 創建/etc/sysconfig/static-routes文件添加持久靜態路由

#查看network腳本調用路由文件
[root@centos7 ~]#grep -A 3 "/etc/sysconfig/static-routes" /etc/init.d/network
if [ -f /etc/sysconfig/static-routes ]; then
if [ -x /sbin/route ]; then
grep "^any" /etc/sysconfig/static-routes | while read ignore args ;
do
/sbin/route add -$args
done
else
#查看當前路由
[root@centos7 ~]#route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.0.0.2 0.0.0.0 UG 100 0 0 eth0
10.0.0.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0
#創建文件
[root@centos7 ~]#vim /etc/sysconfig/static-routes
[root@centos7 ~]#cat /etc/sysconfig/static-routes
any net 192.168.1.0/24 gw 10.0.0.254
any net 192.168.2.0/24 gw 10.0.0.254
[root@centos7 ~]#systemctl restart network
#確認路由生效
[root@centos7 ~]#route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.0.0.2 0.0.0.0 UG 100 0 0 eth0

網卡別名

將多個IP地址綁定到一個NIC上

每個IP綁定到獨立邏輯網卡,即網絡別名,命名格式: ethX:Y,如:eth0:1 、eth0:2、eth0:3

范例:ifconfig 命令

ifconfig eth0:0 192.168.1.100/24 up
ifconfig eth0:0 down

范例:ip 命令

ip addr add 172.16.1.1/16 dev eth0
ip addr add 172.16.1.2/16 dev eth0 label eth0:0
ip addr del 172.16.1.2/16 dev eth0 label eth0:0
ip addr flush dev eth0 label eth0:0

為每個設備別名生成獨立的接口配置文件,格式為:ifcfg-ethX:xxx

范例:
[root@centos8 ~]#cat /etc/sysconfig/network-scripts/ifcfg-eth0:1
DEVICE=eth0:1
IPADDR=10.0.0.100
PREFIX=8
[root@centos8 ~]#ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.0.0.8 netmask 255.255.255.0 broadcast 10.0.0.255

注意:
建議 CentOS 6 關閉 NetworkManager 服務

網卡別名必須使用靜態地址

多網卡 bonding

將多塊網卡綁定同一IP地址對外提供服務,可以實現高可用或者負載均衡。直接給兩塊網卡設置同一IP
地址是不可以的。通過 bonding,虛擬一塊網卡對外提供連接,物理網卡的被修改為相同的MAC地址

Bonding 聚合鏈路工作模式

bond聚合鏈路模式共7種模式:0-6 Mode
mod=0 ,即:(balance-rr) Round-robin policy(輪詢)聚合口數據報文按包輪詢從物理接口轉
發。
負載均衡—所有鏈路處於負載均衡狀態,輪詢方式往每條鏈路發送報文這模式的特點增加了帶寬,
同時支持容錯能力,當有鏈路出問題,會把流量切換到正常的鏈路上。性能問題—一個連接或者會話的數據包如果從不同的接口發出的話,中途再經過不同的鏈路,在客戶端很有可能會出現數據包無序到達的問題,而無序到達的數據包需要重新要求被發送,這樣網絡的吞吐量就會下降。Bond0在大壓力的網絡傳輸下,性能增長的並不是很理想。需要交換機進行端口綁定

mod=1,即: (active-backup) Active-backuppolicy(主-備份策略)只有Active狀態的物理接口才轉發數據報文。容錯能力—只有一個slave是激活的(active)。也就是說同一時刻只有一個網卡處於工作狀態,其他的slave都處於備份狀態,只有在當前激活的slave故障后才有可能會變為激活的(active)。無負載均衡—此算法的優點是可以提供高網絡連接的可用性,但是它的資源利用率較低,只有一個接口處於工作狀態,在有 N 個網絡接口的情況下,資源利用率為1/N。

mod=2,即:(balance-xor) XOR policy(平衡策略)聚合口數據報文按源目MAC、源目IP、源目
端口進行異或HASH運算得到一個值,根據該值查找接口轉發數據報文負載均衡—基於指定的傳輸HASH策略傳輸數據包。容錯能力—這模式的特點增加了帶寬,同時支持容錯能力,當有鏈路出問題,會把流量切換到正常的鏈路上。性能問題—該模式將限定流量,以保證到達特定對端的流量總是從同一個接口上發出。既然目的地是通過MAC地址來決定的,因此該模式在“本地”網絡配置下可以工作得很好。如果所有流量是通過單個路由器,由於只有一個網關,源和目標mac都固定了,那么這個算法算出的線路就一直是同一條,那么這種模式就沒有多少意義了。需要交換機配置為port channel

mod=3,即:broadcast(廣播策略)這種模式的特點是一個報文會復制兩份往bond下的兩個接口分別發送出去,當有對端交換機失效,感覺不到任何downtime,但此法過於浪費資源;不過這種模式有很好的容錯機制。此模式適用於金融行業,因為他們需要高可靠性的網絡,不允許出現任何問題。

mod=4,即:(802.3ad) IEEE 802.3ad Dynamic link aggregation(IEEE 802.3ad 動態鏈接聚合)在動態聚合模式下,聚合組內的成員端口上均啟用LACP(鏈路匯聚控制協議)協議,其端口狀態
通過該協議自動進行維護。負載均衡—基於指定的傳輸HASH策略傳輸數據包。默認算法與blance-xor一樣。容錯能力—這模式的特點增加了帶寬,同時支持容錯能力,當有鏈路出問題,會把流量切換到正常的鏈路上。對比blance-xor,這種模式定期發送LACPDU報文維護鏈路聚合狀態,保證鏈路質量。需要交換機支持LACP協議

mod=5,即:(balance-tlb) Adaptive transmit load balancing(適配器傳輸負載均衡)在每個物理接口上根據當前的負載(根據速度計算)分配外出流量。如果正在接收數據的物理接口口出故障了,另一個物理接口接管該故障物理口的MAC地址。需要ethtool支持獲取每個slave的速率

mod=6,即:(balance-alb) Adaptive load balancing(適配器適應性負載均衡)
該模式包含了balance-tlb模式,同時加上針對IPV4流量的接收負載均衡,而且不需要任何switch(交換機)的支持。接收負載均衡是通過ARP協商實現的。bonding驅動截獲本機發送的ARP應答,並把源硬件地址改寫為bond中某個物理接口的唯一硬件地址,從而使得不同的對端使用不同的硬件地址進行通信。

mod=6與mod=0的區別:mod=6,先把eth0流量占滿,再占eth1,….ethX;而mod=0的話,會發現2個口的流量都很穩定,基本一樣的帶寬。而mod=6,會發現第一個口流量很高,第2個口只占了小部分流量

說明:

常用的模式為 0,1,3,6
mode 1、5、6 不需要交換機設置
mode 0、2、3、4需要交換機設置
active-backup、balance-tlb 和 balance-alb 模式不需要交換機的任何特殊配置。其他綁定模式需
要配置交換機以便整合鏈接。如:Cisco 交換機需要在模式 0、2 和 3 中使用 EtherChannel,但在模
式4中需要 LACP和 EtherChannel

Bonding 配置

詳細幫助:

/usr/share/doc/kernel-doc-version/Documentation/networking/bonding.txt
https://www.kernel.org/doc/Documentation/networking/bonding.txt

創建bonding設備的配置文件

/etc/sysconfig/network-scripts/ifcfg-bond0
NAME=bond0
TYPE=bond
DEVICE=bond0
BOOTPROTO=none
IPADDR=172.31.0.20
PREFIX=16
BONDING_OPTS="mode=1 miimon=100 fail_over_mac=1"

#miimon指定鏈路監測時間間隔。如果miimon=100,那么系統每100ms 監測一次鏈路連接狀態,如果有一
條線路不通就轉入另一條線路


/etc/sysconfig/network-scripts/ifcfg-eth0
NAME=eth0
DEVICE=eth0
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
ONBOOT=yes

/etc/sysconfig/network-scripts/ifcfg-eth1
NAME=eth1
DEVICE=eth1
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
ONBOOT=yes

查看bond0狀態:

/proc/net/bonding/bond0


刪除bond0

ifconfig bond0 down
rmmod bonding

實驗

注意事項:
bond0的兩張網卡不一定要相同模式,但是不能做高可用主備
測試
bond0配置文件必須要添加如下:

NAME=bond0
TYPE=bond
DEVICE=bond0
BOOTPROTO=none
IPADDR=172.31.20
PREFIX=16
BONDING_OPTS="mode=1 miimon=100 fail_over_mac=1"

才能實現主備,另外一台機器ping 這台配置有bond0的機器同時斷開另外一個網卡還能一直通信,不受影響

模擬拔網線並觀察ping的狀態

nmcli 實現

在其他章節


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM