一、知識整理
1、網卡配置文件格式:vim /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet接口類型,常見的類型有Ethernet,Bridge
BOOTPROTO=static設置靜態還是DHCP獲取IP,static和none都為靜態,不寫此行必須指定。查看配置DHCP之后的信息:
cat /var/lib/dhclient/dhclient-44b97795-3cc0-4a6f-88b9-f119b4abfe65-eth0.lease
DEFROUTE=yes
PEERDNS=yes 啟動自動DNS,改為no則DNS=#生效
PEERROUTES=yes
USERCTL 普通用戶是否可控制此設備
PEERDNS 如果BOOTPROTO的值為DHCP,是否允許dhcp server分配的dns服務器指向信息直接覆蓋至/etc/resolv.conf文件中
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no IPv6配置相關信息
UUID=da2b67dd-063f-4ef8-9acb-3757dcf21203 網卡設備的UUID
DEVICE=eno16777736 網卡設備名,此名字必須與配置文件名稱統一,配置文件為:
/etc/udev/rules.d/70-persistent-net.rules
ONBOOT=yes 是否開機啟動
DOMAIN=nagedu.com
IPADDR=10.1.54.250 IP地址
GATEWAY=10.1.0.1 網關
DNS1= 設置DNS,建議設置多個
NAME= 圖形界面下的顯示名稱,可以任意指定
HWADDR 設備的MAC地址,如果要改變則改為:MACADDR=
NETMASK= 子網掩碼,可以使用CIDR模式,此時指定為PREFIX=#
NM_CONTROLLED=是否受NetworkManager控制,此服務在centos6中不穩定,建議永久關閉,使用命令chkconfig NetworkManager off不開機啟動,service NetworkManager stop關閉當前正在運行的NetworkManager服務。
另一個文件可以統一指定網關等,但是優先級低于單一網卡配置文件,一般用于bond的統一配置:/etc/sysconfig/network。
二、事例及命令詳解
1、netstat命令:print net connections,routing tables,interface statistics,masquerade connections,and multicast memberships。
-t tcp協議相關
-u udp協議相關
-w raw socket相關
-l 處于監聽狀態
-a 所有狀態
-n 以數字顯示IP和端口
-e 擴展格式
-p 顯示相關進程及PID
常用組合:-tan
[root@localhost ~]# netstat -tan Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:6010 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:52709 0.0.0.0:* LISTEN tcp 0 52 10.1.252.28:22 10.1.250.66:50291 ESTABLISHED tcp 0 0 10.1.252.28:22 10.1.250.66:50290 ESTABLISHED tcp 0 0 :::111 :::* LISTEN tcp 0 0 :::22 :::* LISTEN tcp 0 0 ::1:631 :::* LISTEN tcp 0 0 ::1:25 :::* LISTEN tcp 0 0 ::1:6010 :::* LISTEN tcp 0 0 ::1:6011 :::* LISTEN tcp 0 0 :::50531 :::* LISTEN [root@localhost ~]# netstat -uan Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State udp 0 0 0.0.0.0:111 0.0.0.0:* udp 0 0 0.0.0.0:937 0.0.0.0:* udp 0 0 0.0.0.0:68 0.0.0.0:* [root@localhost ~]# netstat -tnl Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:6010 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:52709 0.0.0.0:* LISTEN tcp 0 0 :::111 :::* LISTEN tcp 0 0 :::22 :::* LISTEN [root@localhost ~]# netstat -unl Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State udp 0 0 0.0.0.0:111 0.0.0.0:* udp 0 0 0.0.0.0:631 0.0.0.0:* udp 0 0 0.0.0.0:54328 0.0.0.0:* udp 0 0 127.0.0.1:980 0.0.0.0:* udp 0 0 :::111 :::* 0 0
顯示路由表:netstat -r 顯示內核路由表
netstat -n 數字格式
[root@localhost ~]# netstat -nr Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 10.1.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0 10.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 eth0 0.0.0.0 10.1.0.1 0.0.0.0 UG 0 0 0 eth0
顯示接口統計數據:
[root@localhost ~]# netstat -i Kernel Interface table Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg eth0 1500 0 61005 0 0 0 898 0 0 0 BMRU eth0:1 1500 0 - no statistics available - BMRU
[root@localhost ~]# netstat -Ieth0或者netstat -I=eth0
3、設備別名:為每個別名生成獨立的接口配置文件,步驟如下:
關閉NetworkManager服務;
編輯ifcfg-eth#:##,設置網卡別名的設備文件
必須使用靜態聯網,信息如下
DEVICE=eth0:#
IPADDR=
NETMASK=
OMPARENT=yes 是否隨著父設備的啟動啟動
注意:service network restart生效
參考幫助:/usr/share/doc/initscripts-*/sysconfig.txt
4、網絡接口配置:Bonding
就是將多塊網卡綁定同一地址對外提供服務,可以實現高可用或均衡負載。當然,直接給兩塊網卡設置同一IP地址是不可能的。通過Bonding,虛擬網卡對外提供連接,物理網卡被修改為相同的MAC地址。
工作模式:Mode 0 (balance-rr)
輪轉模式round-robin策略,從頭到尾順序的在每一個slave接口上面發送數據包。本模式提供負載均衡和容錯能力。
Mode 1(active-backup)
活動-備份(主備)策略:在綁定中,只有一個slave被激活。當且僅當活動的slave接口失敗時才會激活其他slave。為了避免交換機發生混亂此時綁定的MAC地址只有一個外部端口上可見。
Mode 3(broodcast)
廣播策略:在所有的slave接口上傳送所有的報文。本模式提供了容錯能力。
bonding的配置:
/etc/sysconfig/network-scripts/ifcfg-bond0,內容為:
DEVICE=bond0
BOOTPROTO=none
BONDING_OPTS=”miimon=100 mode=o”
miimon是用來進行鏈路檢測的。如果miimon=100,那么系統每100ms監測一次鏈路連接狀態,如果有一條線路不通就轉入另一條。
/etc/sysconfig/network-scripts/ifcfg-th0
DEVICE=eth0
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
USERCTL=no
查看bond狀態:/proc/net/bonding/bond#
關于bonding的詳細配置參照:
/usr/share/doc/kernel-doc-version/Documentation/networking/bonding.txt
配置bond的步驟如下:
添加一塊新網卡;
首先關閉NetworkManager,centos6中;
寫bond配置文件;
寫ifcfg-eth0和ifcfg-eth1配置文件;
重啟網絡服務。
三、課后練習
1、centos 6網卡別名
[root@localhost network-scripts]# ls ifcfg-eth0 ifdown-ippp ifdown-sit ifup-ib ifup-post init.ipv6-global ifcfg-lo ifdown-ipv6 ifdown-tunnel ifup-ippp ifup-ppp net.hotplug [root@localhost network-scripts]# cp ifcfg-eth0 ifcfg-eth0:1 [root@localhost network-scripts]# ls ifcfg-eth0 ifdown-eth ifdown-post ifup ifup-ippp ifup-post ifup-wireless ifcfg-eth0:1 ifdown-ib ifdown-ppp ifup-aliases ifup-ipv6 ifup-ppp init.ipv6-global ifcfg-lo ifdown-ippp ifdown-routes ifup-bnep ifup-isdn ifup-routes [root@localhost network-scripts]# vim ifcfg-eth0:1 DEVICE="eth0:1" BOOTPROTO="static" NM_CONTROLLED="no" ONBOOT="yes" TYPE="Ethernet" IPADDR=10.1.54.251 NETMASK=255.255.0.0 GATEWAY=10.1.0.1 [root@localhost network-scripts]# service NetworkManager stop Stopping NetworkManager daemon: [FAILED] [root@localhost network-scripts]# chkconfig NetworkManager off [root@localhost network-scripts]# service network restart Shutting down interface eth0: [ OK ] Shutting down loopback interface: [ OK ] Bringing up loopback interface: [ OK ] Bringing up interface eth0: Determining IP information for eth0... done. Determining if ip address 10.1.54.251 is already in use for device eth0... [ OK ] [root@localhost network-scripts]# ifconfig eth0 Link encap:Ethernet HWaddr 00:0C:29:EA:8B:26 inet addr:10.1.252.28 Bcast:10.1.255.255 Mask:255.255.0.0 inet6 addr: fe80::20c:29ff:feea:8b26/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:209881 errors:0 dropped:0 overruns:0 frame:0 TX packets:3091 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:16678475 (15.9 MiB) TX bytes:340775 (332.7 KiB) eth0:1 Link encap:Ethernet HWaddr 00:0C:29:EA:8B:26 inet addr:10.1.54.251 Bcast:10.1.255.255 Mask:255.255.0.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
1、centos 6網卡bond
首先添加一塊虛擬網卡,同樣設置為橋接模式;
添加一個eth1的配置文件:將必要信息添加至配置文件中,其中BOOTPROTO需要設置為static或者none;設備名一定不能錯誤。
然后添加一個bond的配置文件,
重啟網絡服務,在這之前一定要將NetworkManager服務關閉
[root@localhost network-scripts]# service network restart Shutting down interface eth0: [ OK ] Shutting down loopback interface: [ OK ] Bringing up loopback interface: [ OK ] Bringing up interface bond0: [ OK ] Bringing up interface eth0: Determining IP information for eth0... done. [ OK ] [root@localhost network-scripts]# ifconfig bond0 Link encap:Ethernet HWaddr 00:0C:29:EA:8B:30 inet6 addr: fe80::20c:29ff:feea:8b30/64 Scope:Link UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1 RX packets:83 errors:0 dropped:0 overruns:0 frame:0 TX packets:6 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:6945 (6.7 KiB) TX bytes:468 (468.0 b) eth0 Link encap:Ethernet HWaddr 00:0C:29:EA:8B:26 inet addr:10.1.252.28 Bcast:10.1.255.255 Mask:255.255.0.0 inet6 addr: fe80::20c:29ff:feea:8b26/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:214159 errors:0 dropped:0 overruns:0 frame:0 TX packets:3768 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:17042771 (16.2 MiB) TX bytes:438807 (428.5 KiB) eth1 Link encap:Ethernet HWaddr 00:0C:29:EA:8B:30 UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1 RX packets:83 errors:0 dropped:0 overruns:0 frame:0 TX packets:6 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:6945 (6.7 KiB) TX bytes:468 (468.0 b)
此時設備便啟動完成,可以看到沒有IP地址等信息,可以使用/etc/sysconfig/network統一配置,也可以使用bond0的配置文件進行配置。
使用另一臺主機查看連通性:
可以看到連通正常;我們進行mode 0的高可用和負載均衡性特性驗證:斷開原網卡:
使用正常;我們斷開新網卡,連接上原網卡:
顯示主機不可達;檢查原因后發現,是原網卡配置文件沒有更改,進行更改,并重啟網絡服務:
重啟成功,重新測試。
經測試,結果是:單獨使用任意一個網卡的時候都可以使用;一起使用的時候也正常運行;但是當主卡停止工作后次卡也無法工作,然而斷開次卡,再啟用次卡時候次卡變為主卡,此時單卡運行正常。次卡停止工作時主卡運行正常。因MODE 0模式提供負載均衡的能力,高可用能力還是有缺陷。
MODE 1 模式:主備模式,提供高可用性,無論主次哪個設備損壞,另一個設備都可以繼續運作。
MODE 3 模式:數據包同時發兩份,提供高可用能力,但是沒有均衡負載能力。
第七種模式:mod=6,即:(balance-alb) Adaptive load balancing(適配器適應性負載均衡)
特點:該模式包含了balance-tlb模式,同時加上針對IPV4流量的接收負載均衡(receive load balance, rlb),而且不需要任何switch(交換機)的支持。接收負載均衡是通過ARP協商實現的。bonding驅動截獲本機發送的ARP應答,并把源硬件地址改寫為bond中某個slave的唯一硬件地址,從而使得不同的對端使用不同的硬件地址進行通信。
來自服務器端的接收流量也會被均衡。當本機發送ARP請求時,bonding驅動把對端的IP信息從ARP包中復制并保存下來。當ARP應答從對端到達時,bonding驅動把它的硬件地址提取出來,并發起一個ARP應答給bond中的某個slave。使用ARP協商進行負載均衡的一個問題是:每次廣播 ARP請求時都會使用bond的硬件地址,因此對端學習到這個硬件地址后,接收流量將會全部流向當前的slave。這個問題可以通過給所有的對端發送更新(ARP應答)來解決,應答中包含他們獨一無二的硬件地址,從而導致流量重新分布。當新的slave加入到bond中時,或者某個未激活的slave重新 激活時,接收流量也要重新分布。接收的負載被順序地分布(round robin)在bond中最高速的slave上。
當某個鏈路被重新接上,或者一個新的slave加入到bond中,接收流量在所有當前激活的slave中全部重新分配,通過使用指定的MAC地址給每個 client發起ARP應答。下面介紹的updelay參數必須被設置為某個大于等于switch(交換機)轉發延時的值,從而保證發往對端的ARP應答 不會被switch(交換機)阻截。
原創文章,作者:SilencePavilion,如若轉載,請注明出處:http://www.www58058.com/44203