免费注册 查看新帖 |

Chinaunix

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

[FreeBSD] FreeBSD NAT,可以ping通,但无法通信,不知道怎么解决。。 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-09-17 11:26 |只看该作者 |倒序浏览
FreeBSD NAT的内网机器上,可以ping通,但无法通信,不知道怎么解决,求解。。

首先,可以ping通指定的IP:
  1. % ping 8.8.178.110
  2. PING 8.8.178.110 (8.8.178.110): 56 data bytes
  3. 64 bytes from 8.8.178.110: icmp_seq=0 ttl=49 time=183.362 ms
  4. 64 bytes from 8.8.178.110: icmp_seq=1 ttl=49 time=183.576 ms
  5. 64 bytes from 8.8.178.110: icmp_seq=2 ttl=49 time=183.973 ms
  6. 64 bytes from 8.8.178.110: icmp_seq=3 ttl=49 time=184.955 ms
  7. 64 bytes from 8.8.178.110: icmp_seq=4 ttl=49 time=184.588 ms
  8. ^C
  9. --- 8.8.178.110 ping statistics ---
  10. 5 packets transmitted, 5 packets received, 0.0% packet loss
  11. round-trip min/avg/max/stddev = 183.362/184.091/184.955/0.601 ms
复制代码
然后,使用fetch时却超时了:
  1. % fetch http://8.8.178.110
  2. fetch: http://8.8.178.110: Operation timed out
复制代码
在网关机器上,这两个命令都能正常使用。

网关机器上的ipfw的规则如下:
  1. $ sudo ipfw list
  2. Password:
  3. 00100 nat 10 ip from 192.168.1.0/24 to any out via re0
  4. 00110 nat 10 ip from any to any in via re0
  5. 60000 allow ip from any to any
  6. 65535 deny ip from any to any
复制代码

论坛徽章:
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
2 [报告]
发表于 2014-09-17 14:30 |只看该作者
如果网关和路由都正确的话,不应该出这种问题。可以在re0上抓个包看看。

论坛徽章:
0
3 [报告]
发表于 2014-09-17 20:02 |只看该作者
  删了重装。。
。。。。 我已经好久没有来BSD

论坛徽章:
0
4 [报告]
发表于 2014-09-21 14:57 |只看该作者
65535 deny ip from any to any

论坛徽章:
0
5 [报告]
发表于 2014-09-26 09:20 |只看该作者
本帖最后由 ljwsy 于 2014-09-26 09:21 编辑

在/etc/rc.firewall中有个设置:只要natd_enable打开,就设置一个规则“${fwcmd} add divert natd ip4 from any to any via ${natd_interface}”。

于是我的机子有下面这条ipfw规则:00049 divert 8668 ip4 from any to any via sk0

目前工作还正常,楼主试试。

这规则让我想起另一个事:如果我不想让from_any_to_any而是只想让from_192.168.0.0/24_to_any,其他的不给过。我加了“0049 divert 8668 ip4 from 192.168.0.0/24 to any via sk0”但过不去,汗。没时间做,any就any吧

论坛徽章:
0
6 [报告]
发表于 2014-09-26 09:28 |只看该作者
这是我全部的规则:
  1. 00001 deny ip from any to any dst-port 5801 via sk0
  2. 00002 deny ip from any to any dst-port 5901 via sk0
  3. 00003 deny ip from any to any dst-port 6001 via sk0
  4. 00004 deny ip from any to any dst-port 199 via sk0
  5. 00049 divert 8668 ip4 from any to any via sk0
  6. 00050 divert 8668 ip4 from 172.16.100.0/24 to any via sk0
  7. 00051 divert 8668 ip4 from 192.168.0.0/24 to any via sk0
  8. 00100 allow ip from any to any via lo0
  9. 00200 deny ip from any to 127.0.0.0/8
  10. 00300 deny ip from 127.0.0.0/8 to any
  11. 00400 deny ip from any to ::1
  12. 00500 deny ip from ::1 to any
  13. 00600 allow ipv6-icmp from :: to ff02::/16
  14. 00700 allow ipv6-icmp from fe80::/10 to fe80::/10
  15. 00800 allow ipv6-icmp from fe80::/10 to ff02::/16
  16. 00900 allow ipv6-icmp from any to any ip6 icmp6types 1
  17. 01000 allow ipv6-icmp from any to any ip6 icmp6types 2,135,136
  18. 65000 allow ip from any to any
  19. 65535 allow ip from any to any
复制代码
1~4是关闭指定端口,50和51号本意是想只给某些段过但做不通。

论坛徽章:
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
7 [报告]
发表于 2014-09-27 08:58 |只看该作者
回复 5# ljwsy


    你把这句拆成两句就能通了:
0049 divert 8668 ip4 from 192.168.0.0/24 to any via sk0

换为:
0049 divert 8668 ip4 from 192.168.0.0/24 to any out via sk0
0049 divert 8668 ip4 from any to any in via sk0


原理:sk0应该是外网,还要考虑回来的包,ipfw规则除非用状态规则,也就是keep-state或limit,都要考虑数据包进出两个方向的问题。

论坛徽章:
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
8 [报告]
发表于 2014-09-27 08:58 |只看该作者
另外现在一般都用内核的nat了,很少用natd,但是做大量端口映射的时候,还是natd省事。

论坛徽章:
0
9 [报告]
发表于 2014-09-28 12:50 |只看该作者
多谢各位了!!!一直在忙项目,当时只是配一个临时的开发机,NAT不通,就直接换用bridge的方式接了。等下1点还要开会,好苦逼...
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP