免费注册 查看新帖 |

Chinaunix

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

[FreeBSD] 双wan出口问题。急! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-05-10 23:29 |只看该作者 |倒序浏览
网络环境   一台freebsd使用pf做nat   
lan接口IP  192.168.0.1
两个wan接口
wan GW1 222.88.33.11
        GW2 219.150.10.9



实现目的:
lan ip
例如:  强制192.168.0.2 从GW1 出去
        强制192.168.0.3 从GW2 出去



   请高手指教 这个是通过 route 的静态路由实现,还是通过pf实现。。还有freebsd的default route 只有一条。小弟不知如何下手。希望指点。多谢!

论坛徽章:
0
2 [报告]
发表于 2009-05-10 23:59 |只看该作者
通过pf实现。

参考:http://www.openbsd.org/faq/pf/pools.html (官方文档)
http://www.9971.us/OpenBSD4.5/c/pf/pools.html (中文翻译)

论坛徽章:
0
3 [报告]
发表于 2009-05-11 10:31 |只看该作者

回复 #2 feillex 的帖子

要实现:  强制192.168.0.2 从GW1 出去
        强制192.168.0.3 从GW2 出去

没太明白,PF可以完成NAT是没有关系的,如果路由功能是由PF完成的,那是不是就不用加路由表了。连default route也不用加,对吗?



顺便问一下。freebsd的route 可以基于源地址加路由表吗?

[ 本帖最后由 123456sx 于 2009-5-11 10:43 编辑 ]

论坛徽章:
54
2017金鸡报晓
日期:2017-02-08 10:39:42操作系统版块每日发帖之星
日期:2016-03-08 06:20:00操作系统版块每日发帖之星
日期:2016-03-07 06:20:00操作系统版块每日发帖之星
日期:2016-02-22 06:20:00操作系统版块每日发帖之星
日期:2016-01-29 06:20:00操作系统版块每日发帖之星
日期:2016-01-27 06:20:00操作系统版块每日发帖之星
日期:2016-01-20 06:20:00操作系统版块每日发帖之星
日期:2016-01-06 06:20:0015-16赛季CBA联赛之江苏
日期:2015-12-21 20:00:24操作系统版块每日发帖之星
日期:2015-12-21 06:20:00IT运维版块每日发帖之星
日期:2015-11-17 06:20:002015亚冠之广州恒大
日期:2015-11-12 10:58:02
4 [报告]
发表于 2009-05-11 13:42 |只看该作者
用ipfw也可以实现,直接做两个divert界面,然后用ipfw把数据包指到相应的界面就行了。

如果单纯实现上面的内容,也不是很难,简单地man natd,再看一下手册里的ipfw,很快就可以搞定。

源地址路由搞不懂。

论坛徽章:
0
5 [报告]
发表于 2009-05-11 19:35 |只看该作者
只需对文档中的示例,稍作修改即可


  1. ip2="192.168.0.2"
  2. ip3="192.168.0.3"
  3. int_if  = "dc0"
  4. ext_if1 = "fxp0"
  5. ext_if2 = "fxp1"
  6. ext_gw1 = "222.88.33.11"
  7. ext_gw2 = "219.150.10.9"


  8. #  nat outgoing connections on each internet interface
  9. nat on $ext_if1 from $ip2 to any -> ($ext_if1)
  10. nat on $ext_if2 from $ip3 to any -> ($ext_if2)

  11. #  default deny
  12. block in  from any to any
  13. block out from any to any

  14. #  pass all outgoing packets on internal interface
  15. pass out on $int_if from any to any
  16. #  pass in quick any packets destined for the gateway itself
  17. pass in quick on $int_if from any to $int_if

  18. pass in on $int_if route-to \
  19.     ($ext_if1 $ext_gw1) \
  20.      from $ip2 to any keep state

  21. pass in on $int_if route-to \
  22.      ($ext_if2 $ext_gw2)  \
  23.     from $ip3 to any keep state

  24. #  general "pass out" rules for external interfaces
  25. pass out on $ext_if1 proto tcp from any to any flags S/SA modulate state
  26. pass out on $ext_if1 proto { udp, icmp } from any to any keep state
  27. pass out on $ext_if2 proto tcp from any to any flags S/SA modulate state
  28. pass out on $ext_if2 proto { udp, icmp } from any to any keep state

  29. #  route packets from any IPs on $ext_if1 to $ext_gw1 and the same for
  30. #  $ext_if2 and $ext_gw2
  31. pass out on $ext_if1 route-to ($ext_if2 $ext_gw2) from $ext_if2 to any
  32. pass out on $ext_if2 route-to ($ext_if1 $ext_gw1) from $ext_if1 to any
复制代码

论坛徽章:
0
6 [报告]
发表于 2009-05-11 21:51 |只看该作者
楼上的我试了不行。。。。。。。。。。。。。。。

论坛徽章:
0
7 [报告]
发表于 2009-05-12 23:51 |只看该作者
顶起来。请大家拿真实的环境测试一下!
其实高手观注,
做policy route  rc.conf 还用不用加defaultroute    ????

论坛徽章:
0
8 [报告]
发表于 2009-06-16 16:55 |只看该作者
原帖由 feillex 于 2009-5-11 19:35 发表
只需对文档中的示例,稍作修改即可


ip2="192.168.0.2"
ip3="192.168.0.3"
int_if  = "dc0"
ext_if1 = "fxp0"
ext_if2 = "fxp1"
ext_gw1 = "222.88.33.11"
ext_gw2 = "219.150.10.9"


#  nat out ...


我也测试了,这个还是不能实现要求。
觉得这段规则实现了负载均衡,没有做到依据来源地址的路由。
要怎么修改,请兄弟指点一下。


另外我在openbsd里用multipath可以加多条default route,是不是需要多路径的支持呢?

论坛徽章:
0
9 [报告]
发表于 2009-06-17 10:38 |只看该作者
问题解决,新加了一条规则。
pass in quick on $LAN route-to { ($WAN2 192.168.0.1) } proto { tcp, udp, icmp } from <line2address>  to any keep state

其他的地址,比如lineaddress2还是通过原来规则走WAN1

[ 本帖最后由 sidx 于 2009-6-17 10:43 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP