我在我的环境中使用CentOS 5,它充当我局域网的网关。 我的eth0接口MTU设置为1500(默认)。 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 最近我遇到了一些奇怪的问题,一些网站只是简单地挂起来。 如果我将MTU更改为1492,则在浏览器中打开相同的网站,但当时SSH连接挂起。 可能是什么问题,我该如何解决?
一般来说,特别是在Solaris 10的机器上… 看,我们的networking有问题。 我处理负载均衡器后面的Solaris 10服务器上的一些反向代理实例,有些用户通过NAT防火墙访问这个实例,无论如何,在两天前的某个时刻,它全部崩溃,无法工作。 在数据包捕获和分析之后的几个小时内,我们看到的是,当内部客户端之一试图访问一个站点时(特别是当我们发送服务器Hello SSL消息的时候),LB发回需要一个ICMP Fragmentation消息,说明MTU是508字节,而数据包是用Dont Fragment位设置的,就像在Solaris中默认的那样。 好吧,一切都好。 但是接下来发生的一切就是,由于没有收到ACK(因为客户端从未接收到数据包),Solaris机器再次发送数据包…相同的大小,相同的DF位。 所以当然这最终没有可能的沟通。 在收到这个ICPM消息时,Solaris OS是否应该取消这些数据包的DF位,或者将MSS的连接调整为<该消息告诉我们的MTU? 这是什么东西,可以configuration为启用/禁用? 或者这是应该发生什么? 我不确定Solaris 10中的pathMTU发现是如何实现的,但是如果它不考虑此消息,那么它如何调整MSS? 提前感谢任何指针,帮助或只是想法在哪里看:)
我把ipsec vpn连接到远程主机。 由于远程主机只接受一个IP,所以我在NAT上为本地网上的enc0。 Ping从IPSec主机是好的: PING 172.20.162.150 (172.20.162.150): 56 data bytes 64 bytes from 172.20.162.150: icmp_seq=0 ttl=252 time=2.597 ms 但是从本地网ping是失败的: PING 172.20.162.150 (172.20.162.150) 56(84) bytes of data. From 192.168.1.5 icmp_seq=1 Frag needed and DF set (mtu = 0) enc0 = 0的MTU,我不能改变它 netstat -i Name Mtu Network Address Ipkts Ierrs Opkts Oerrs Colls enc0 0 <Link> 29 […]
我最近发现了一个无法连接到我们的服务器的Windows 7客户端 。 原来问题是服务器被设置为1514的MTU,客户端设置为1504。 服务器运行CentOS和grep -i MTU /etc/sysconfig/network-scripts/ifcfg*什么都不显示。 非公开接口eth1仍然是1500.在MTU上,我们的服务器端其他机器都没有1500以外的东西。 在客户端,还有另外一台Windows 7机器,也有1504台机器。把这些机器离开现场,导致他们再次工作(但我不知道这是不是MTU不好,或者是否新的位置导致Windowsselect一个有效的一个),但失败一次带回来。 什么会导致这两个Windows机器有这个非标准的MTU设置? Windows如何确定MTU设置? 为什么eth0的MTU设置为1514? Linux如何确定MTU设置? 我是否应该从现在开始将MTU=1500硬编码到我所有的ifcfg文件中,因为担心别的东西会使它更高? 什么会覆盖1500的默认值?
我正在写一些服务器软件来升级电子设备上的固件。 这是一个棘手的任务,因为目前这些设备没有足够的内存来保存完整的固件,然后再安装它。 因此,我的服务器会将设备切换到引导加载程序模式,并指示引导加载程序执行什么操作,通过networking发送指令和固件数据。 正如你可以想象的,这有一些潜在的巨大的缺点。 目前我所关心的是,我发送的单个TCP段是否会被划分为多个以太网帧? 由于引导加载程序的性质,我可以在TCP段中发送的最大大小有效负载为255个字节。 从在Wireshark中抓取数据包,看起来像包含我的一个TCP段的帧的帧大小为309字节(2472位),在根据以太网帧上的Wikipedia页面允许的范围内: 我目前正试图处理如果连接到设备被切断会发生什么。 现在事情我没有任何问题重新build立与设备的连接,但是我想确定的是重新build立连接后会发生什么。 如果我能确定每条指令总是被包含在一个单一的以太网帧中,那么这些指令将会被传送或者不会被传送,那么快乐的日子就会被传送! 我可以看看发送的最后一条指令,然后找出要执行的操作。 但是,如果指令可能被分割成两个以太网帧,那么我就有一个更大的问题。 我不认为这会发生,但有时看起来像是在testing时。 假设我发出了一个写命令,并且引导装载程序正在等待数据写入,我发送了255个字节的TCP段,并将其分成两个以太网帧。 第一帧得到交付,但第二帧没有。 现在,当我重新连接时,我必须确定引导加载程序已经接收了多less个字节,这意味着我需要推送虚拟数据并侦听响应。 如果可能,我真的想避免这种情况。 从这个线程的注释中读取,似乎小于576字节(4,608比特)的IP分组不会被分开。 我是否安全地认为情况总是如此? 实际上,如果分裂了,那么WiFi模块在重新组装之前不应该传送TCP段,是不是正确的? 如果连接丢失,它将被丢弃。
我们已经订购了一条100Mbps的租用线路,并没有规定我们要求至less支持1530MTU。 电信公司现在给我们一个反馈,他们不支持1530,但只有1515。 有没有人遇到类似的东西? 电信提供商不支持更高的MTU的理由是什么? 在租用专线服务的情况下,决定使用哪种硬件? 编辑:线路协议是以太网; 我也纠正了:这是我们订购的100 Mbps。 希望澄清。 谢谢你的帮助。
这篇论坛文章描述了1446最佳的PPPoE over ATM / LLC吗?
所以我已经四处寻找一种方法来改变XenServer 6.2上的接口的MTU,但找不到任何适合我的东西… 有一种方法提到了修改/etc/sysconfig/network-scripts目录中的ifcnfg-intX文件,但这些文件并不存在……唯一的一个就是ifcnfg-lo文件。 我只需要为每个接口创build一个文件? 然后我想,我只是做一个启动脚本: #!/bin/bash #Saved as /etc/init.d/mtuchange.sh #Change mtu of interfaces ifconfig xenbr0 mtu 1454 ifconfig xenbr1 mtu 1454 ifconfig eth0 mtu 1454 ifconfig eth1 mtu 1454 此脚本在控制台中运行时工作。 所以,要让它在开始运行: ln -s /etc/init.d/mtuchange.sh /etc/rc3.d/S99mtuchange 但是,它不会运行… 我需要更改MTU的原因是由于一些奇怪的原因,XenCenter无法连接默认1500的MTU,它必须是1454 任何人都知道我在做什么错了?
这是一天,我不能通过SSHlogin到我的服务器。 使用腻子和MobaXterm。 MobaXterm结束于: debug1: sending SSH2_MSG_KEX_ECDH_INIT debug1: expecting SSH2_MSG_KEX_ECDH_REPLY Read from socket failed: Software caused connection abort 我search了这个问题,发现它可能是一个MTU特定的问题,但是如何突然失败login到不同的服务器呢? 这是我的debugging启用-v连接会话之一: OpenSSH_6.7p1, OpenSSL 1.0.1g 7 Apr 2014 debug1: Reading configuration data /etc/ssh_config debug1: Connecting to XXX.XXX.XXX.XXX [XXX.XXX.XXX.XXX] port 22. debug1: Connection established. debug1: key_load_public: No such file or directory debug1: identity file /var/keys/.5380.ssh type -1 debug1: key_load_public: […]
我正在分析HP刀片服务器上运行的客户端和Linuxnetworking服务器之间的stream量,当Web服务器closures连接时,客户端有时会卡住等待更多数据。 Web服务器运行apache2,由于某种原因select使用connection-close运行HTTP / 1.1,而不是让客户端在同一个连接上发送多个请求,并closures连接,就像标准的HTTP / 1.1那样离开服务器数千个TIME_WAIT套接字,而不是将该状态推送给客户端)… 无论如何,有时一个HTTP请求被破坏,仍然不知道它在哪里实际上打破。 在服务器上一切看起来很好,除了客户端开始发送大量的RST数据包之间的哎呀。 我有从Web服务器和客户端通过NAT的tcpdump捕获,我会怀疑NAT,如果它不是在networking服务器上的一个非常奇怪的行为。 当Web服务器提供HTTP GET请求时,第一个传出数据包是IP有效负载中的2960字节,有线2974。 这非常奇怪,因为在客户端的NAT中,客户端接收两个1514字节的数据包,其中有1460字节的TCP有效载荷。 离开networking服务器上接口的下一个和即将到来的数据包使用MTU内的有效载荷1460(有线1514)。 我相信一些魔术是在位于networking服务器和networking之间的(思科)SLB中完成的,所以第一个2960的DF包被SLB挤压,并通过一些先进的L3拦截在SLB中神奇地分裂。 Q1)为什么apache webserver / tcp stack甚至会尝试在MTU设置为1500的接口上推送一个2960字节的数据包? Q2)如何通过两个数据包到达客户端的networking? Q3)即使没有设置“需要分片”的ICMP到达,Web服务器如何知道MTU应该减less到1460,因为所有的分组都已经设置了DF位。 不要问我为什么问这些问题,我只是一个大型组织中的人,试图理解为什么事情不可行。 我有一些有趣的tcpdump日志,如果需要我可以发布,我只需要replace公共IP地址和这样的…