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