2012年10月31日 星期三

(8) NIC bonding -- SuSE Linux

就suse的設定而言,預設會是以傳統Network來管理網路設定。本文專注在使用手動設定TCP/IP網路設定。

Bonding on SLES/OpenSuSE

本文預設使用mode=6(也可以寫作mode=balance-alb)來作為範例,請先記得備份:

cp /etc/sysconfig/network/ifcfg-eth{0,1} ~/Desktop
就可以開始進行bonding實驗。
  1. 安裝必要的套件
  2. zypper in iputils
    iputils套件包含了重要的ifenslave指令,他是RHEL預設就會安裝的套件。
  3. 修改/etc/modprobe.d/aliases.conf
  4. 很高興的,在SuSE我們不需要對這個檔案作設定!
  5. 修改/etc/sysconfig/network/ifcfg-*:
  6. 假設你要bond eth0, eth1兩張NIC到192.168.10.198/24,
    ifcfg-eth0ifcfg-eth1ifcfg-bond0
    BOOTPROTO='none'
    STARTMODE='auto'
    USERCONTROL='no'
    BOOTPROTO='none'
    STARTMODE='auto'
    USERCONTROL='no'
    BONDING_MASTER='yes'
    BONDING_MODULE_OPTS='mode=6 miimon=100'
    BONDING_SLAVE0='eth0'
    BONDING_SLAVE1='eth1'
    BOOTPROTO='static'
    IPADDR='192.168.100.2/24'
    STARTMODE='auto'
    USERCONTROL='no'
    
  7. 重新啟動網路服務:
  8. rcnetwork restart
    如果沒有錯誤訊息的話,使用ip a指令來查看一切是否設定正確:
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 brd 127.255.255.255 scope host lo
        inet 127.0.0.2/8 brd 127.255.255.255 scope host secondary lo
        inet6 ::1/128 scope host 
           valid_lft forever preferred_lft forever
    2: eth0: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP qlen 1000
        link/ether 84:34:97:11:00:d8 brd ff:ff:ff:ff:ff:ff
    3: eth1: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP qlen 1000
        link/ether 84:34:97:11:00:d9 brd ff:ff:ff:ff:ff:ff
    4: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP 
        link/ether 84:34:97:11:00:d8 brd ff:ff:ff:ff:ff:ff
        inet 192.168.10.198/24 brd 192.168.10.255 scope global bond0
        inet6 fe80::5054:ff:fedf:5523/64 scope link 
           valid_lft forever preferred_lft forever
    我們可以發現此時bond0的MAC位置跟eth0相同,原因是現在Mode6(balance-alb)主要的slave是eth0。可以查看bonding狀態來求證:
    cat /proc/net/bonding/bond0
    看起來會是這個樣子:
    Bonding Mode: adaptive load balancing
    Primary Slave: None
    Currently Active Slave: eth0
    MII Status: up
    MII Polling Interval (ms): 100
    Up Delay (ms): 200
    Down Delay (ms): 200
    
    Slave Interface: eth0
    MII Status: up
    Speed: 1000 Mbps
    Duplex: full
    Link Failure Count: 0
    Permanent HW addr: 84:34:97:11:00:d8
    Slave queue ID: 0
    
    Slave Interface: eth1
    MII Status: up
    Speed: 1000 Mbps
    Duplex: full
    Link Failure Count: 0
    Permanent HW addr: 84:34:97:11:00:d9
    Slave queue ID: 0

當然你也可以把bonding設定為dhcp!很簡單吧!

Bonding on SLES/OpenSuSE by Yast2

Yast是令我充滿敬佩的系統管理套件,他讓每件事情都如此簡單快速--做bonding就是一個很好的例子:在我們還自思考bonding該下哪些參數時,yast早就幫我們準備好了!

在Yast2 -> Network Device裡,可以新增一個網路裝置。
選擇一個Bond裝置。
給定一個IP或是DHCP。請注意在這之前我就已經先把eth0/eth1設定成No Links and IP Setup(Bonding Slaves)。在eth0/eth1還有ip的情況下,是無法將裝置納入bond0的。
選定兩個slaves之後,還可以設定bonding的一些參數。
按下OK,神奇的就設定完成了!

參考文件:
(問)有了Yast,你還需要參考文件嗎?

Share

沒有留言: