Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.4.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
192.168.8.0 0.0.0.0 255.255.252.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1003 0 0 eth1
0.0.0.0 192.168.4.1 0.0.0.0 UG 0 0 0 eth1
注意:列出來的main路由表的記錄里169.254.0.0是用來在dhcp獲取不了IP地址時(shí)自動(dòng)添加的IP地址段。
route del default: 刪除main路由表里的默認(rèn)路由
route add default gw 192.168.10.1:在main路由表里添加默認(rèn)路由記錄192.168.10.1
2、添加其他編號(hào)的路由table時(shí),我們需要使用ip route命令,通常的格式為:
ip route { list | flush | show } SELECTOR: 用來顯示指定table的路由表記錄
ip route { add | del | change | append | replace | monitor } ROUTE:用來修改指定table的路由表記錄注:ip命令為iproute2包的一個(gè)工具,用來定義ip包的一些規(guī)則
3、示例
解決雙網(wǎng)卡在同一子網(wǎng)內(nèi),網(wǎng)關(guān)相同的情況下,使兩塊網(wǎng)卡各自的ip包從自己接口上出去。
A、兩塊的網(wǎng)的配置如下:
IP:192.168.9.8/22 網(wǎng)關(guān):192.168.9.1
IP:192.168.9.9/22 網(wǎng)關(guān):192.168.9.1
B、table 0的路由表查看(route -n)
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.8.0 0.0.0.0 255.255.252.0 U 0 0 0 eth0
192.168.8.0 0.0.0.0 255.255.252.0 U 0 0 0 eth1(這條實(shí)際上是無用的,選路時(shí)不會(huì)被選到)
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth1
0.0.0.0 192.168.9.1 0.0.0.0 UG 0 0 0 eth0C、說明:第1、2條路由都由網(wǎng)卡的配置產(chǎn)生,需要路由時(shí)都使用最后一條默認(rèn)路由192.168.9.1,并且從eth0上出去。問題:兩塊網(wǎng)卡的流量都從eth0上出去,相當(dāng)于浪費(fèi)了一塊網(wǎng)卡。
D、解決方法,由于在table 0中添加路由只能解決目的地址或目的網(wǎng)絡(luò)不同時(shí)路由問題,但兩塊網(wǎng)卡有相同的子網(wǎng),網(wǎng)關(guān)也一樣,目的子網(wǎng)也一樣,所以已經(jīng)不能通過在table 0添加路由記錄來解決問題,我們只能添加其他編號(hào)的table,并在新的table中添加路由記錄,使eth1的包選路時(shí)使用新的table的路由記錄,并從eth1上出去。過程如下:
A、添加新table和新table的路由記錄
ip route add 192.168.8.0 via 192.168.9.9 [dev eth1] table 10
ip route add default via 192.168.9.9 [dev eth1] table 10
B、路由表ID為10的記錄查看:
ip route show|list table 10:
192.168.8.0 via 192.168.9.9 dev eth1
default via 192.168.9.9 dev eth1
C、添加路由規(guī)則,使來自192.168.9.9的ip包使用table 10的路由記錄
ip rule add from 192.168.9.9 table 10
D、路由規(guī)則的管理使用ip rule,如ip rule show|list用來查看路由規(guī)則,ip rule add|del用來添加和刪除路由規(guī)則。
E、再次分別查看兩個(gè)接口上的流量或者抓包,可以看到兩塊網(wǎng)卡上的包分別從不同網(wǎng)卡出去了。