私はキオスクと同じ目的でUbuntu 15.04を実行するWandboard(imx6)デバイスを使用しています。初期設定とネットワーク間の移動後(サイトからのキーボードアクセスなし)、Zeroconfネットワーキングを使用します。ネットワークをZeroconf設定に変更した後、ネットワークインターフェイスが機能しないという問題があります。再現するための手順は次のとおりです(診断スクリプトに追加できるより有用なものがあれば教えてください)。
- 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
- ケーブルを抜き、一時的なゼロ構成ネットワークに接続します。
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
- ゼロコンフィギュレーションモードでは、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