
Tengo una pila bastante única en la que estoy trabajando, por lo que cualquier estrategia de diagnóstico/depuración es bienvenida.
Configuración: escritorio Ubuntu 18.04, tarjeta de red PCIe con 2 puertos. Dos cámaras Ethernet conectadas directamente a la tarjeta. Esto les da una dirección de enlace local 169.254.xy y funcionó muy bien por un tiempo.
Intenté usar dnsmasq en un momento para actuar como DHCP en estos puertos para poder asignar una IP estática a la cámara (por razones de Docker Macvlan). Esto también funcionó, pero luego resultó innecesario, así que desactivé dnsmasq.
Ahora, cuando los dispositivos están conectados, el sistema entra en un bucle, habilitando y deshabilitando la interfaz repetidamente. journalctl se parece a esto:
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'
y solo bucles. No tengo idea de qué servicio tiene la culpa, aunque huele a que NetworkManager está haciendo algo tonto. Reiniciar, reiniciar networkmanager, volver a habilitar dnsmasq, hasta ahora no se han solucionado y no estoy seguro de dónde buscar a continuación.
Respuesta1
Así que resultó divertido incluirlo en el Compendio de bichos raros. Resulta que este problema se debió a una fuente de alimentación insuficiente. Cuando la cámara está conectada, el kernel ve la conexión y habilita la interfaz. Esto le dice a la cámara que comience a hablar con la computadora, la cual consume suficiente energía adicional para bajar el voltaje, reiniciando la cámara. La cámara se reinicia, lo que hace que el kernel piense que la interfaz estaba desconectada. La cámara intenta volver a conectarse y el ciclo se repite.
Moraleja de la historia: se filtran abstracciones. Descarta todas las opciones, por tontas que sean, y luego descartalas una por una.