Le service réseau doit être redémarré après la déconnection du câble avec le réseau zeroconf

J'utilise un périphérique Wandboard (imx6) exécutant Ubuntu 15.04 à des fins de kiosque. J'utilise la mise en réseau zeroconf pour la configuration initiale et après déplacement entre les réseaux (pas d'access au keyboard sur le terrain). J'ai des problèmes avec l'interface réseau ne fonctionne pas après la modification des réseaux au paramètre zeroconf. Voici mes étapes de repro (laissez-moi savoir s'il y a des choses plus utiles à déposer dans mon script diag):

  1. Je réinitialise les parameters de zeroconf et redémarre avec l'appareil encore branché dans lan
wandboard@lnm:~$ ./network-diag.sh + cat /etc/network/interfaces auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 169.254.254.254 netmask 255.255.0.0 gateway 1.1.1.1 + ip addr show eth0 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 00:1f:7b:b2:14:96 brd ff:ff:ff:ff:ff:ff inet 169.254.254.254/16 brd 169.254.255.255 scope global eth0 valid_lft forever preferred_lft forever inet6 fe80::21f:7bff:feb2:1496/64 scope link valid_lft forever preferred_lft forever + ip route 169.254.0.0/16 dev eth0 proto kernel scope link src 169.254.254.254 + systemctl status sys-subsystem-net-devices-eth0.device   sys-subsystem-net-devices-eth0.device - /sys/subsystem/net/devices/eth0 Loaded: loaded Active: active (plugged) since Fri 2016-08-12 18:40:17 UTC; 1min 17s ago Device: /sys/devices/soc0/soc.1/2100000.aips-bus/2188000.ethernet/net/eth0 
  1. Détwigr le câble, twigr sur le réseau ad hoc zeroconf
 wandboard@lnm:~$ ./network-diag.sh + cat /etc/network/interfaces auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 169.254.254.254 netmask 255.255.0.0 gateway 1.1.1.1 + ip addr show eth0 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 00:1f:7b:b2:14:96 brd ff:ff:ff:ff:ff:ff inet6 fe80::21f:7bff:feb2:1496/64 scope link valid_lft forever preferred_lft forever + ip route + systemctl status sys-subsystem-net-devices-eth0.device   sys-subsystem-net-devices-eth0.device - /sys/subsystem/net/devices/eth0 Loaded: loaded Active: active (plugged) since Fri 2016-08-12 18:40:17 UTC; 5min ago Device: /sys/devices/soc0/soc.1/2100000.aips-bus/2188000.ethernet/net/eth0 
  1. Le périphérique est maintenant inaccessible depuis une machine Windows en mode zeroconf. Les pings returnnent "l'hôte de destination inaccessible". Mais avec un redémarrage rapide du réseau …
 wandboard@lnm:~$ sudo service networking restart wandboard@lnm:~$ ./network-diag.sh + cat /etc/network/interfaces auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 169.254.254.254 netmask 255.255.0.0 gateway 1.1.1.1 + ip addr show eth0 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 00:1f:7b:b2:14:96 brd ff:ff:ff:ff:ff:ff inet 169.254.254.254/16 brd 169.254.255.255 scope global eth0 valid_lft forever preferred_lft forever inet6 fe80::21f:7bff:feb2:1496/64 scope link valid_lft forever preferred_lft forever + ip route 169.254.0.0/16 dev eth0 proto kernel scope link src 169.254.254.254 + systemctl status sys-subsystem-net-devices-eth0.device   sys-subsystem-net-devices-eth0.device - /sys/subsystem/net/devices/eth0 Loaded: loaded Active: active (plugged) since Fri 2016-08-12 18:40:17 UTC; 7min ago Device: /sys/devices/soc0/soc.1/2100000.aips-bus/2188000.ethernet/net/eth0 

Alors tout va bien à nouveau. Pings de la machine Windows commencent immédiatement à se terminer.

Cela est source de confusion pour l'user sur le terrain et ils finissent par mettre l'unité en marche jusqu'à ce qu'il réponde. Comment puis-je reconnecter le réseau comme prévu en mode Zeroconf après un événement de changement de câble?


Mise à jour: allow-hotplug eth0 ne semble rien changer.

Mise à jour-mise à jour:
Suite à la suggestion de maxf, beaucoup de mes problèmes ont disparu simplement après l'installation de ifplugd (et la configuration!). NB: Vous devez configurer ifplugd dans / etc / default / ifplugd si vous voulez qu'il surveille votre interface. J'ai trouvé que mon interface était en ligne correctement dans toutes les situations sauf une:

 ╔═══════════╦═══════════════╦═══════════╦═════════╗ ║ Boot with ║ bad link ║ good link ║ no link ║ ╠═══════════╬═══════════════╬═══════════╬═════════╣ ║ dhcp ║ ok ║ ok ║ ok ║ ║ zeroconf ║ needs restart ║ ok ║ ok ║ ╚═══════════╩═══════════════╩═══════════╩═════════╝ 

Dans ce tableau, je lancerais le périphérique configuré avec dhcp / zeroconf-static et le câble soit branché sur le réseau opposé qu'il aurait fallu (mauvais lien), le bon réseau (bon lien) ou non connecté (pas de lien). Je voudrais ensuite le connecter au réseau correct et voir si l'interface est input en ligne correctement. J'ai constaté que seule la configuration de zeroconf lors de l'initialisation connectée à mon réseau local ne parvient pas à se connecter au réseau ad hoc zeroconf ordinateur portable.

Voici mon script d'action dans /etc/ifplugd/action.d/

 #!/bin/sh LNM_LOG=/tmp/ifplug.log ZEROCONF_IP=169.254.254.254 date >> $LNM_LOG echo $1 $2 >> $LNM_LOG if [ "$1" = "eth0" -a "$2" = "up" -a $(grep -c $ZEROCONF_IP /etc/network/interfaces) -ne 0 ] ; then echo "eth0 plugged in for zeroconf, restart networking" >> $LNM_LOG service networking restart echo "network restarted" >> $LNM_LOG fi 

J'espère que cela aidera quelqu'un dans le futur!

En théorie, le redémarrage du réseau ne devrait pas être nécessaire. Essayez d'append "allow-hotplug eth0" à / etc / network / interfaces après la ligne "auto eth0" pour voir si cela le corrige.

En ce qui concerne votre question initiale: vous pourriez utiliser ifplugd . Ifplugd est en fait un petit démon qui surveille l'état d'une binding Ethernet et appelle un script défini par l'user (par défaut /etc/ifplugd/ifplugd.action). Ce script obtient un seul paramètre ("up" ou "down") et après la configuration, vous pouvez utiliser ceci:

 #!/bin/sh if [ "$1" = "up" ] ; then service networking restart fi