我有一个可以执行 DHCP 的 DSL 调制解调器,它看起来很健康,因为我可以将其他主机连接到它并获取 IP 地址,但不能连接到我的普通计算机。
离开一周后,启动时无法获取 IP 地址。然后我再次尝试,它确实获取了 IP 地址,但是速度非常慢或丢失了大部分数据包,我无法使用它进行网页浏览。
进一步的重启和 ifdown/ifup 循环现在就直接失败了。
我知道这不是调制解调器或电缆的问题,因为其他电脑可以连接。
我不认为这是 NIC 的问题,因为我有第二个 NIC,它也无法获取 IP 地址。
我也禁用了防火墙,但没有帮助。
运行的是 16.04.3
我唯一的猜测是,我升级了一个网络包,现在需要进行一些调整 - 可能是 dhclient。我没有运行网络管理器,这是一个相当基本的配置。
日志中除了类似这样的内容(手动从屏幕上复制)外什么都没有:
Sep 8 23:40:27 gondor kernel: [ 495.11235] e1000e: enp0s25 NIC Link is Up 100 Mbps Full Duplex, Flow Control: Rx/Tx
Sep 8 23:40:27 gondor kernel: [ 495.11235] e1000e: enp0s25 NIC Link is Down
在 ifup 运行时重复多次。
我是否可能通过安装或升级软件包来破坏我的网络配置?
在 /etc/网络/接口:
auto lo
iface lo inet loopback
auto enp0s25
allow-hotplug enp0s25
iface enp0s25 inet dhcp
[更新] lshw -C network
按要求输出:
*-network
description: Ethernet interface
product: 82567LF Gigabit Network Connection
vendor: Intel Corporation
physical id: 19
bus info: pci@0000:00:19.0
logical name: enp0s25
version: 03
serial: 00:01:80:76:c5:39
size: 100Mbit/s
capacity: 1Gbit/s
width: 32 bits
clock: 33MHz
capabilities: pm msi bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
configuration: autonegotiation=on broadcast=yes driver=e1000e driverversion=3.2.6-k duplex=full firmware=1.8-3 ip=86.139.80.140 latency=0 link=yes multicast=yes port=twisted pair speed=100Mbit/s
resources: irq:25 memory:fdfc0000-fdfdffff memory:fdfff000-fdffffff ioport:fe00(size=32)
答案1
您的问题在于 DSL 连接的 MTU 设置。
对于 DSL,常见的 MTU 设置是 1492。请先尝试此值,然后查看您的网站现在是否可以访问。
要确定正确的设置,请从所有 MTU 设置 = 1500 和 VPN = 关闭开始。(VPN 需要不同的测试)。
在终端:
ping [-c count] [-M do] [-s packet_size] [host]
使用的选项是:
c count
:ping 次数M hint
:选择路径 MTU 发现策略。可以是do
(禁止碎片,即使是本地碎片),want
(进行 PMTU 发现,当数据包大小较大时在本地进行碎片),或dont
(不设置 DF 标志)。s packet_size
:指定要发送的数据字节数。
您应该始终从 1472 开始,然后每次减少 10。一旦收到回复,就增加 1,直到收到碎片数据包。取该值(最后一个好值)并将 28 添加到该值以考虑各种 TCP/IP 标头。例如,假设 1452 是合适的数据包大小(您第一次收到对 ping 的 ICMP 回复)。实际的 MTU 大小将是 1480,这是我们正在使用的网络的最佳值。
ping -c 4 -M do -s 1472 8.8.8.8 # this will probably show fragmentation
ping -c 4 -M do -s 1462 8.8.8.8 # may show fragmentation
ping -c 4 -M do -s 1452 8.8.8.8 # no fragmentation?
ping -c 4 -M do -s 1453 8.8.8.8 # still no fragmentation?