IP 링크 다운과 물리적 링크 손실의 차이점

IP 링크 다운과 물리적 링크 손실의 차이점

리눅스에서는 차이점이 무엇인가요?ip link down사후 조건그리고실제 링크가 누락되었습니다.(예: 스위치 포트가 소손되거나 누군가가 전선에 걸려 넘어지는 등)
차이점이란 두 경우를 구별하는 데 사용할 수 있는 시스템의 일부 플래그를 의미합니다.
예를 들어 두 경우 모두 라우팅 테이블이 동일합니까? ethtool아니면 다른 것도 같은 것을 보여줄 까요 ? 이러한 조건을 구별할 수 있는 도구/유틸리티가 있습니까?

답변1

관리 인터페이스에는 차이가 있습니다.위로하지만 연결을 끊거나 관리자에게아래에.

연결이 끊김

인터페이스는운영자 가동 중지 시간상태. 올바른 처리는 인터페이스의 드라이버와 커널 버전에 따라 달라질 수 있습니다. 일반적으로 ip link show. 예를 들어 가상 이더넷을 사용하는 경우와이즈상호 작용:

# ip link add name vetha up type veth peer name vethb
# ip link show type veth
2: vethb@vetha: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
link/ether 02:a0:3b:9a:ad:4d brd ff:ff:ff:ff:ff:ff
3: vetha@vethb: <NO-CARRIER,BROADCAST,MULTICAST,UP,M-DOWN> mtu 1500 qdisc noqueue state LOWERLAYERDOWN mode DEFAULT group default qlen 1000
    link/ether 36:e3:62:1b:a8:1f brd ff:ff:ff:ff:ff:ff

약력그 자체는 관리상 UP이고 표시되며 NO-CARRIER동등합니다.작동상태 LOWERLAYERDOWN플래그: 연결이 끊어졌습니다.

/sys/동등한 항목도 존재합니다:

# cat /sys/class/net/vetha/carrier /sys/class/net/vetha/operstate
0
lowerlayerdown

일반적인 설정에서는 관리 인터페이스의 경우위로이것담체그리고작동상태일치합니다(NO-CARRIER <=> LOWERLAYERDOWN 또는 LOWER_UP <=> UP). 예를 들어 IEEE 802.1X 인증(고급 세부 정보)을 사용하는 경우에는 예외가 있습니다.작동상태이 커널 문서에 설명되어 있습니다.운영상태, 그러나 이 설명에는 필요하지 않습니다.)

ethtool동일한 운송업체 상태를 검색하려면 하위 수준 API를 쿼리하세요.

캐리어가 없어도 레이어 3 설정이 그대로 유지됩니다. 이런 일이 발생하면 커널은 주소나 경로를 변경하지 않습니다. 단지 결국 보내야 할 패킷이 인터페이스에 의해 전송되지 않고 당연히 응답도 수신되지 않을 뿐입니다. 예를 들어, 다른 IPv4 주소에 연결하려고 하면 조만간 또 다른 ARP 요청이 트리거되고, 이는 실패하며 애플리케이션은 "호스트에 대한 경로 없음"을 수신하게 됩니다. 설정된 TCP 연결은 단순히 기회를 기다리고 설정된 상태를 유지합니다.

행정적 거부

이상비테르보가지다작동상태꺼지고 캐리어 상태가 표시되지 않습니다(이를 감지하려면 작동해야 하기 때문입니다. 물론 물리적 이더넷 인터페이스의 동작은 동일합니다).

인터페이스가 종료되면( ip link set ... down) 기본 하드웨어 장치가 종료될 가능성이 높고 작동 상태가 "다운"으로 변경되므로 운영자를 더 이상 감지할 수 없습니다. ethtool링크도 없다고만 말할 것이므로 이에 대해 안정적으로 사용할 수 없습니다(확실히 일부 링크가 표시됩니다).알려지지 않은항목이 있지만 안정적인 솔루션이 있습니까? ).

이번에는 레이어 3 네트워크 설정에 영향을 미칩니다. 커널은 이 인터페이스를 사용하는 경로 추가를 거부하고 이와 관련된 이전 경로를 모두 삭제합니다.

  • proto kernel( ) 주소 추가 시 LAN 경로가 자동으로 추가됨
  • 경로 테이블에 추가된 다른 모든 경로(예: 기본 경로)(예: 기본 경로)기본라우팅 테이블)은 인터페이스( scope link) 또는 이전에 삭제된 다른 경로(아마 당시 scope global)에 직접적으로 의존합니다. 이는 인터페이스가 복원될 때( ) 다시 나타나지 않으므로 ip link set ... up사용자 공간 도구가 이를 다시 추가할 때까지 손실됩니다.

사용자 공간 상호작용

NetworkManager와 같은 최신 도구를 사용할 때 사람들은 혼란스러워하고 연결 해제가 인터페이스 종료와 유사하다고 생각할 수 있습니다. 이는 NM이 링크를 모니터링하고 이러한 이벤트가 발생하면 조치를 취하기 때문입니다. 이 도구를 이해하려면 ip monitor스크립트에서 모니터링하는 데 사용할 수 있지만 현재 안정적이고 구문 분석 가능한 출력이 없으므로(JSON 출력 사용 가능) 사용이 제한됩니다.

따라서 회선이 중단되면 특정 설정으로 인해 금지되지 않는 한 NM은 더 이상 현재 구성을 사용하지 않는다고 생각할 가능성이 높습니다. 그런 다음 주소와 경로 자체를 삭제합니다. 회선이 다시 연결되면 NM은 구성을 다시 적용하여 다시 주소와 경로를 추가합니다(해당되는 경우 DHCP 사용). 똑같아 보이지만 그렇지 않습니다. 인터페이스는 지금까지 동일하게 유지되었습니다위로, 또는 연결이 복원될 때 NM이 경고를 받지 못할 수도 있습니다.

일반화하다

  • 두 가지 경우를 쉽게 구별할 수 있습니다. 연결이 끊긴 인터페이스에는 +가 ip link show표시되고 NO-CARRIER관리상 종료된 인터페이스에는 +가 표시됩니다.LOWERLAYERDOWNDOWN

  • 인터페이스를 관리적으로 닫거나 열면 경로가 손실될 수 있습니다.

  • 이동통신사를 분실했다가 복원해도 네트워크 설정은 파괴되지 않습니다. 지연 시간이 충분히 짧으면 진행 중인 네트워크 연결도 중단되지 않습니다.

  • 그러나 네트워크를 관리하는 애플리케이션은 반응하여 네트워크 설정을 변경할 수 있으며 때로는 관리 오류와 유사한 결과를 낳을 수도 있습니다.

  • 예를 들어, 다음 명령을 사용하여 ip monitor link관리 중단/켜기 또는 운영자가 변경한 인터페이스 설정에 대한 이벤트를 수신하거나 ip monitor현재 또는 직후에 발생하는 여러 관련 이벤트(주소 또는 경로 변경 포함)를 모두 수신할 수 있습니다.

  • 대부분의 ip명령(전부는 아님 ip monitor)에는 ip -json ...도움말 스크립트(및jq).

    예(처음부터 계속와이즈예):

    비테르보여전히 쇠퇴 중:

    # ip -j link show dev vethb | jq '.[].operstate'
    "DOWN"
    
    # ip -j link show dev vetha | jq '.[].operstate'
    "LOWERLAYERDOWN"
    

    놓다비테르보이제 두 가지 모두에 캐리어가 있습니다.

    # ip link set vethb up
    # ip -j link show dev vetha | jq '.[].operstate'
    "UP"
    

    이는 3가지 일반적인 상태를 설명합니다. 관리아래에,낮은 수준 아래(예: 시작되었지만 연결이 끊어졌습니다) 또는위로(즉, 작동).

답변2

dmesg이것은 실행 후 내가 본 것입니다 ip link set enp3s0 down.

r8169 0000:03:00.0 enp3s0: Link is Down
ethtool enp3s0
Settings for enp3s0:
Cannot get device settings: No such device
    Supports Wake-on: pumbg
    Wake-on: d
    Link detected: no

그러나 만일

스위치 포트가 소손되었거나 누군가 전선에 걸려 넘어졌습니다.

인터페이스는 다음과 같아야 합니다.아직 거기, 고정 IP 주소 및 경로도 포함됩니다. ethtoolNIC가 감지되어 표시되지만 Link detected: no장치를 제거하는 것과는 달리 출력이 완료됩니다 ip l set interface down.

관련 정보