DHCPサーバーがMTUを設定するときのリンクフラッピング

DHCPサーバーがMTUを設定するときのリンクフラッピング

Ubuntu 18.04システムで固有のネットワーク問題が発生しました。私のイーサネットインターフェイスの1つは、特定のブランドのルーター(Sierra Wireless MP70)を使用しているときとDHCPが有効になっている場合にのみリンクフラッピングを経験します。私は他の要因を完全に排除しました。静的IP設定では、リンクが正しく機能し、他の問題も検出されません(パケット損失なし)。

観察された動作は、リンクがしばらくオンラインになってDHCPリースを取得したように見え、すぐに切り替えられてからNO-CARRIER繰り返されることです。

以前は、これは物理層の問題だと思いましたが、リンクを下から上に切り替えた後しばらく現れるのを見ていたので、NO-CARRIER現在の仮説は、いくつかのシステムプロセスが単にネットワークの循環を上下に引き起こすということです。

このデバイスの私のネットワーク計画は簡単です。

    eth1:
      dhcp4: true
      dhcp4-overrides:
        use-routes: false

これは循環ログ部分ですsystemd-networkd

eth1: Flags change: +LOWER_UP +RUNNING
Sent message type=signal sender=n/a destination=n/a path=/org/freedesktop/network1/link/_34 interface=org.freedesktop.DBus.Properties member=PropertiesChanged cookie=12 reply_cookie=0 signature=sa{sv}as error-name=n/a error-message=n/a
eth1: Gained carrier
eth1: Acquiring DHCPv4 lease
DHCP CLIENT (0xe616919c): STARTED on ifindex 4
Sent message type=signal sender=n/a destination=n/a path=/org/freedesktop/network1 interface=org.freedesktop.DBus.Properties member=PropertiesChanged cookie=13 reply_cookie=0 signature=sa{sv}as error-name=n/a error-message=n/a
DHCP CLIENT (0xe616919c): DISCOVER
DHCP CLIENT (0xe616919c): OFFER
DHCP CLIENT (0xe616919c): REQUEST (requesting)
DHCP CLIENT (0xe616919c): ACK
DHCP CLIENT (0xe616919c): lease expires in 1d 23h 59min 59s
DHCP CLIENT (0xe616919c): T2 expires in 1d 18h
DHCP CLIENT (0xe616919c): T1 expires in 1d
eth1: DHCPv4 address 192.168.13.110/24 via 192.168.13.31
eth1: Setting MTU: 1430
Setting transient hostname: 'ifcb000'
Sent message type=method_call sender=n/a destination=org.freedesktop.hostname1 path=/org/freedesktop/hostname1 interface=org.freedesktop.hostname1 member=SetHostname cookie=14 reply_cookie=0 signature=sb error-name=n/a error-message=n/a
eth1: Flags change: -LOWER_UP
eth1: Setting MTU done.
eth1: Updating address: 192.168.13.110/24 (valid for 2d)
Sent message type=signal sender=n/a destination=n/a path=/org/freedesktop/network1/link/_34 interface=org.freedesktop.DBus.Properties member=PropertiesChanged cookie=15 reply_cookie=0 signature=sa{sv}as error-name=n/a error-message=n/a
Sent message type=signal sender=n/a destination=n/a path=/org/freedesktop/network1 interface=org.freedesktop.DBus.Properties member=PropertiesChanged cookie=16 reply_cookie=0 signature=sa{sv}as error-name=n/a error-message=n/a
eth1: DHCP error: could not get routes: No data available
Got message type=method_return sender=:1.6 destination=:1.2 path=n/a interface=n/a member=n/a cookie=3 reply_cookie=14 signature=n/a error-name=n/a error-message=n/a
eth1: Flags change: -RUNNING
Sent message type=signal sender=n/a destination=n/a path=/org/freedesktop/network1/link/_34 interface=org.freedesktop.DBus.Properties member=PropertiesChanged cookie=17 reply_cookie=0 signature=sa{sv}as error-name=n/a error-message=n/a
eth1: Lost carrier
DHCP CLIENT (0xe616919c): STOPPED
eth1: DHCP lease lost
eth1: Removing address 192.168.13.110
eth1: Setting MTU: 1500
Setting transient hostname: 'n/a'
Sent message type=method_call sender=n/a destination=org.freedesktop.hostname1 path=/org/freedesktop/hostname1 interface=org.freedesktop.hostname1 member=SetHostname cookie=18 reply_cookie=0 signature=sb error-name=n/a error-message=n/a
eth1: Removing address 192.168.13.110
eth1: State is configuring, dropping config
Sent message type=signal sender=n/a destination=n/a path=/org/freedesktop/network1 interface=org.freedesktop.DBus.Properties member=PropertiesChanged cookie=19 reply_cookie=0 signature=sa{sv}as error-name=n/a error-message=n/a
eth1: Removing address: 192.168.13.110/24 (valid for 2d)
Got message type=method_return sender=:1.6 destination=:1.2 path=n/a interface=n/a member=n/a cookie=4 reply_cookie=18 signature=n/a error-name=n/a error-message=n/a
eth1: Setting MTU done.
eth1: Adding address: fe80::206:d5ff:fe2f:60c2/64 (valid forever)
eth1: Gained IPv6LL
eth1: Discovering IPv6 routers
NDISC: Started IPv6 Router Solicitation client
NDISC: Sent Router Solicitation, next solicitation in 4s
eth1: Flags change: +LOWER_UP +RUNNING

ベストアンサー1

追加のデバッグにより、これがDHCPサーバーから渡されたDHCPオプション26(インターフェースMTU)設定に関連していることが確認されました。 LinuxはデフォルトのMTU 1500を使用しますが、サーバーは1430のMTUを送信します。

次のDHCP推奨MTU(use-mtu: false)を無効にするか、DHCPサーバーのMTU設定を1500に調整できます。これにより問題が回避されます。

sudo ip link set dev eth1 mtu 1430これを確認するために、このコマンドはリンクが中断され、再び回復したことを確認しました。

おすすめ記事