Linux系統(tǒng)自帶的ip命令功能十分強(qiáng)大,選項(xiàng)也十分豐富,在使用Linux主機(jī)當(dāng)網(wǎng)關(guān),多ISP接入的環(huán)境下,常用的方式就是根據(jù)AS號來選擇路由,即多用戶共同使用一張路由表。而因系統(tǒng)自帶的默認(rèn)路由無法根據(jù)源IP進(jìn)行選路,所以僅依靠默認(rèn)路由來無法使資源得到充分的利用,這時(shí)候就可以利用ip命令來配置基于源IP的策略路由。
其實(shí)系統(tǒng)維護(hù)著很多張的路由表,默認(rèn)路由表只是其中的一張,路由表文件位于/etc/iproute2/rt_tables當(dāng)中,其中255是本地路由表;254是主路由表;253是默認(rèn)路由表和0則是系統(tǒng)保留的路由表,用戶自定義路由表編碼可在1-252之間。
可以在/etc/iproute2/rt_tables文件里加上自定義的路由表并且命名,比如
100 isp1
101 isp2
保存后,接下來就是自定義策略路由,讓網(wǎng)關(guān)根據(jù)源ip來進(jìn)行選路,假設(shè)ISP1的網(wǎng)關(guān)為172.16.0.1,ISP2的網(wǎng)關(guān)為172.17.0.1,首先往路由表100里面配置規(guī)則
ip route add 0.0.0.0/0 via 172.16.0.1 table 100
或者也可以用路由表名稱代替號碼
ip route add 0.0.0.0/0 via 172.16.0.1 table isp1
這條路由就定義了到ISP1的默認(rèn)路由,而ISP2也同理
ip route add 0.0.0.0/0 via 172.17.0.1 table isp2
兩條路由都配置完畢后,就應(yīng)該配置策略,匹配源IP與查詢的路由表。
ip rule add from 192.168.0.0/24 table isp1
ip rule add from 192.168.1.0/24 table isp2
這條規(guī)則表示源IP是192.168.0.0/24網(wǎng)段的,查詢名稱為isp1的路由表,而源IP是192.168.1.0/24的則查詢名稱為isp2的路由表,這樣配置后的效果就是,192.168.0.0/24網(wǎng)段的用戶下一跳路由為172.16.0.1,即通過ISP1的線路上網(wǎng),而192.168.1.0/24網(wǎng)段的用戶則下一跳為172.17.0.1,通過ISP2的線路上網(wǎng)。這樣就能通過動(dòng)態(tài)調(diào)整用戶路由的方式來合理使用帶寬資源,避免帶寬浪費(fèi)和多用戶共用出口導(dǎo)致?lián)矶隆?/p>