
Tenho uma pilha decentemente exclusiva na qual estou trabalhando, portanto, qualquer estratégia de diagnóstico/depuração é muito bem-vinda.
Configuração: desktop Ubuntu 18.04, placa de rede PCIe com 2 portas. Duas câmeras Ethernet conectadas diretamente na placa. Isso fornece a eles um endereço de link local 169.254.xy e funcionou muito bem por um tempo.
Tentei usar o dnsmasq em um ponto para atuar como DHCP nessas portas para poder atribuir um IP estático à câmera (por motivos do docker macvlan). Isso também funcionou, mas depois se mostrou desnecessário, então desativei o dnsmasq.
Agora, quando os dispositivos são conectados, o sistema entra em loop, ativando e desativando a interface repetidamente. journalctl se parece com isto:
Nov 4 12:12:36 hostname NetworkManager[28979]: <info> [1572887556.0123] device (ethn0): carrier: link connected
Nov 4 12:12:36 hostname kernel: [ 5705.109602] ixgbe 0000:65:00.0 ethn0: NIC Link is Up 1 Gbps, Flow Control: None
Nov 4 12:12:36 hostname NetworkManager[28979]: <info> [1572887556.0130] device (ethn0): state change: unavailable -> disconnected (reason 'carrier-changed', sys-iface-state: 'managed')
Nov 4 12:12:36 hostname NetworkManager[28979]: <info> [1572887556.0160] policy: auto-activating connection 'Wired connection 3'
Nov 4 12:12:36 hostname NetworkManager[28979]: <info> [1572887556.0200] device (ethn0): Activation: starting connection 'Wired connection 3' (0ae083fb-03b4-3782-a069-7aa48780f65b)
Nov 4 12:12:36 hostname NetworkManager[28979]: <info> [1572887556.0207] device (ethn0): state change: disconnected -> prepare (reason 'none', sys-iface-state: 'managed')
Nov 4 12:12:36 hostname NetworkManager[28979]: <info> [1572887556.0223] device (ethn0): state change: prepare -> config (reason 'none', sys-iface-state: 'managed')
Nov 4 12:12:36 hostname NetworkManager[28979]: <info> [1572887556.0306] device (ethn0): state change: config -> ip-config (reason 'none', sys-iface-state: 'managed')
Nov 4 12:12:36 hostname NetworkManager[28979]: <info> [1572887556.0313] dhcp4 (ethn0): activation: beginning transaction (timeout in 45 seconds)
Nov 4 12:12:36 hostname NetworkManager[28979]: <info> [1572887556.0347] dhcp4 (ethn0): dhclient started with pid 3304
Nov 4 12:12:36 hostname dhclient[3304]: DHCPDISCOVER on ethn0 to 255.255.255.255 port 67 interval 3 (xid=0x16ff5155)
Nov 4 12:12:37 hostname kernel: [ 5706.148368] ixgbe 0000:65:00.0 ethn0: NIC Link is Down
Nov 4 12:12:37 hostname avahi-daemon[492]: Joining mDNS multicast group on interface ethn0.IPv6 with address fe80::7e02:198c:dd14:f845.
Nov 4 12:12:37 hostname avahi-daemon[492]: New relevant interface ethn0.IPv6 for mDNS.
Nov 4 12:12:37 hostname avahi-daemon[492]: Registering new address record for fe80::7e02:198c:dd14:f845 on ethn0.*.
Nov 4 12:12:39 hostname dhclient[3304]: DHCPDISCOVER on ethn0 to 255.255.255.255 port 67 interval 4 (xid=0x16ff5155)
Nov 4 12:12:43 hostname NetworkManager[28979]: <info> [1572887563.0543] device (ethn0): state change: ip-config -> unavailable (reason 'carrier-changed', sys-iface-state: 'managed')
Nov 4 12:12:43 hostname NetworkManager[28979]: <info> [1572887563.0707] dhcp4 (ethn0): canceled DHCP transaction, DHCP client pid 3304
Nov 4 12:12:43 hostname NetworkManager[28979]: <info> [1572887563.0707] dhcp4 (ethn0): state changed unknown -> done
Nov 4 12:12:43 hostname avahi-daemon[492]: Withdrawing address record for fe80::7e02:198c:dd14:f845 on ethn0.
Nov 4 12:12:43 hostname avahi-daemon[492]: Leaving mDNS multicast group on interface ethn0.IPv6 with address fe80::7e02:198c:dd14:f845.
Nov 4 12:12:43 hostname avahi-daemon[492]: Interface ethn0.IPv6 no longer relevant for mDNS.
Nov 4 12:12:43 hostname NetworkManager[28979]: <info> [1572887563.3914] device (ethn0): carrier: link connected
Nov 4 12:12:43 hostname NetworkManager[28979]: <info> [1572887563.3922] device (ethn0): state change: unavailable -> disconnected (reason 'carrier-changed', sys-iface-state: 'managed')
Nov 4 12:12:43 hostname kernel: [ 5712.488688] ixgbe 0000:65:00.0 ethn0: NIC Link is Up 1 Gbps, Flow Control: None
Nov 4 12:12:43 hostname NetworkManager[28979]: <info> [1572887563.3954] policy: auto-activating connection 'Wired connection 3'
e apenas loops. Não tenho ideia de qual serviço está com defeito, embora pareça que o NetworkManager está fazendo algo bobo. Reinicializar, reiniciar o networkmanager, reativar o dnsmasq, até agora, não foi possível remediar e não tenho certeza de onde procurar em seguida.
Responder1
Então isso acabou sendo divertido de colocar no Compêndio de Bugs Estranhos. Acontece que esse problema foi causado por uma fonte de alimentação insuficiente. Quando a câmera está conectada, o kernel vê a conexão e habilita a interface. Isso diz à câmera para começar a falar com o computador, que extrai energia extra suficiente para diminuir a voltagem, reiniciando a câmera. A câmera é reiniciada, fazendo com que o kernel pense que a interface estava desconectada. A câmera tenta se reconectar e o ciclo se repete.
Moral da história: vazamento de abstrações. Governe todas as opções, por mais tolas que sejam, e depois descarte-as uma por uma.