這個或許能解決我的雙網卡的問題哦。
在Discuz! Board 看到這篇文章,挺好的,COPY下來.
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
到這里兩塊網卡終于都用上了.汗......
和樊老師學習:
route add -host 10.65.69.156 dev eth0
10.65.69.156這臺機器走eth0網卡
route add -net 10.65.69.144 netmask 255.255.255.240 dev eth0
10.65.69.144-10.65.69.158走eth0網卡
traceroute 10.65.69.156
原文轉自:http://www.anti-gravitydesign.com