靈巧網關(Smart Gateway)策略路由例子
2005年9月24日
爲了提高對各個網絡的用戶對服務器的訪問, 特別爲服務器提供了CERNET、電信、網通的出口。由於服務器使用的Windows 操作系統無法提供策略路由,因此利用靈巧網關來提供策略路由表。網絡的連接示意圖如下:
CERNET出口 電信出口 網通出口
eth0:202.38.70.133 eth1:218.22.21.18 eth2:218.104.71.172
網關:202.38.70.254 網關:218.22.21.30 網關:218.104.71.161
SWITCH(連接三個出口與內網)
Eth3:192.168.0.254
內網IP:192.168.0.1
網關:192.168.0.254
上圖所示網絡,內部地址爲 192.168.0.*,三個出口的地址分別如圖中所示。202.38.70.133、218.22.21.18、218.104.71.172都地址轉換到內部的服務器192.168.0.1。
對於上面的網絡環境,即使專門的路由器也很難處理好策略路由問題。因爲單獨依據192.168.0.1 發回的應答數據包無法作出正確的路由判斷。而靈巧網關可以查看該數據包相關的連接信息,根據原來數據包的目的地址來判斷,完美的解決策略路由問題。
這時,需要如下設置,讓所有發送給202.38.70.133 的應答包經過教育網出去,所有發送給218.22.21.18的應答包經過電信網出去,所有發送給218.104.71.172的應答包經過網通出去,這樣才能保證網絡通訊正常:
配置文件startup.rc的內容如下:
#設置機器名字 hostname gateway.dianjiao #加載相關模塊 modprobe ip_conntrack modprobe ip_conntrack_ftp modprobe ipt_state modprobe ipt_conntrack modprobe iptable_nat modprobe ip_nat_ftp ip addr add 202.38.70.133/24 dev eth0 ip addr add 218.22.21.18/27 dev eth1 ip addr add 218.104.71.172/28 dev eth2 ip addr add 192.168.0.254/24 dev eth3 ip link set eth0 up ip link set eth1 up ip link set eth2 up ip link set eth3 up #教育網 ip route add 0/0 via 202.38.70.254 table 100 #電信 ip route add 0/0 via 218.22.21.30 table 101 #網通 ip route add 0/0 via 218.104.71.161 table 102 #策略路由 ip rule add from 0/0 table main pref 90 #根據需要設置IP出口 #fwmark 1 CERNET #fwmark 2 CHINANET #fwmark 3 網通 ip rule add fwmark 1 table 100 pref 100 ip rule add fwmark 2 table 101 pref 100 ip rule add fwmark 3 table 102 pref 100 ip rule add from 202.38.70.133 table 100 pref 101 ip rule add from 218.22.21.18 table 101 pref 101 ip rule add from 218.104.71.172 table 102 pref 101 #缺省走CERNET出口 ip rule add from 0/0 table 100 pref 200
配置文件multirun.rc的內容如下:
#IP包過濾設置 iptables -F iptables -t nat -F iptables -t mangle -F #fwmark 1 CERNET #fwmark 2 CHINANET #fwmark 3 CNC iptables -t mangle -A PREROUTING -j MARK --set-mark 1 -m conntrack --ctorigdst 202.38.70.133 iptables -t mangle -A PREROUTING -j MARK --set-mark 2 -m conntrack --ctorigdst 218.22.21.18 iptables -t mangle -A PREROUTING -j MARK --set-mark 3 -m conntrack --ctorigdst 218.104.71.172 #地址轉換設置 #www服務器 iptables -t nat -A PREROUTING -j DNAT -d 202.38.70.133 --to 192.168.0.1 iptables -t nat -A PREROUTING -j DNAT -d 218.22.21.18 --to 192.168.0.1 iptables -t nat -A PREROUTING -j DNAT -d 218.104.71.172 --to 192.168.0.1 iptables -t nat -A POSTROUTING -j SNAT -o eth0 --to 202.38.70.133 iptables -t nat -A POSTROUTING -j SNAT -o eth1 --to 218.22.21.18 iptables -t nat -A POSTROUTING -j SNAT -o eth2 --to 218.104.71.172 #防火牆設置 iptables -A FORWARD -j ACCEPT -m state --state ESTABLISHED,RELATED