2012年5月1日 星期二

在Linux下使用兩張網卡的設定

在一些場合,需要讓同一台電腦,用兩張不同的網卡,來做不同的事情,今天要說的就是這個。最常應用的狀況就是:一個網卡用於對內網路,一個網卡用於對外網路。

設定如下:
一般我們現在用的NB通常會有ethernet介面跟wifi介面,我們假設要用wifi連上internet(前題是wifi 熱點已經可以上網),用ethernet連私有網路。

wifi設定應該如下:
wlan_IP: 192.168.0.X
Submask: 255.255.255.0
以上資料由熱點的DHCP提供。

ethernat設定如下:
eth0_IP: 172.16.0.X
Submask: 255.255.255.0
以上資料由內部的DHCP提供。

我們要做的事:
1. 先查出這兩張網卡的gateway.
我的方式比較簡單,只要停用其中一個網卡,利用 route -n 即可知道。如:
Destination = 0.0.0.0 的那一行就是default gateway.

我們可以用這個方式查出兩個gateway的IP.

2. 查出 route的設定
完成之後,將兩張網卡都啟動,再次執行route -n,察看目前預設的route狀況

3. 修改route成我們要的方式
因為 linux環境中只能有一個 default gateway,所以我們可以先用下列指令新增default gateway.
sudo route add default gw {default_gateway_ip1}
用下列指令將不要的default gateway 移除
sudo route delate default gw {default_gateway_ip2}
但是這樣做只是將大家的default gateway換掉,並沒有做到分開。
為了要將內網/外網分開,所以我們要加一條指令,設定封包流動的方法
route add -net 172.16.0.0 netmask 255.255.0.0 gw 172.16.100.1
上面這一條指令的意思就是,只要是要到172.16.*.*的封包,都請傳送到172.16.100.1的gateway。
其餘的就請透過 default gateway來傳送。



參考資料

沒有留言:

張貼留言