Questions tagged «ip-fragmentation»

2
OpenVPN:如何缓解每个客户端的路径MTU问题?
我们在客户处安装了数十种嵌入式设备,所有这些设备都是我们的OpenVPN服务的所在地。总体而言,这可以正常工作,但是我们的一些客户在路径MTU方面存在严重问题。我们对客户修复网络的影响是有限的,因此我们需要OpenVPN对其进行处理。简而言之,我的问题是: 我如何减轻每个客户端基于某些客户端的低路径MTU,即不使用全局设置来适应所有客户端的最坏情况 请注意,我们的最坏情况非常糟糕:路径MTU 576会丢弃所有片段,不会自身进行片段化,也不会使用DF位。您会明白为什么我不想在全球范围内解决此问题。 该OpenVPN的联机帮助提供了许多MTU的相关选项,最显着的--link-mtu, --tun-mtu, --fragment and --mssfix。但这也说 --link-mtu [...]除非您知道自己在做什么,否则最好不要设置此参数。 --tun-mtu [...]最好使用--fragment和/或--mssfix选项来处理MTU尺寸调整问题。 于是我开始尝试用--fragment和--mssfix,但很快就意识到,至少前者必须设置不仅客户端,但也服务器端。然后,我通过看到服务器端的每个客户端的配置--client-config-dir,但它说 以下选项在特定于客户端的上下文中合法:--push,--push-reset,--iroute,--ifconfig-push和--config。 没有提及MTU选项! 所以这是我更具体的问题: 到底为什么是link-mtu和tun-mtu沮丧?这些选项潜在的问题是什么?请注意,我对低级IP标头处理非常满意。 link-mtu tun-mtu fragment mssfix为了工作,必须在服务器端镜像哪个选项? link-mtu tun-mtu fragment mssfix可以在哪个选项中使用client-config-dir? 如果所有四个选项都必须在服务器端进行镜像,并且不能在内部使用client-config-dir:是否有其他方法可以解决每个客户端的低路径MTU? 笔记: 我的部分问题已经在5年前在这里提出过,但是那时还没有真正得到回答,因此我敢于重复它们。 OpenVPN服务器当前在Ubuntu 12.04上为2.2.1。我们正在准备在Ubuntu 14.04上升级到2.3.2 OpenVPN客户端在Debian 7.6上为2.2.1 我很高兴自己亲自确定客户的路径MTU 目前,我们无法测试太多服务器端。但是我们正在建立一个完整的独立测试台,应该尽快准备就绪。 感谢您提供任何有用的建议。


1
为什么iptables拒绝允许的数据包的第二个和后续片段?
我有两个正在尝试建立IPSec连接的主机。为此,它们必须在UDP端口500和4500上进行通信,因此我在两端的防火墙中打开了它们(如相关部分所示): -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A INPUT -m udp -p udp --dport 500 -j ACCEPT -A INPUT -m udp -p udp --dport 4500 -j ACCEPT #..... -A INPUT -j REJECT --reject-with icmp6-port-unreachable 但是,密钥交换永远不会成功。双方不断尝试不断地重传UDP数据包,直到最终放弃之前,再也听不到响应。 我从tcpdump一端开始,观察到UDP数据包被分段了,第二个分段进入后,ICMP端口不可达被返回。 此类交换失败的示例(为保护您而进行了消毒): 04:00:43.311572 IP6 (hlim 51, next-header Fragment (44) payload length: 1240) 2001:db8::be6b:d879 …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.