Устанавливаются три бита: 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 .