使用Linux 策略路由配置多網絡卡路由
阿新 • • 發佈:2019-01-06
【問題場景】
專案中遇到一個路由配置問題,一臺Linux使用多網絡卡,每個網絡卡配置在不同的網路平面,比如兩個網絡卡,網絡卡1連線內網閘道器,網絡卡2連線外網閘道器,系統的預設路由為網絡卡1連線的內網閘道器。現在上層應用想通過網絡卡2登入到一個外網系統。外網只提供一個域名,這樣遇到一個問題,域名解析出的IP可能會經常變化,系統如何確定這個IP的路由。
【解決方案】
使用Linux的策略路由可以解決。建立一個新的路由表,這個路由表中只配預設路由為外網閘道器,再建立一個路由規則,只要是網絡卡2的IP發出的包都採用心路由表匹配。
【配置命令】
//建立新的路由表
echo "100 NET0" >> /etc/iproute2/rt_tables
//設定預設閘道器
ip route add default via 192.168.100.1 dev eth1 table NET0
// 設定路由策略
ip rule add from 192.168.100.10 table NET0 pre 1000
如果要保障開機自啟動,將第2,3條命令寫入配置檔案。這兩條命令只適用於Suse系統
echo "ip route add default via 192.168.100.1 dev eth1 table NET0" >> /etc/init.d/after.local
echo "ip rule add from 192.168.100.10 table NET0 pre 1000" >> /etc/init.d/after.local