灵巧网关(Smart Gateway)策略路由例子

转载自 http://staff.ustc.edu.cn/~james/sg/ippr/

为了提高对各个网络的用户对服务器的访问, 特别为服务器提供了CERNET、电信、网通的出口。由于服务器使用的Windows 操作系统无法提供策略路由,因此利用灵巧网关来提供策略路由表。网络的连接示意图如下:

上图所示网络,内部地址为 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

注:在http://www.ustc.edu.cn/~james/sg/下可以找到本资料的电子版本。

About: dato


发表评论

邮箱地址不会被公开。 必填项已用*标注