- 论坛徽章:
- 0
|
网络拓扑如下:
| |
| |
eth1 eth3
---------------
| |
| firewall |
---------------
eth0
|
|
内网eth0:(192.168.0.0/24) eth0:192.168.0.1
教育eth3:(202.a.b.0/24) eth3:202.a.b.1 网关202.a.b.254
电信eth1:(61.c.d.0/24) eth1:61.c.d.1 网关61.c.d.254
出口有教育网和电信网,教育网可以路由出去,电信网只能通过NAT出去
现在校内一个局域网想通过做NAT,实现局域网内的用户访问教育网从
教育网端口走,电信网从电信网端口走,这两个端口往出走的时候都
采用NAT的方式出去。
看了前边的帖子,自己也实验了好几种方式,但都没能成功,所以上来再问问
两种思路
1、一开始我的思路是只需要在fw上做路由缺省路由电信61.c.d.254,然后设置教育网络到
教育网出口202.a.b.254,在eth1和eth3上分别作SNAT,从两个地址出去。
具体做法是所有教育网网络路由走202.a.b.254,缺省路由走61.c.d.254,所有的路由信息
加在main表里。这种方法也成功了
#ip route add to 58.154.0.0/15 via 202.a.b.254 table main
#ip route add to 58.192.0.0/12 via 202.a.b.254 table main
。
。
。(省略若干行)
#ip route add to 222.192.0.0/12 via 202.a.b.254 table main
#ip route add default via 61.c.d.254 table main
#iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth3 -j SNAT --to 202.a.b.1
#iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth1 -j SNAT --to 61.c.d.1
#ip route flush cache
网络全部可以通,但是性能没有经过测试。
不知道有没有好的测试方法,另外那位给看看有没有需要改进或者更好的方法来实现。
2、看了前边的策略路由的帖子,不是很明白,按照说的做了一下,如下执行的,还是不行
# echo "200 NetEdu" >> /etc/iproute2/rt_tables
# ip route replace default via 202.a.b.254 table NetEdu
# ip rule add fwmark 1 table NetEdu
# iptables -t nat -F
# iptables -t mangle -F
# iptables -t mangle -A PREROUTING -i eth0 -s 192.168.0.0/24 -d 教育网网络 -j MARK --set-mark 1
(中间的省略)
# iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 教育网网络 -j SNAT --to 202.a.b.1
# iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to 61.c.d.1
# ip route flush cache
不知道为啥不通,如果要借助200 NetEdu这种ip rule的方式在nat的时候必需要--set-mark 1做这个吗
而且我看着每个教育网网络都要加SNAT的语句,不知道和方法1那一个性能更好一些
期待能有人指点一下,或者那位有更好的脚本最好能共享一下,先谢过了
[ 本帖最后由 wualing 于 2006-10-24 17:56 编辑 ] |
|