
Ich arbeite gerade an einem ziemlich einzigartigen Stack, daher sind alle Diagnose-/Debugging-Strategien herzlich willkommen.
Setup: Ubuntu 18.04-Desktop, PCIe-Netzwerkkarte mit 2 Ports. Zwei Ethernet-Kameras direkt an die Karte angeschlossen. Dadurch erhalten sie eine Link-Local-Adresse 169.254.xy und das funktionierte eine Zeit lang einwandfrei.
Ich habe einmal versucht, dnsmasq als DHCP auf diesen Ports zu verwenden, damit ich der Kamera eine statische IP zuweisen kann (aus Docker-MacVLAN-Gründen). Das hat auch funktioniert, hat sich aber später als unnötig erwiesen, also habe ich dnsmasq deaktiviert.
Wenn die Geräte nun angeschlossen sind, geht das System in eine Schleife und aktiviert und deaktiviert die Schnittstelle wiederholt. journalctl sieht ungefähr so aus:
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'
und läuft einfach in einer Schleife. Ich habe keine Ahnung, welcher Dienst schuld ist, aber es riecht, als ob NetworkManager etwas Dummes tut. Neustart, Neustart von NetworkManager, erneutes Aktivieren von DNSMASQ haben bisher nichts geholfen, und ich bin mir nicht sicher, wo ich als nächstes suchen soll.
Antwort1
Das war also ein lustiger Eintrag für das Kompendium der seltsamen Fehler. Wie sich herausstellte, wurde dieses Problem durch eine unzureichende Stromversorgung verursacht. Wenn die Kamera eingesteckt ist, erkennt der Kernel die Verbindung und aktiviert die Schnittstelle. Dadurch wird die Kamera angewiesen, mit dem Computer zu kommunizieren, der gerade genug zusätzlichen Strom zieht, um die Spannung zu senken und die Kamera zurückzusetzen. Die Kamera wird zurückgesetzt, wodurch der Kernel denkt, die Schnittstelle sei nicht angeschlossen. Die Kamera versucht, die Verbindung wiederherzustellen, und der Zyklus wiederholt sich.
Die Moral der Geschichte: Abstraktionen sickern durch. Ziehen Sie alle Optionen in Betracht, egal wie albern sie sind, und schließen Sie sie dann eine nach der anderen aus.