免费注册 查看新帖 |

Chinaunix

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

[FreeBSD] PF NAT 与 链路聚合(LACP)问题 [复制链接]

论坛徽章:
1
操作系统版块每日发帖之星
日期:2016-04-01 06:20:00
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2016-03-27 22:01 |只看该作者 |正序浏览
系统环境:FreeBSD amd64 10.2
网络环境:4网卡+二层交换
实践过程:
1、bsd机器上4个网卡,做LACP链路聚合,创建lagg0和lagg1,分别绑定两个网卡;
2、二层交换上做两个聚合,分别对应lagg0和lagg1;
3、lagg0为wan口,lagg1为lan口,lagg1通过子接口绑定多个子网网关;
     lagg0的上游网关:192.168.22.1
     lagg0的ip是:192.168.22.254
     lagg1的绑定的网段是:169.254.0.0/16
4、bsd机器上启用gateway、pf和ip_forward,pf的规则只一条
    nat on lagg0 from lagg1:network to any -> (lagg0)


问题表现:
1、从lagg1下属任何机器都能ping通lagg0,但是ping不同lagg0的上游网关。
2、上tcpdump,抓子网某一机器数据:tcpdump host 169.254.23.2
     从结果来看,icmp包只有两种:
    169.254.23.2   指向 169.254.23.1
    192.168.22.254 指向 192.168.22.1
    没有从上游网关到子网机器的返回数据。

换用ipf、ipfw的natd均是如此,无奈。
是否NAT不能作用于lagg设备?google也没找到类似的案例。

论坛徽章:
1
操作系统版块每日发帖之星
日期:2016-04-01 06:20:00
14 [报告]
发表于 2016-03-29 21:55 |只看该作者
重新测试过了,如果内网网段设置为169.254.0.0/16,则NAT虽然生效,但返回包无法到达内网客户机,无论采用的是pf、ipf还是ipfw,真实网卡还是lagg设备,内网机器是windows还是linux都是如此。
内网网段除了169.254.0.0/16,其他随意设置应该都是OK的。我测试了11.0.0.0/8,111.0.0.0/8等等20+的网段,无论采用的是pf、ipf还是ipfw,真实网卡还是lagg设备,内网机器是windows还是linux都OK。
so,是否freebsd机器的NAT机制对169.254.0.0/16这个网段的处理有特例?还是我这里的个例情况。不太理解这个事。

论坛徽章:
1
操作系统版块每日发帖之星
日期:2016-04-01 06:20:00
13 [报告]
发表于 2016-03-29 19:49 |只看该作者
客户机还真是都是windows。

论坛徽章:
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
12 [报告]
发表于 2016-03-29 19:29 |只看该作者
顺便提一下,如果用169.254.x.x来做测试,最好别用windows机器,会带来一些未知的问题。

论坛徽章:
1
操作系统版块每日发帖之星
日期:2016-04-01 06:20:00
11 [报告]
发表于 2016-03-29 18:41 |只看该作者
本帖最后由 fzfh 于 2016-03-29 18:52 编辑

回复 10# lsstarboy
这个我在后续的测试中已经做了,169.254网段互相都能通,icmp的返回包就是不能到达内网子机。
类似的环境, 我先把LACP取消,单独两个网卡来测试,也是如此,换用IPF也是如此,但将168.254网段换成172.16网段就好了。
等下去测试lacp下更换网段的问题,顺便详查一下路由表。路由表但是也看过,貌似没啥问题。
   

论坛徽章:
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
10 [报告]
发表于 2016-03-29 14:38 |只看该作者
回复 8# fzfh


不是FreeBSD的bug,跟内网是不是私有网段没关系。

你可以从169.254.21.1上面ping 169.254.21.2看看通不通,这段是arp,可以再看一下arp信息。

论坛徽章:
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
9 [报告]
发表于 2016-03-29 14:35 |只看该作者
回复 7# fzfh

说明NAT功能正常,内网不能正确返回到客户机,应该是路由不正常,先检查路由表。

netstat -nr
   

论坛徽章:
1
操作系统版块每日发帖之星
日期:2016-04-01 06:20:00
8 [报告]
发表于 2016-03-29 13:18 |只看该作者
本帖最后由 fzfh 于 2016-03-29 13:28 编辑

今天灵机一动,想起来NAT规定的内网IP段不包含169.254.0.0/16网段,然后把内网网段修改为RFC1918规定的内网网段,然后一下子没有问题了。
但是,针对应用修改大量的IP,怎么想都不划算。
这个算不算BUG恩?按道理讲,NAT设备已经屏蔽了所有的内网IP信息,这个与内网使用那个网段应该没有关系,为什么会出这个问题呢?
是PF,IPF的代码引起的?还是FreeBSD自身的严格规则限定的?
如何才能解除NAT对RFC1918定义的内网网段的限制?
linux的iptables没有这个问题。

论坛徽章:
1
操作系统版块每日发帖之星
日期:2016-04-01 06:20:00
7 [报告]
发表于 2016-03-29 01:02 |只看该作者
本帖最后由 fzfh 于 2016-03-29 01:03 编辑

tcpdump分别在lagg0和lagg1上抓了包,在wireshark中分析,针对上述的ping过程(169.254.21.2 ping 192.168.22.1),简单总结一下:
在lagg0上,有lgg0的ip和ping的目标ip的icmp请求和回应包;
在lagg1上,只有lagg1子网客户机的icmp请求包,无回应包。
tcpdump抓取的文件如下: dumpdata.7z (1.4 KB, 下载次数: 33)
22.1.cap是lagg0的抓包数据,抓包命令:tcpdump -i lagg0 -vv -c 40 host 192.168.22.1;
21.2.cap是lagg1的抓包数据,抓包命令:tcpdump -i lagg1 -vv -c 40 host 169.254.21.2;

对于pf的nat过程: 169.254.22.1->192.168.22.9->192.168.22.1 已OK,icmp的回应信息192.168.22.1->192.168.22.9也ok,但192.168.22.9->169.254.21.2不通,找不出来原因。还得麻烦各位大大帮忙分析一下原因,谢谢。

论坛徽章:
1
操作系统版块每日发帖之星
日期:2016-04-01 06:20:00
6 [报告]
发表于 2016-03-28 15:30 |只看该作者
本帖最后由 fzfh 于 2016-03-29 01:03 编辑

回复 5# lsstarboy
好,感谢回复。抓了包看不明白再来。
  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP