首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Linux机器上临时禁用/启用PMTU发现的正确方法是什么?

在Linux机器上临时禁用/启用PMTU发现的正确方法是什么?
EN

Server Fault用户
提问于 2013-05-02 11:08:26
回答 2查看 5.4K关注 0票数 1

我有一些pcaps,其中包含的数据包比标准以太网MTU大小为1500 B。我搜索了一下,找到了指向Jumbo框架的裁判。我现在明白了,由于我在一个支持发送Jumbo帧(高达9k)的GBE网络上,我的Debian派生程序上的TCP/IP堆栈将自动调整自身,并使用如此巨大的帧大小(PMTU发现)。这真是太棒了!

但是,我想要对这个特性的自动启用有一些控制.具体来说,我想确保当我捕获一个pcap时,它被暂时禁用,因此所有捕获的数据包都在1500 B以下。我需要确保这一点,因为基于tcpreplay的pcap框架在看到Jumbo框架时失败了。Tcpreplay有一个增强请求,支持分段IP数据包> MTU来启用发送Jumbo帧。但这是一张低优先级的罚单,可能需要时间来解决。

我读到了手动调整PMTU发现行为的方法,发现/proc文件系统下的"ip_no_pmtu_disc“sysctl变量可能很方便。我在我的客户端和服务器系统上都启用了它(尽管我假设在其中任何一个系统上启用它就足够了),并捕获了一些pcaps。但是他们仍然有大于1500 B的数据包。我的网络接口上的默认MTU已经设置为1500 B,而且由于PMTU发现被禁用,我假设事情会很好。但是,我错过了一些东西。请给我参考/指点。

注意:我没有重新启动系统,因为我所做的/proc调整不会持续。每次我需要重播pcaps时,我也不能重新启动系统。

EN

回答 2

Server Fault用户

回答已采纳

发布于 2013-05-02 11:46:31

你看到的不是巨型镜框的迹象。您的NIC可能是在嗅探数据后将数据分割成更小的数据包。您可能在VM上进行测试吗?Linux不会使用比接口上配置的MTU更大的MTU来处理传出数据包。如果你的MTU是1500,那就是最大值。

票数 0
EN

Server Fault用户

发布于 2016-03-01 17:29:54

听起来你可能有TSO和GSO。通常,MSS是由MTU标头决定的,它还向连接的两边发布广告,这允许将最低的两种连接用于连接构建,但是,如果启用了tso和gso,linux将忽略mtu/mss,并发送大量数据块,这些数据将变得支离破碎。

票数 -1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/504420

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档