2014年1月12日 星期日

Ethernet And Wireless Bonding(在 linux 下合併兩張網卡,變成一張)


為什麼要把兩張網卡合併成一張呢?
理由:

  1. 當一張網卡壞掉時,還有另一張,因此不會引起斷線
  2. 網路速度提昇(因為可以走兩條路)
  3. load balance

下面的例子是如何合併筆電的有線網卡和無線網卡。

先安裝所軟體

sudo apt-get install ifenslave

首先先編輯 /etc/NetworkManager/NetworkManager.conf 這個檔案。改成像下面那樣。你可以簡單的把 managed 設成 false,或是在 unmanaged-devices 設定哪些裝置不要被 NetworkManager 管。基本上要被合併的網卡不能被 NetworkManager 控制。


[main]
plugins=ifupdown,keyfile
dns=dnsmasq
[ifupdown]
managed=false
[keyfile]
unmanaged-devices=mac:your_mac



在 /etc/network/interfaces 新增下面的設定,你需要修改無線網卡怎麼連線以及 bond0 怎麼連線,bond0 就是合併後的新界面

auto bond0
iface bond0 inet dhcp
  bond_mode 0
  bond_primary eth0
  bond_miimon 100
  bond_downdelay 200
  bond_updelay 200
  wpa-ssid ssid
  wpa-ap-scan 1
  wpa-psk password
  wpa-scan-ssid 1
  wpa-iface wlan0                                                                
  dns-nameserver 8.8.8.8                                                          
  slaves eth0 wlan0 



重新啟動網路

sudo /etc/init.d/networking restart


用下面指令檢查設定是否成功

cat /proc/net/bonding/bond0


如果你的電腦變成只能用 ip 連但是不能用網址連
如 ping 8.8.8.8 可以通,但是透過網址不行

則在編輯  /etc/resolv.conf 這個檔案
加上

nameserver 8.8.8.8
nameserver 8.8.4.4


mode 0 和6的選擇:
如果你希望能夠平衡網卡的流量,或是你的網卡無法取得速度
則用 mode 0
否則 mode 6 會是較好的選擇


注意參考連結2的 mode 0 的說明。
 "如果一个连接或者会话的数据包从不同的接口发出的话,中途再经过不同的链路,在客户端很有可能会出现数据包无序到达的问题,而无序到达的数据包需要重新要求被发送,这样网络的吞吐量就会下降"

參考資料:

  1. http://techpatterns.com/forums/about1327.html
  2. http://www.huawei.com/ecommunity/bbs/10155553.html



註:之前範例有些問題,因此今天有作更新。 

沒有留言:

張貼留言