PPPoE 拨号场景,WEB 访问不了?收发邮件异常?

[复制链接]
本帖最后由 社区助手_001 于 2020-6-16 19:48 编辑

【问题现象】
PPPoE拨号场景下,用户经常会反馈不能访问网页(或部分网页)以及不能收发邮件,检查配置时也没有错误。

【问题原因】
PPPoE拨号场景,IP报文长度大于 MTU,同时设置不分片标志(DF),导致设备丢弃报文,造成业务影响。
先来了解下MTU 和 TCP MSS 的关系:MTU=IP 报文头+TCP 报文头+TCP MSS
以太网中,设备的 MTU 值默认是 1500 字节,那么 TCP MSS 最大值 1460=1500-20(IP 报文头)-20(TCP 报文头),如下图:
图片1.png
通信终端在TCP 三次握手时会协商 TCP MSS 值,由于网络复杂,媒介不同 MTU 值也会有所不同,最小的 MTU 决定了最终 TCP MSS 协商结果,具体协商过程如下:
图片2.png

而网络层 IP 协议会根据 MTU 的大小决定报文是否“分片”处理,分片最大的坏处就是降低了传输性能,所以在网络层更高一层(就是传输层)的实现中往往会对此加以注意!有些高层协议因为某些原因会要求这个报文不能分片,所以会在 IP 数据包包头里面加上一个标志:DF(Donot Fragment)。这样当这个 IP 数据包在一大段网络传输的时候,如果遇到MTU 小于 IP 数据包的情况,转发设备就会根据要求丢弃这个数据包,然后返回一个错误信息给发送者,这样往往会造成某些通讯上的问题。
回到问题的本身,相对于普通以太网报文,PPPoE 报文多了 8 字节的 PPPoE 头,这样就导致实际的 MTU 值变小(1500-8=1492),所以在 PPPoE 应用中 MSS 取值不能超过(1492-20- 20=1452)。如果 MSS 取值超过 1452 则 IP 报文长度将会大于实际的 MTU 值,同时报文设置不分片,导致报文被丢弃。
【解决办法】
将设备 TCP MSS 值修改为小于 1452 字节。

【建议总结】
实际网络中,不一定只有 PPPOE 拨号场景,VPN 链路、MPLS 链路等都会额外增加报文大小,导致传输超出 MTU 大小。

构建全联接的未来
回复

使用道具 举报

已有(15)人评论

跳转到指定楼层
sangfor 发表于 2021-7-5 18:23:19
不错不错
回复
回复

使用道具 举报

anmit 发表于 2021-8-2 17:44:39
学习了
回复
回复

使用道具 举报

superman 发表于 2021-8-10 14:31:13
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

sangfor 发表于 2021-8-27 14:51:58
打卡!
回复
回复

使用道具 举报

talent 发表于 2021-9-1 10:55:10
学习了
回复
回复

使用道具 举报

13830 发表于 2022-2-16 08:31:40
又学到了新知识,很优秀
回复
回复

使用道具 举报

何茂源 发表于 2022-4-11 08:11:09
又学到了一个新技术,谢谢!
回复
回复

使用道具 举报

叶远焕 发表于 2022-5-13 19:00:52
学习到了,对工作有帮助!非常感谢!
回复
回复

使用道具 举报

talent 发表于 2022-5-25 21:43:01
感谢分享有助于工作和学习。
回复
回复

使用道具 举报

12下一页
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|信锐技术社区
© 2016-2022 深圳市信锐网科技术有限公司 版权所有  Powered by Discuz! X3.4  粤ICP备 14013597号
400-878-3389
售后服务热线  7*24小时