亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標題: linux 雙網卡綁定(bonding)實現故障轉移 [打印本頁]

作者: 永夜之魂    時間: 2013-06-06 00:00
標題: linux 雙網卡綁定(bonding)實現故障轉移
本帖最后由 永夜之魂 于 2013-06-06 13:59 編輯

linux 雙網卡綁定(bonding)實現故障轉移
===========================================================================================================================================================
原理:
    Linux雙網卡綁定實現就是使用兩塊網卡虛擬成為一塊網卡,這個聚合起來的設備看起來是一個單獨的以太網接口設備,通俗點講就是兩塊網卡具有相同的IP地址而并行鏈接聚合成一個邏輯鏈路工作。其實這項技術在Sun和Cisco中早已存在,被稱為Trunking和Etherchannel技術,在Linux的2.4.x的內核中也采用這這種技術,被稱為bonding。bonding技術的最早應用是在集群——beowulf上,為了提高集群節(jié)點間的數據傳輸而設計的。bonding需要從網卡的混雜(promisc)模式說起。在正常情況下,網卡只接收目的硬件地址(MAC Address)是自身Mac的以太網幀,對于別的數據幀都濾掉,以減輕驅動程序的負擔。但是網卡也支持另外一種被稱為混雜promisc的模式,可以接收網絡上所有的幀,比如說tcpdump,就是運行在這個模式下。bonding也運行在這個模式下,而且修改了驅動程序中的mac地址,將兩塊網卡的Mac地址改成相同,可以接收特定mac的數據幀。然后把相應的數據幀傳送給bond驅動程序處理。直接給兩塊網卡設置同一IP地址是不可能的。Kernels 2.4.12及以后的版本均供bonding模塊,以前的版本可以通過patch實現。


===========================================================================================================================================================
硬件環(huán)境:
    CentOS release 5.6 (Final)虛擬機2臺(一臺做配置,一臺測試)
    需要配置的虛擬機擁有三塊網卡:eth0、eth1、eth2(其中eth1的IP地址為10.18.5.85,eth0、eth2的IP地址為192.168.1.2)
    測試機IP為:10.18.5.52
    虛擬機中需要做的配置:85的eth2以及測試機的eth0接入方式均為橋接,eth0、eth2為host-only模式


===========================================================================================================================================================
1、編輯虛擬網絡接口配置文件,指定網卡IP
    假設eth1是對外服務的網卡,已經調試好網絡;eth2是與eth0實現故障轉移的網卡。
        # cd /etc/sysconfig/network-scripts/
        # vi ifcfg-bond0
   
    bond0的信息如下
        DEVICE=bond0
        TYPE=Ethernet
        ONBOOT=yes
        BOOTPROTO=none
        IPADDR=192.168.1.2
        NETMASK=255.255.255.0
        GATEWAY=10.18.5.85
        USERCTL=no
        BONDING_OPTS="mode=1 primary=eth2 miimon=100"  
   
    #mode指定了bond0的工作模式,常用的是0和1,0表示負載均衡方式,1表示主從方式,可根據需要自行配置。常用的為0,1兩種。mode=0表示load balancing (round-robin)為負載均衡方式,兩塊網卡都工作。mode=1表示fault-tolerance (active-backup)提供冗余功能,工作方式是主備的工作方式,也就是說默認情況下只有一塊網卡工作,另一塊做備份。bonding只能提供鏈路監(jiān)測,即從主機到交換機的鏈路是否接通。如果只是交換機對外的鏈路down掉了,而交換機本身并沒有故障,那么bonding會認為鏈路沒有問題而繼續(xù)使用。miimon是用來進行鏈路監(jiān)測的。比如:miimon=100,那么系統(tǒng)每100ms監(jiān)測一次鏈路連接狀態(tài),如果有一條線路不通就轉入另一條線路。


2、配置eth網卡
    這里我偷個懶,把自己配置文件貼出來。
    eth0:
        [root@click365_test1 network-scripts]# cat ifcfg-eth0
        DEVICE=eth0
        TYPE=Ethernet
        ONBOOT=yes
        BOOTPROTO=none
        MASTER=bond0
        SLAVE=yes
        USERCTL=yes
       
    eth2:
    [root@click365_test1 network-scripts]# cat ifcfg-eth2
        DEVICE=eth2
        TYPE=Ethernet
        ONBOOT=yes
        BOOTPROTO=none
        MASTER=bond0
        SLAVE=yes
        USERCTL=yes


3、加載模塊,讓系統(tǒng)支持bonding
    默認情況下,內核已支持bonding,只需要簡單修改/etc/modprobe.conf 這個配置文檔就可以了:添加兩行
        alias bond0 bonding
        #options bond0 miimon=100 mode=1(由于我已經在bond0中定義了工作模式,所以直接注釋掉)


4、在測試機上添加到bond0的路由
    我直接寫的是永久路由,當然也可以添加一條臨時路由。
        [root@click365-test2 ~]# cat /etc/rc.d/rc.local
        route add 192.168.1.2 gw 10.18.5.85 dev eth0


5、重啟
    reboot或者service network restart 都可以。


===========================================================================================================================================================
測試:
    測試主要依賴于ping命令的檢查,以及/proc/net/bonding/bond0的內容。
1、85上bond0的狀態(tài)
    由于我在bond0中指定了處于active狀態(tài)的是eth2,如下:
        [root@click365_test1 network-scripts]# cat /proc/net/bonding/bond0
        Ethernet Channel Bonding Driver: v3.4.0-1 (October 7, 200

        Bonding Mode: fault-tolerance (active-backup)
        Primary Slave: eth2 (primary_reselect always)
        Currently Active Slave: eth2
        MII Status: up
        MII Polling Interval (ms): 100
        Up Delay (ms): 0
        Down Delay (ms): 0

        Slave Interface: eth0
        MII Status: up
        Speed: 100 Mbps
        Duplex: full
        Link Failure Count: 0
        Permanent HW addr: 00:0c:29:ab:ac:8c

        Slave Interface: eth2
        MII Status: up
        Speed: 100 Mbps
        Duplex: full
        Link Failure Count: 0
        Permanent HW addr: 00:0c:29:ab:ac:a0

2、由52上直接ping配置機的bond0
        [root@click365-test2 ~]# ping -c5 192.168.1.2
        PING 192.168.1.2 (192.168.1.2) 56(84) bytes of data.
        64 bytes from 192.168.1.2: icmp_seq=1 ttl=64 time=0.248 ms
        64 bytes from 192.168.1.2: icmp_seq=2 ttl=64 time=0.297 ms
        64 bytes from 192.168.1.2: icmp_seq=3 ttl=64 time=0.212 ms
        64 bytes from 192.168.1.2: icmp_seq=4 ttl=64 time=0.291 ms
        64 bytes from 192.168.1.2: icmp_seq=5 ttl=64 time=0.278 ms

        --- 192.168.1.2 ping statistics ---
        5 packets transmitted, 5 received, 0% packet loss, time 3996ms
        rtt min/avg/max/mdev = 0.212/0.265/0.297/0.033 ms

3、down掉配置機上的eth2,看eth0是否接管過去,并且仍然可以ping通
     配置機:
        [root@click365_test1 network-scripts]# ifdown eth2
        [root@click365_test1 network-scripts]# ifconfig
        bond0     Link encap:Ethernet  HWaddr 00:0C:29:AB:AC:8C  
                  inet addr:192.168.1.2  Bcast:192.168.1.255  Mask:255.255.255.0
                  UP BROADCAST RUNNING MASTER MULTICAST  MTU:1500  Metric:1
                  RX packets:20280 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:1899237 (1.8 MiB)  TX bytes:288 (288.0 b)

        eth0      Link encap:Ethernet  HWaddr 00:0C:29:AB:AC:8C  
                  UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
                  RX packets:20280 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:1899237 (1.8 MiB)  TX bytes:288 (288.0 b)
                  Interrupt:193 Base address:0x2000

        eth1      Link encap:Ethernet  HWaddr 00:0C:29:AB:AC:96  
                  inet addr:10.18.5.85  Bcast:10.18.5.255  Mask:255.255.255.0
                  UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
                  RX packets:53926 errors:0 dropped:0 overruns:0 frame:0
                  TX packets:6569 errors:0 dropped:0 overruns:0 carrier:0
                  collisions:0 txqueuelen:1000
                  RX bytes:6384535 (6.0 MiB)  TX bytes:690927 (674.7 KiB)
                  Interrupt:193 Base address:0x2080

        lo        Link encap:Local Loopback  
                  inet addr:127.0.0.1  Mask:255.0.0.0
                  UP LOOPBACK RUNNING  MTU:16436  Metric:1
                  RX packets:51 errors:0 dropped:0 overruns:0 frame:0
                  TX packets:51 errors:0 dropped:0 overruns:0 carrier:0
                  collisions:0 txqueuelen:0
                  RX bytes:5060 (4.9 KiB)  TX bytes:5060 (4.9 KiB)

        [root@click365_test1 network-scripts]# cat /proc/net/bonding/bond0
        Ethernet Channel Bonding Driver: v3.4.0-1 (October 7, 200

        Bonding Mode: fault-tolerance (active-backup)
        Primary Slave: None
        Currently Active Slave: eth0
        MII Status: up
        MII Polling Interval (ms): 100
        Up Delay (ms): 0
        Down Delay (ms): 0

        Slave Interface: eth0
        MII Status: up
        Speed: 100 Mbps
        Duplex: full
        Link Failure Count: 0
        Permanent HW addr: 00:0c:29:ab:ac:8c
   此時可以很清楚的看到,eth2已經down掉,bond0僅有eth0工作。

測試機:
        [root@click365-test2 ~]# ping -c5 192.168.1.2
        PING 192.168.1.2 (192.168.1.2) 56(84) bytes of data.
        64 bytes from 192.168.1.2: icmp_seq=1 ttl=64 time=2.46 ms
        64 bytes from 192.168.1.2: icmp_seq=2 ttl=64 time=0.336 ms
        64 bytes from 192.168.1.2: icmp_seq=3 ttl=64 time=0.278 ms
        64 bytes from 192.168.1.2: icmp_seq=4 ttl=64 time=0.262 ms
        64 bytes from 192.168.1.2: icmp_seq=5 ttl=64 time=0.307 ms

        --- 192.168.1.2 ping statistics ---
        5 packets transmitted, 5 received, 0% packet loss, time 4000ms
        rtt min/avg/max/mdev = 0.262/0.730/2.468/0.869 ms


至此,測試OK。
作者: chenyx    時間: 2013-06-06 07:59
寫的非常詳細,贊一個
作者: lbseraph    時間: 2013-06-06 10:10
我說后面怎么沒看到eth2了~謝謝分享~
作者: 永夜之魂    時間: 2013-06-06 14:03
回復 3# lbseraph


    呵呵,可能是我搞的比較復雜,添加了三塊虛擬網卡




歡迎光臨 Chinaunix (http://www.72891.cn/) Powered by Discuz! X3.2