DHCP 서버가 MTU를 설정할 때 링크 플래핑

DHCP 서버가 MTU를 설정할 때 링크 플래핑

Ubuntu 18.04 시스템에서 고유한 네트워크 문제가 발생했습니다. 내 이더넷 인터페이스 중 하나는 특정 브랜드의 라우터(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이를 확인하기 위해 이 명령으로 인해 링크가 중단되었다가 다시 복구되었음을 확인했습니다 .

관련 정보