主页 > 路由器 > 斐讯K2 UDP转发的问题(时钟无法同步)

斐讯K2 UDP转发的问题(时钟无法同步)

斐讯K2使用过程中,发现有时会出现时钟无法同步的现象,而且一般是做二级路由的情况下出现,定位过程如下

 

NTP时钟同步使用的UDP 123号端口,我们在本地搭建环境,用两台K2,一台地址为192.168.1.1,PPPOE拨号上网

另一台无线中继到第一台,WAN地址为192.168.1.122,LAN地址为192.168.2.1

先在第二台上把系统的ntp给关掉:

/etc/init.d/sysntpd stop

采用手工同步命令同步时钟:

/usr/sbin/ntpd -n -d -p clock.fmt.he.net

正常情况下应该是这样的:

正常情况下抓取的报文信息:

把端口转发或DMZ打开,然后再运行:

/usr/sbin/ntpd -n -d -p clock.fmt.he.net

报文是这样的:

可以看到,很多报文是超时的,为什么会这样呢?

我们简化一下组网,在本地进行测试,主要测试K2对UDP的转发处理,在K2的LAN接一台计算机,运行IPOP的UDP客户端(192.168.2.203),在K2的WAN口接一台计算机,运行IPOP的UDP服务端(192.168.1.227):
正常情况下,客户端能够发送和接收到UDP报文:

服务端信息:

抓包报文:

注意端口转换信息:客户端是22211-22213,NAT转换后是58706-58708

然后我们开启端口转发,会发现端口转换错误:
客户端收不到返回报文:

服务段收到了客户端的请求,但是会发现客户端的端口没有变化:

抓包报文也显示NAT转换时端口没有变化:

客户端源端口是变化的,经过NAT转换后,源端口变成一样了,这样返回的UDP报文会找不到正确的客户端源端口返回数据,造成客户端无法正确的接受UDP返回报文

为什么会造成此问题?

查看源码会发现,导致此问题的语句为:
端口转发:
iptables -t nat -A port_forward_postrout -d 192.168.2.2/32 -o br-lan -p tcp -j MASQUERADE
DMZ:
iptables -t nat -A DMZ_postrout -d 192.168.2.2/32 -o br-lan -j MASQUERADE
上面两条语句都是对br-lan接口增加了MASQUERADE规则

未完待续..

评论:1

  1. introom 回复
    2017年6月26日 于 下午1:32

    你好,我的K2也遇到了UDP问题,请问怎么才能解决? 刷其他固件?谢谢。

发表评论

新用户的评论需审核后才会显示;

电子邮件地址不会被公开;
必填项已用*标注