Linux雙網卡怎麼設置我就不說了,我這裡說的是linux雙網卡的流量問題...
可能這個問題很偏們..你們也許用不上..我還是要說..
問題描述,一個linux主機,上面兩個網卡..
route -n的輸出是這樣的.
代碼: [復制到剪貼板]
Destination Gateway Genmask Flags Metric Ref Use Iface
61.132.43.128 0.0.0.0 255.255.255.192 U 0 0 0 eth1
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
0.0.0.0 61.132.43.134 0.0.0.0 UG 0 0 0 eth0
這裡解釋一下...第一行是說,你要訪問61.132.43.128這個網段,掩碼是255.255.255.192的話..從eth1這個網卡出去..
第二行是關於本機的,訪問自己從lo這個虛擬的本地網卡走..
第三行是說你要去任何地方的話..從網關61.132.43.134出去.並且網卡是eth0
到這裡我們看到了..我們除了去61.132.43.128這個網絡是從eth1走以外..去其他地方都是從eth0走...
這樣是不是很浪費了雙網卡??沒錯..是很浪費..因為不論你用那種監測工具查看流量..都是eth0有..而其他網卡沒有...天哪...為此我是煞費苦心..甚至懷疑網卡是不是壞了..因為在win2k上這種事情是不可能發生的..
那我們怎麼解決這個問題呢?有人也許會說給個不同網關讓另一塊網卡用其他網關不就可以..是這個是可以..但是問題是我的ip都是在同一個網段..那來的不同網關.?網關就一個61.132.43.134...
還好linux系統給我們提供了一個很好的路由套件---iproute2
我們來熟悉一下..iproute2由幾個常見的命令..
ip ro ls ip就是ip命令啦,ro就是route的所寫,ls是list的縮寫...
整個命令就是列出系統的路由表..這個可和route -n的效果差不多..但是更為清楚系統的route是如何的..
我們來看看吧:
代碼: [復制到剪貼板]
[root@localhost root]# ip ro ls
61.132.43.128/26 dev eth1 proto kernel scope link src 61.132.43.136
127.0.0.0/8 dev lo scope link
default via 61.132.43.134 dev eth0
是不是一樣呢?由幾個地方不同..第一條多了一個src,增加了對源數據包的選擇,而且子網掩碼也變成/26的形式..(參考ip地址的書籍)
最後一個仍然是網關...
現在我們只要稍稍動手把從61.132.43.136出來的流量讓他不要從eth0出去..然他走eth1
我們加一條自定義的路由表
代碼: [復制到剪貼板]
ip ro add default via 61.132.43.134 table 200
這裡只是加了一條默認路由到一個自定義的路由表200中,最大數值是255,但是你不要用255,因為那是系統默認用了..你用200以下就可以.
具體的路由表在/etc/iproute2/rt_tables中
查看剛才建立的路由表可以用ip ro ls table 200
代碼: [復制到剪貼板]
[root@localhost root]# ip ro ls table 200
default via 61.132.43.134 dev eth1
看到了嗎?雖然我沒有指定dev是什麼.但是系統自動分配了一個eth1給這個路由表,因為eth0已經用在主路由表中了..
這也說明了,的確不能在同一個路由表中由相同的網關..雖然可以設置,但是具體沒什麼作用.
然後我們要用一個規則把,匹配的數據包引導到剛剛建立的路由表中..
代碼: [復制到剪貼板]
ip ru add from 61.132.43.136 table 200
這裡ru是rule的縮寫.from是一個匹配的動作.就是所源地址是61.132.43.136的包..請走自定義路由表200的設置..
查看一下
代碼: [復制到剪貼板]
[root@localhost root]# ip ru ls
0: from all lookup local
32765: from 61.132.43.136 lookup 200
32766: from all lookup main
32767: from all lookup 253
到這裡兩塊網卡終於都用上了..汗......
[1]
這裡ru是rule的縮寫.from是一個匹配的動作.就是所源地址是61.132.43.136的包..請走自定義路由表200的設置..
查看一下
代碼: [復制到剪貼板]
[root@localhost root]# ip ru ls
0: from all lookup local
32765: from 61.132.43.136 lookup 200
32766: from all lookup main
32767: from all lookup 253
到這裡兩塊網卡終於都用上了..汗......