一次MTU问题导致的RDS访问故障
导语
作者:陆信宇
一、环境拓扑
二、现象描述
三、排查过程
四、问题原因
五、解决方案
六、其他
什么是MTU
MTU是数据链路层的概念,限制的是数据链路层payload的大小,即上层协议大小(包括上层协议头)
例如设置主机接口mtu为1450。则在一个TCP报文中,1450 = 20字节IP头 + 20字节TCP头 + 1410TCP数据。
什么是MSS
MSS最大报文段,是TCP中一个选项,用于在TCP连接建立时,收发双方协商通信时每一个报文段所能承载的最大数据长度(注意不包含TCP头部大小)
如何探测路径MTU值
Linux主机中: 执行
ping x.x.x.x -s 1422 -M do
,x.x.x.x是目标地址,-s指明icmp报文的数据部分大小(不包含icmp 8字节头部)。-M do
表示不允许分片。多试几次,找到临界点。以mtu为1450为例,1450 = 20字节IP头 + 8字节icmp头 + 1422数据,则-s指定为1422可以正常通过Windows主机中: 执行
ping x.x.x.x -l 1472 -f
,x.x.x.x是目标地址,-l指明icmp报文的数据部分大小(不包含icmp 8字节头部)。-f表示不允许分片。如何查看MTU
Linux: ifconfig
windows: netsh interface ipv4 show subinterfaces
如何设置MTU
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
文章目录