现在无法从调制解调器上的 DHCP 获取 IP 地址 - 发生了什么变化?

现在无法从调制解调器上的 DHCP 获取 IP 地址 - 发生了什么变化?

我有一个可以执行 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?

参考:如何使用 ICMP ping 确定适当的 MTU 大小

相关内容