Zeroconfネットワークを使用してケーブルを切断した後、ネットワークサービスを再起動する必要があります。

Zeroconfネットワークを使用してケーブルを切断した後、ネットワークサービスを再起動する必要があります。

私はキオスクと同じ目的でUbuntu 15.04を実行するWandboard(imx6)デバイスを使用しています。初期設定とネットワーク間の移動後(サイトからのキーボードアクセスなし)、Zeroconfネットワーキングを使用します。ネットワークをZeroconf設定に変更した後、ネットワークインターフェイスが機能しないという問題があります。再現するための手順は次のとおりです(診断スクリプトに追加できるより有用なものがあれば教えてください)。

  1. Zeroconf設定にリセットして再起動しましたが、デバイスはまだ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. ケーブルを抜き、一時的なゼロ構成ネットワークに接続します。
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. ゼロコンフィギュレーションモードでは、Windowsコンピュータからデバイスに接続できなくなりました。 Ping は「ターゲットホストに接続できません」を返します。しかし、ネットワークが急速に再起動するにつれて...
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

その後、すべてが再び大丈夫です。 WindowsコンピュータのPingはすぐに完了し始めます。

これは現場のユーザーを混乱させ、最終的にデバイスが応答するまで再起動します。ケーブル切り替えイベント後にZeroconfモードでネットワークが期待どおりに再接続されるようにするにはどうすればよいですか?


更新:allow-hotplug eth0何も変わっていないようです。

アップデートのアップデート:
maxfのアドバイスに従ってifplugdをインストールして設定した後、多くの問題が消えました。注:ifplugdにインターフェースを監視させるには、/ etc / default / ifplugdでifplugdを構成する必要があります。私のインターフェイスが1つの場合を除いて、すべてが正しくオンラインになったことを発見しました。

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

この表では、dhcp / zeroconf-staticで構成されたデバイスを起動し、ケーブルを目的の反対側のネットワーク(間違ったリンク)、正しいネットワーク(良いリンク)、または未接続(リンクなし)に接続します。その後、それを正しいネットワークに接続し、インターフェイスが正しくオンラインになることを確認しました。ブート時にLANに接続されたゼロ設定のみが、ゼロ設定ラップトップの一時ネットワークに接続できないことがわかりました。

これは/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

答え1

理論的には、ネットワークを再起動する必要はありません。 /etc/network/interfacesの「auto eth0」行の後に「allow-hotplug eth0」を追加して問題が解決するかどうかを確認してください。

元の質問には次のものがあります。プラグインの場合。 Ifplugdはデフォルトでイーサネットインターフェイスのリンク状態を監視し、変更時にカスタムスクリプト(デフォルトは/etc/ifplugd/ifplugd.action)を呼び出す小さなデーモンです。スクリプトは単一のパラメータ(「up」または「down」)を使用し、設定したらそれを使用できます。

#!/bin/sh

if [ "$1" = "up" ] ; then
    service networking restart
fi

関連情報