
다음과 같이 보고 하는 네트워크 인터페이스가 있습니다 ip link show
.
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default
link/ether 02:42:43:e6:b1:e7 brd ff:ff:ff:ff:ff:ff
그러나 /sys/class/net/docker0/flags
이렇게 말합니다.
$ cat /sys/class/net/docker0/flags
0x1003
설정된 3개의 비트는 IFF_MULTICAST
, IFF_BROADCAST
및 입니다 IFF_UP
. 이것은 UP인 인터페이스처럼 보입니다. ip link
보고하는 이유는 무엇입니까 state DOWN
?
시스템은 Linux 4.15 / Ubuntu 18.04입니다.
답변1
설정된 세 가지 비트는 IFF_MULTICAST, IFF_BROADCAST 및 IFF_UP입니다. 이것은 UP인 인터페이스처럼 보입니다.
그리고 그것은 실제 상황과 완벽하게 일치합니다.깃발산출:
3: docker0: <캐리어 없음,브로드캐스트, 멀티캐스트, 업> ↑ ↑ ↑
IP 링크 보고서에 DOWN 상태가 나타나는 이유는 무엇입니까?
그것은 다른 종류의 상태입니다.
플래그 IFF_UP(위에서 "<UP>"으로 표시됨)은 다음을 설명합니다.행정상태는 를 통해 설정할 수 있는 수동 손잡이입니다
ip link set eth0 up
.반면에 "상태 [...]" 텍스트는 설명합니다.운영상의상태 - 인터페이스가 다음과 같은지 여부를 나타냅니다.유능한일하는 중.
작동 상태는 '캐리어' 존재와 대략 동일합니다. 예를 들어 이더넷 링크가 완전히 설정되었거나 Wi-Fi 액세스 포인트가 연결되어 있습니다. 다음과 같은 경우 브리지가 작동 중인 것으로 보고됩니다(캐리어가 있음).적어도 하나멤버 포트 중 하나가 작동 중입니다. 이러한 이유로 dummy0
인터페이스를 브리지 멤버로 추가할 수 있습니다.
작동 상태는 대략 플래그 IFF_LOWER_UP
(플래그 영역에 "<LOWER_UP>"로 표시됨) 및 IFF_RUNNING
(예제에서 의사 플래그 "<NO-CARRIER>"로 표시되지 않음)에 해당합니다. (소스 코드)
그러나 iproute 도구는 Netlink를 통해 인터페이스 정보를 얻고 해당 state …
섹션은IFLA_OPERSTATE넷링크 속성. (소스 코드)
이 속성은 sysfs를 통해서도 사용할 수 있습니다 …/operstate
. Linux 문서에는 이러한 플래그와 속성에 대한 자세한 설명이 있습니다.Operastates.txt.