3

У меня есть сетевой интерфейс, который показывает, что 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

Устанавливаются три бита: IFF_MULTICAST , IFF_BROADCAST и IFF_UP . Это похоже на интерфейс, который UP. Почему ip link сообщает о state DOWN?

Система Linux 4.15 / Ubuntu 18.04.

1 ответ1

2

Устанавливаются три бита: IFF_MULTICAST, IFF_BROADCAST и IFF_UP. Это похоже на интерфейс, который UP

И это прекрасно соответствует фактическому выводу флагов :

3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP>
                           ↑         ↑      ↑

Почему IP-ссылка сообщает о состоянии ВНИЗ?

Это другой тип государства.

  • Флаг IFF_UP (показанный выше как «<UP>») описывает административное состояние, которое представляет собой ручную ручку, которую вы можете установить через ip link set eth0 up .

  • С другой стороны, текст «состояние […]» описывает рабочее состояние, которое указывает, способен ли интерфейс работать.

Рабочее состояние примерно совпадает с присутствием «оператора» - например, канал Ethernet полностью установлен или точка доступа Wi-Fi связана с. Сообщается, что мост работает (имеет оператора связи), если хотя бы один из его портов-участников работает. По этой причине вы можете захотеть добавить интерфейс dummy0 качестве члена моста.

Рабочее состояние примерно соответствует флагам IFF_LOWER_UP (показанным как «<LOWER_UP>» в области флагов) и IFF_RUNNING (его отсутствие показано как псевдо-флаг «<NO-CARRIER>» в вашем примере). (исходный код)

Однако инструменты iproute получают информацию об интерфейсе через Netlink, а раздел state … печатается на основе атрибута netlink IFLA_OPERSTATE . (исходный код)

Этот атрибут также доступен через sysfs в …/operstate . Документация Linux содержит более подробное объяснение этих флагов и атрибутов в operstates.txt .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .