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 實現
在其他章節