Redhat Linux的網絡配置,基本上是通過修改幾個配置文件來實現的,雖然也可以用ifconfig來設置IP,用route來配置默認網關,用hostname來配置主機名,但是重啟后會丟失。
?
1.相關的配置文件:
/ect/hosts 配置主機名和IP地址的對應
/etc/sysconfig/network 配置主機名和網關
/etc/sysconfig/network-scripts/ifcfg-eth0 eth0配置文件,eth1則文件名為ifcfg-eth1,以此類推
2.網卡配置
? ?假設我們要配置主機名為test,eth0的IP地址192.168.168.1/24,網關地址192.168.168.250
則/etc/sysconfig/network文件內容如下:
NETWORKING=yes
HOSTNAME=test
GATEWAY=192.168.168.250
eth0對應的配置文件/etc/sysconfig/network-scripts/ifcfg-eth0內容如下:
DEVICE=eth0??? 設備名稱
BOOTPROTO=static??? 地址配置方式:static、dhcp、none
IPADDR=192.168.168.1?
NETMASK=255.255.255.0
TYPE=Ethernet???????? 網絡類型
ONBOOT=yes????????? 系統開機是否自啟動
HWADDR=???????????? MAC地址
2. 多個網卡綁定成一塊虛擬網卡
為了提供網絡的高可用性,我們可能需要將多塊網卡綁定成一塊虛擬網卡對外提供服務,這樣即使其中的一塊物理網卡出現故障,也不會導致連接中斷。比如我們可以將eth0和eth1綁定成虛擬網卡bond0。網卡綁定步驟如下:
2.1首先用ifconfig命令查看系統網卡信息,進行網卡綁定規劃,比如我們選定eth0和eth1
2.2網卡綁定前要關閉系統的NetworkManager服務
? ??service NetworkManager stop??? 停止服務
chkconfig NetworkManager off ??開機自啟動關掉
chkconfig|grep NetworkManager? 檢查服務是否徹底關掉
? 2.3 在 /etc/sysconfig/network-scripts/下創建虛擬網卡bond0的配置文件ifcfg-bond0,內容如下:
??? ??DEVICE=bond1
ONBOOT=yes
BOOTPROTO=none?????? 地址配置方式none
IPADDR=22.1.82.63
NETMASK=255.255.255.0
USERCTRL=no
GATEWAY=22.1.82.253
BONDING_OPTS="mode=0 miimon=50 fail_over_mac=0"??? 虛擬網卡參數,mode為網卡策略,目前有七種(詳細介紹在下面)miimon=100表示每100ms檢查一次鏈路連接狀態,如果不通則會切換物理網卡。
接下來在同一個目錄下面分別配置eth0和eth1的配置文件,內容如下:
eth0:
DEVICE=eth0
HWADDR=
MASTER=bond0???? 虛擬網卡名稱,eth0的主設備
SLAVE=yes????????? 配置eth1位從設備
ONBOOT=yes?
BOOTPROTO=none
USERCTL=no
Eth1:
DEVICE=eth1
HWADDR=
MASTER=bond0??? 虛擬網卡名稱,eth1的主設備
SLAVE=yes???????? 配置eth1位從設備
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
? 2.4配置文件配置完成后使用如下命令
????? Ifdown? eth0
Ifdown? eth1
Ifup? bond0
如果上述命令不成功,可以使用
Ifconfig eth0 down
Ifconfig eth1 down
Ifconfig bond0 up
? 2.5 使用ifconfig查看網卡信息,新建立的bond0 會在網卡信息列表里面顯示
? 2.6重啟網絡服務
?? ???service network restart
? 2.7 用 ping命令測試一下所配置的虛擬地址,如果重啟網絡服務不生效,則重啟服務器,然后在用 ping命令測試一下所配置的虛擬地址
3.網卡綁定策略目前有七種:
?Mode
=0: (balance-rr) Round-robin policy: (平衡掄循環策略):傳輸數據包順序是依次傳輸,直到最后一個傳輸完畢, 此模式提供負載平衡和容錯能力。
=1: (active-backup) Active-backup policy:(主-備份策略):只有一個設備處于活動狀態。 一個宕掉另一個馬上由備份轉換為主設備。mac地址是外部可見得。 此模式提供了容錯能力。
=2:(balance-xor) XOR policy:(平衡 策略): 傳輸根據原地址布爾值選擇傳輸設備。 此模式提供負載平衡和容錯能力。
=3:(broadcast) broadcast policy:? (廣播策略):將所有數據包傳輸給所有接口。 此模式提供了容錯能力。?
=4:(802.3ad) IEEE 802.3ad Dynamic link aggregation.?? IEEE 802.3ad 動態鏈接聚合:創建共享相同的速度和雙工設置的聚合組。(我不是太懂。)
=5:(balance-tlb) Adaptive transmit load balancing(適配器傳輸負載均衡):沒有特殊策略,第一個設備傳不通就用另一個設備接管第一個設備正在處理的mac地址,幫助上一個傳。
=6:(balance-alb) Adaptive load balancing: (適配器傳輸負載均衡):大致意思是包括mode5,bonding驅動程序截獲 ARP 在本地系統發送出的請求,用其中之一的硬件地址覆蓋從屬設備的原地址。就像是在服務器上不同的人使用不同的硬件地址一樣。
這些選項可以用命令:# modinfo bonding 來查看
?
4說明
如果想做成負載均衡,僅僅設置這里modprode bonding miimon=100 mode=0是不夠的,還需要設置交換機的端口.
從原理分析一下(bond運行在mode 0下):
mode 0下bond所綁定的網卡的IP都被修改成一樣的mac地址,如果這些網卡都被接在同一個交換機,那么交換機的arp表里這個mac地址對應的端口就有多個,那么交換機接受到發往這個mac地址的包應該往哪個端口轉發呢?正常情況下mac地址是全球唯一的,一個mac地址對應多個端口肯定使交換機迷惑了。
所以mode0下的bond如果連接到交換機,交換機這幾個端口應該采取聚合方式(cisco稱為ethernetchannel,foundry稱為portgroup),因為交換機做了聚合后,聚合下的幾個端口也被捆綁成一個mac地址