起動時に別のネットワークデバイスを起動する前に、あるネットワークデバイスが起動するのを待ちますか?

起動時に別のネットワークデバイスを起動する前に、あるネットワークデバイスが起動するのを待ちますか?

私はRaspbianを実行しているRaspberry Piを大学のワイヤレスネットワーク(WPA2エンタープライズ認証が必要)とプライベートワイヤレスルーター(WANポート経由)の間のブリッジに設定しています。

ここで素晴らしい助けを受けました。 wlan0とeth0の間のトラフィックを最も簡単かつ透過的に接続するにはどうすればよいですか?

ほとんどの場合、設定は期待どおりに機能します。唯一の問題は、eth0を自動的に設定するか、Raspberry Piでホットプラグを許可すると(ブート時にすべてがヘッドレスとして表示されるようにしたいので)、すべてのインターネットトラフィックがeth0を介してルーティングされるようです。これは正しくありません。私のインターネット接続はwlan0にあり、eth0は私のプライベートルーターとその接続を共有します。

eth0が自動的に表示されないようにすることで、この問題を解決できました。 /etc/network/interfacesでeth0の自動またはallowed-hotplugをそのままにしてRaspberry Piを起動できるようにしてから、「ifup eth0」を手動で実行すると予想される動作が得られます。

ブート時にeth0を起動する前にwlan0が完全に起動されていることを確認する方法はありますか(eth0が起動するためのより高速なインターフェイスにもかかわらず)。それとも、失敗した場合、インターネットトラフィック(eth0から来るかどうか)がwlan0を介してのみ移動することを強制できますか?

編集:現在、回避策として起動時にeth0を起動するスクリプトを実行しており、wlan0が最初に起動できるように30秒遅れています。このソリューションはエレガントでも信頼できませんが(wlan0認証に30秒以上かかるとどうなりますか?)、今はその方法を使用しているようです。それでもまだより良い解決策を探しています!

答え1

うーん..ただの考えです。しかし、Wi-FiネットワークでDHCPを使用しているとします。したがって、ネットワークが完全に起動するまでIPアドレスを持つことはできません。

それでは、しばらくループを作りましょう。

while [ "$(ifconfig wlan0 | grep inet | grep 192.168.)" = "" ];  do sleep 1; done

192.168。標準範囲に交換する必要があります。これで、接続している場合は毎秒確認し、Wi-Fi経由で接続するとifup eth0に直接フォローアップできます。

答え2

可能性:

  • eth0の静的設定では、デフォルトゲートウェイを設定しないでください。 (これは本当の問題だと思います)
  • 正常な設定後に別のインターフェイスを起動するには、dhcp クライアント設定にフックを追加します。

関連情報