免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 12925 | 回复: 21
打印 上一主题 下一主题

[网络管理] 双出口网络NAT实现方法请教![已解决] [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-10-24 12:23 |只看该作者 |倒序浏览
网络拓扑如下:

       |             |
       |             |
      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 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2006-10-24 12:40 |只看该作者
不用那么麻烦,上面的方法是以前讨论过的策略路由的高级用法
你只需下面方法就可以

  1. iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE
  2. ip route replace default via 电信网关
  3. ip route add 教育网地址 via 教育网网关
复制代码

论坛徽章:
0
3 [报告]
发表于 2006-10-24 12:45 |只看该作者
谢谢platinum,前边策略路由的方法看得稀里糊涂的,和这种简单方法实现有什么区别吗?

论坛徽章:
0
4 [报告]
发表于 2006-10-24 14:31 |只看该作者
开机的时候运行一个脚本
然后设置默认网关是电信
下面包含了大部分的教育网地址


  1. route add -net 58.192.0.0  netmask 255.240.0.0 gw 教育网网关
  2. route add -net 59.64.0.0  netmask 255.240.0.0 gw 教育网网关
  3. route add -net 121.48.0.0  netmask 255.254.0.0 gw 教育网网关
  4. route add -net 125.216.0.0  netmask 255.248.0.0 gw 教育网网关
  5. route add -net 162.105.0.0  netmask 255.255.0.0 gw 教育网网关
  6. route add -net 166.111.0.0  netmask 255.255.0.0 gw 教育网网关
  7. route add -net 202.4.128.0  netmask 255.255.224.0 gw 教育网网关
  8. route add -net 202.38.2.0  netmask 255.255.254.0 gw 教育网网关
  9. route add -net 202.38.64.0  netmask 255.255.192.0 gw 教育网网关
  10. route add -net 202.38.140.0  netmask 255.255.254.0 gw 教育网网关
  11. route add -net 202.38.184.0  netmask 255.255.248.0 gw 教育网网关
  12. route add -net 202.38.192.0  netmask 255.255.192.0 gw 教育网网关
  13. route add -net 202.112.0.0  netmask 255.248.0.0 gw 教育网网关
  14. route add -net 202.120.0.0  netmask 255.254.0.0 gw 教育网网关
  15. route add -net 202.127.216.0  netmask 255.255.248.0 gw 教育网网关
  16. route add -net 202.127.224.0  netmask 255.255.224.0 gw 教育网网关
  17. route add -net 202.179.240.0  netmask 255.255.240.0 gw 教育网网关
  18. route add -net 202.192.0.0  netmask 255.240.0.0 gw 教育网网关
  19. route add -net 203.91.120.0  netmask 255.255.248.0 gw 教育网网关
  20. route add -net 210.25.0.0  netmask 255.255.0.0 gw 教育网网关
  21. route add -net 210.26.0.0  netmask 255.254.0.0 gw 教育网网关
  22. route add -net 210.28.0.0  netmask 255.252.0.0 gw 教育网网关
  23. route add -net 210.32.0.0  netmask 255.240.0.0 gw 教育网网关
  24. route add -net 211.64.0.0  netmask 255.248.0.0 gw 教育网网关
  25. route add -net 211.80.0.0  netmask 255.248.0.0 gw 教育网网关
  26. route add -net 218.192.0.0  netmask 255.248.0.0 gw 教育网网关
  27. route add -net 219.216.0.0  netmask 255.248.0.0 gw 教育网网关
  28. route add -net 219.224.0.0  netmask 255.248.0.0 gw 教育网网关
  29. route add -net 219.242.0.0  netmask 255.254.0.0 gw 教育网网关
  30. route add -net 219.244.0.0  netmask 255.252.0.0 gw 教育网网关
  31. route add -net 222.16.0.0  netmask 255.240.0.0 gw 教育网网关
  32. route add -net 222.192.0.0  netmask 255.240.0.0 gw 教育网网关
复制代码

[ 本帖最后由 sccdxp 于 2006-10-24 14:34 编辑 ]

论坛徽章:
0
5 [报告]
发表于 2006-10-24 14:32 |只看该作者
原帖由 wualing 于 2006-10-24 12:45 发表
谢谢platinum,前边策略路由的方法看得稀里糊涂的,和这种简单方法实现有什么区别吗?

有区别,前者的应用更灵活,可操作性更多,当然也更复杂更难理解

论坛徽章:
0
6 [报告]
发表于 2006-10-24 14:44 |只看该作者
谢谢sccdxp,platinum,先用简单的做了,复杂的再慢慢测试!

论坛徽章:
0
7 [报告]
发表于 2006-10-24 15:55 |只看该作者
路由还是按前边的那样,现在这样做了,只有教育的可以通,不知道什么原因

[root@FireWall shorewall]# iptables -nL -t nat
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
eth0_masq  all  --  0.0.0.0/0            0.0.0.0/0           
eth3_masq  all  --  0.0.0.0/0            0.0.0.0/0           

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain eth0_masq (1 references)
target     prot opt source               destination         
SNAT       all  --  192.168.0.0/24      0.0.0.0/0           to:61.c.d.1

Chain eth3_masq (1 references)
target     prot opt source               destination         
SNAT       all  --  192.168.0.0/24      0.0.0.0/0           to:202.a.b.1
[root@FireWall shorewall]#

教育网的可以通,电信的不通不知道怎么回事

论坛徽章:
0
8 [报告]
发表于 2006-10-24 16:59 |只看该作者
电信的网关设置了没有呢?能ping通网关么?默认网关在/etc/sysconfig/network在这个地方设置。

论坛徽章:
0
9 [报告]
发表于 2006-10-24 17:01 |只看该作者
然后在iptables的nat文件中只要这句吧
*nat
-A POSTROUTING -s 192.168.0.0/24  -j MASQUERADE
COMMIT
nat表中不需要那么复杂吧。

[ 本帖最后由 sccdxp 于 2006-10-24 17:04 编辑 ]

论坛徽章:
0
10 [报告]
发表于 2006-10-24 17:33 |只看该作者
已经好了,但是有时候会不通,电信网关设置了用的是ip route replace设置的,因为是和shorewall防火墙一起用,所以这样比较统一一些

另外用ip route add 加的路由重启就没有了,如果不想加启动脚本的话,有没有办法,应该可以存在一个文件里边吧

[ 本帖最后由 wualing 于 2006-10-24 17:35 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP