[转帖]Linux和Windows网卡MTU的修改

linux,windows,网卡,mtu,修改 · 浏览次数 : 0

小编点评

## Linux和Windows网卡MTU的修改 **实验结果** MTU参数只作用于发包,不作用于收包。收包规格取决于网卡发包规格取决于MTU参数实验拓扑 **Linux** ```bash # 修改linux的ens33 mtu为1600 nmcli con modify ens33 802-3-ethernet.mtu 1600 # 重新启动网卡 nmcli con up ens33 ``` **Windows** ```bat # 修改Windows的VMware Network Adapter VMnet8 mtu为1000000 netsh interface ipv4 set subinterface \"VMware Network Adapter VMnet8\" mtu=1000000 # 测试MTU参数是否生效 ping -c 1 -s 1572 192.168.232.2 # 查看MTU参数 netsh interface ipv4 show subinterface \"VMware Network Adapter VMnet8\" MTU MediaSenseState 传入字节 传出字节 ``` **结论** * Linux只可以修改mtu到16110,更大的值不会报错,但不会生效(会变回1500) * Windows可以修改mtu到1000000,但该参数不会生效(会变回1500) * 即使mtu参数设置成1000000,也无法ping通65500大的ping包

正文

Linux和Windows网卡MTU的修改

https://www.jianshu.com/p/cb3bd1e34f3a

 

实验结果

  • MTU参数只作用于发包,不作用于收包。
  • 收包规格取决于网卡
  • 发包规格取决于MTU参数

实验拓扑

WINDOWS 10:"VMware Network Adapter VMnet8"[mtu 1500]---[mtu 1500]"ens33":Linux

Windows10网卡配置

netsh  interface  ipv4 show subinterfaces "VMware Network Adapter VMnet8"

   MTU  MediaSenseState   传入字节  传出字节      接口
------  ---------------  ---------  ---------  -------------
  1500                1       4461      67219  VMware Network Adapter VMnet8

linux网卡配置

# ip a
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:e7:54:74 brd ff:ff:ff:ff:ff:ff
    inet 192.168.232.110/24 brd 192.168.232.255 

修改linux的ens33 mtu为1600

# nmcli  con modify ens33 802-3-ethernet.mtu 1600
# nmcli con up ens33

在linux上测试,发现1572字节icmp报文可以ping通

# ping -c 1 -s 1572 192.168.232.2
PING 192.168.232.2 (192.168.232.2) 1572(1600) bytes of data.
1580 bytes from 192.168.232.2: icmp_seq=1 ttl=128 time=0.326 ms

--- 192.168.232.2 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.326/0.326/0.326/0.000 ms

经过抓包发现,发送的报文确实是1580字节的包,收到的reply是两个包,说明windows在replay的时候,因为mtu是1500,所以发生了IP分片,发送了两个报文。

# tcpdump -i ens33 icmp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes
02:21:11.240517 IP backend > _gateway: ICMP echo request, id 14608, seq 1, length 1580
02:21:11.240812 IP _gateway > backend: icmp
02:21:11.240819 IP _gateway > backend: ICMP echo reply, id 14608, seq 1, length 1480

windows发送报文MTU参数不受限制,虽然IP头的长度规格是65535,但是以太网并不一定是承载ip,以太帧头中也没有长度的定义,所以可以修改mtu到10万

netsh  interface  ipv4 set   subinterface  "VMware Network Adapter VMnet8"  mtu=1000000
确定。
netsh  interface  ipv4 show   subinterface  "VMware Network Adapter VMnet8"

   MTU  MediaSenseState   传入字节  传出字节      接口
------  ---------------  ---------  ---------  -------------
1000000                1     239347     365732  VMware Network Adapter VMnet8

由于ip的限制,最大ping报文长度为65500,测试windows可以发送65500大的ping包,但是由于受网卡规格的限制,无法ping通

ping -f -l 65500 192.168.232.110
正在 Ping 192.168.232.110 具有 65500 字节的数据:
请求超时。

linux 只可以修改mtu到16110,更大的值不会报错,但是不会生效(会变回1500)

# nmcli  con modify ens33 802-3-ethernet.mtu 16110
# nmcli con up ens33
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/41)
# ip link
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 16110 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:e7:54:74 brd ff:ff:ff:ff:ff:ff

使用ping可以测得两个网卡可以支持的最大接收mtu规格为9170

ping -n 1 -f -l 9170 192.168.232.110

正在 Ping 192.168.232.110 具有 9170 字节的数据:
来自 192.168.232.110 的回复: 字节=9170 时间<1ms TTL=64

192.168.232.110 的 Ping 统计信息:
    数据包: 已发送 = 1,已接收 = 1,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 0ms,最长 = 0ms,平均 = 0ms

ping -n 1 -f -l 9171 192.168.232.110

正在 Ping 192.168.232.110 具有 9171 字节的数据:
请求超时。

192.168.232.110 的 Ping 统计信息:
    数据包: 已发送 = 1,已接收 = 0,丢失 = 1 (100% 丢失),

与[转帖]Linux和Windows网卡MTU的修改相似的内容:

[转帖]Linux和Windows网卡MTU的修改

Linux和Windows网卡MTU的修改 https://www.jianshu.com/p/cb3bd1e34f3a 实验结果 MTU参数只作用于发包,不作用于收包。 收包规格取决于网卡 发包规格取决于MTU参数 实验拓扑 WINDOWS 10:"VMware Network Adapter V

[转帖]Linux 内核 vs Windows 内核

https://cloud.tencent.com/developer/article/1798251?from=article.detail.1888155&areaSource=106000.15&traceId=en1H1V0Ctjdzz29-luoya Windows 和 Linux 可以说

[转帖]IvorySQL--Linux环境源码编译安装

https://www.ivorysql.org/zh-CN/blog/IvorySQL-Linux IvorySQL可以在Linux, OSX, Unix和Windows平台上构建,与PostgreSQL的编译安装基本上是一样的。本文对基于Linux的系统上编译源代码的步骤进行说明。 一、准备工作

[转帖]Redis进阶实践之六Redis Desktop Manager连接Windows和Linux系统上的Redis服务

https://www.cnblogs.com/PatrickLiu/p/8360057.html 一、引言 今天本来没有打算写这篇文章,但是,今天测试Redis的时候发现了两个问题,第一个问题是:Redis Desktop Manager无法连接虚拟机上Linux系统上的Redis服务,第二个问题

[转帖]linux的硬链接和软连接的区别

Linux中有两种链接文件: 1)软链接(符号链接symbol),等同于Windows中快捷方式 ln -s 源文件名 符号链接文件名,源文件名和符号链接文件名是主从关系,源被删了,符号链接也就失效了 eg: ln -s src.c linker.c (linker.c就是src.c的一个符号链接文

[转帖]如何使用storcli在系统中管理RAID磁盘阵列

Windows版和Linux版storcli命令中个别参数略有差异,可以查看帮助文件,命令如下: ./storcli help page=30 上面命令page=30表示每页显示30行内容。 下载storcli storcli下载地址如下: StorCLI Standalone Utility 查看

[转帖]认识目标文件的格式——a.out COFF PE ELF

https://cloud.tencent.com/developer/article/1446849 1.目标文件的常用格式 目标文件是源代码编译后未进行链接的中间文件(Windows的.obj和Linux的.o),与可执行文件(Windows的.exe和Linux的ELF)的结构和内容相似,因此

[转帖]Linux:crontab要点整理(表达式,转义,权限管理,日志)

https://www.jianshu.com/p/fd46652f247e 摘要:Linux,crontab整理crontab的使用,包括cron表达式,设置和删除任务,权限管理,查看日志 crontab简介 crontab命令被用来提交和管理用户的需要周期性执行的任务,与windows下的计划任

[转帖]linux top命令详解

一.top简介 top命令经常用来监控linux的系统状况,是常用的性能分析工具,能够实时显示系统中各个进程的资源占用情况。在Linux操作系统中,top是使用最频繁,也是比较全的一个命令。Top命令类似于Windows系统的任务管理器工具。它对于所有正在运行的进行和系统负荷提供不断更新的概览信息,

[转帖]VMware-ovftool命令行部署与导出镜像

ESXI6.0之后管理为WEB,OVF导出/部署是个渣渣,如果虚拟机文件过大,一般会报网络异常中断而失败,可使用官方ovftool工具解决,快而方便,支持linux和Mac OSX,可脚本操作,批量处理等。 在windows如已经安装vmware workstation,有个OVFTool目录直接可