Mam interfejs sieciowy, który ip link show
raportuje w ten sposób:
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
Ale /sys/class/net/docker0/flags
mówi to:
$ cat /sys/class/net/docker0/flags
0x1003
Te trzy bity, które są ustawione są IFF_MULTICAST
, IFF_BROADCAST
i IFF_UP
. Wygląda to na włączony interfejs. Dlaczego ip link
zgłaszasz się state DOWN
?
System to Linux 4.15 / Ubuntu 18.04.
ip link
zgłasza, że ma flagi,BROADCAST,MULTICAST,UP,LOWER_UP
ale który pokazuje, że sysfs ma flagi 0x1003 (to samo co powyżej interfejs docker0). Myślę, że rozbieżność wynika z tego, że narzędzia iproute nie używają sysfs. Czy rozsądnie jest próbować wywnioskować stan łącza operacyjnego z sysfs, czy też konieczne jest użycie innego interfejsu? Robię to w pythonie i staram się unikaćsubprocess.call('ip link show | grep eth0'.split()).split()
itp.