使用IPv4,当路径最大传输单位发现不起作用时,TCP MSS“钳制”(在TCP头中编辑MSS值的网络设备)会有所帮助。 (例如,当ICMP被阻塞在路径中的某个位置时。)由于IPv6中没有碎片,因此我们仍然有ICMPv6的“数据包太大”,无法发出始发端点的信号。
专门通过IPv6夹紧TCP MSS?

#1 楼

从技术上讲,IPv6中可能会发生碎片;这是维基百科上的文章。

此Juniper页面有些陈旧,但它表明您可以像使用IPv4一样使用相同的命令来为Junos上的IPv6钳制TCP的MSS, tcp mss。对于Cisco IOS 15,本文使用传统的ip tcp adjust-mss命令在本文中显示了相同的内容。 ,否则,您应确保在整个网络中协助PTMUD的平滑运行,以便不需要MSS限制(我知道这并不总是在您的控制之下)。

Update

这里是指向Junos 10x而不是9的Junos较新文章的链接,我找不到11的文章,现在不在11的前面,但是我希望它将一样。

评论


...我能正确阅读碎片说明吗? IPv4分段可能在路由的任何跃点上发生,而在IPv6中,路由器必须丢弃数据包(通过ICMPv6进行通知),然后由端点完成分段?

–克雷格·康斯坦丁(Craig Constantine)
13年5月9日在19:43

对,那是正确的。除非路由器充当主机,否则路由器不会完成v6中的分段。 IE:通过v6等管理流量

–巨石
2013年5月9日19:46

这里有一个妙处,就是至少IOS版本的Adjust-mss被破坏了,因为它可以夹持v6,但错误地是:blog.ioshints.info/2013/01/…

–LapTop006
13年5月10日13:07

#2 楼

肯定存在某些情况-通常在路径上的某个点涉及IPv6-in-IPv4隧道-即使PMTUD正常工作,MSS协商也会失败。在这种情况下,TCP会话可能会正确启动(因为SYN / ACK数据包很小),但是没有数据包到达(因为这些数据包对于隧道而言太大)。在这种情况下,远端的MSS钳位将有所帮助,但不受等待分组的“受害者”的控制。故障安全解决方案是为两端将IPv6 MTU设置为1280,该MTU应该通过任何隧道。

评论


“ MSS协商失败。”未协商MSS。双方在SYN中发送其MSS是什么。对方需要尊重对方发送的MSS,并且每个MSS可以不同。 MSS未协商,由其决定。一侧或两侧都可以将MSS设置为“ 0”,这意味着在该方向上没有MSS,并且可以在该方向上发送任何大小段。 RFC 793中对此进行了说明。

–罗恩·莫潘♦
20/12/20在2:13