
Eu tenho uma interface de rede que ip link show
informa assim:
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
Mas /sys/class/net/docker0/flags
diz isto:
$ cat /sys/class/net/docker0/flags
0x1003
Os três bits definidos IFF_MULTICAST
são IFF_BROADCAST
e IFF_UP
. Parece uma interface UP. Por que ip link
relata state DOWN
?
O sistema é Linux 4.15/Ubuntu 18.04.
Responder1
Os três bits definidos são IFF_MULTICAST, IFF_BROADCAST e IFF_UP. Parece uma interface UP
E isso corresponde perfeitamente à realidadebandeirassaída:
3: docker0: <NO-CARRIER,TRANSMISSÃO, MULTICAST, ATÉ> ↑ ↑ ↑
Por que o relatório do link IP indica DOWN?
Esse é um tipo diferente de estado.
O sinalizador IFF_UP (mostrado acima como "<UP>") descreveadministrativoestado, que é o botão manual que você pode definir por meio de
ip link set eth0 up
.Por outro lado, o texto “estado […]” descreveoperacionalestado, que indica se a interface estácapazde trabalho.
O estado operacional é aproximadamente o mesmo que a presença de uma 'operadora' – por exemplo, link Ethernet totalmente estabelecido ou ponto de acesso Wi-Fi associado. É relatado que uma ponte está ativa (tem uma transportadora) sepelo menos umde suas portas membros está em alta. Por esse motivo, você pode querer adicionar uma dummy0
interface como membro da ponte.
O estado operacional corresponde aproximadamente aos sinalizadores IFF_LOWER_UP
(mostrados como "<LOWER_UP>" na área de sinalizadores) e IFF_RUNNING
(sua ausência mostrada como pseudo-sinalizador "<NO-CARRIER>" no seu exemplo). (Código fonte)
Porém, as ferramentas iproute obtêm informações da interface via Netlink, e a state …
seção é impressa com base noIFLA_OPERSTATEatributo netlink. (Código fonte)
Este atributo …/operstate
também está disponível via sysfs em. A documentação do Linux tem uma explicação mais detalhada desses sinalizadores e atributos emoperastates.txt.