名前だけでインターフェイスを切り替える方法はありますか?

名前だけでインターフェイスを切り替える方法はありますか?

現在、Linux環境でネットワークインタフェースを切り替える方法を研究しています。たとえば、eth0がデフォルト接続の場合は、wlan0でデフォルトゲートウェイを切り替えてネットワークインターフェイスを切り替えたいとします。私が通常することは次のとおりです。

route delete default gw 192.168.1.1 eth0
route add default gw 192.168.2.1 wlan0

このプロセスをスクリプトで自動化したいのですが、wlan0のルーターアドレスを取得する安定した方法が見つかりませんでした。主な接続ではないため、netstat -rnとip Routeはゲートウェイアドレスを提供せず、arp -nはどのIPがルーターのものであるかを区別するのに確実に役立ちません。

イーサネットを切断するときに発生するようにインターフェイス名を変更する方法はありますか?それとも、ルーターアドレスを切り替えたり検索したりする他の方法はありますか?

答え1

他の人が未知のツールを提供しない限り、これは私たち全員が望むエレガントな方法で行うことはできません。

最初の答えは、名前参照だけではデフォルトゲートウェイを切り替える方法がないことです。唯一の正しい方法は、次を使用することです。路線コマンドを発行してください。あなたがやっているように。

次に、TTLパケット1でホストにpingを送信すると、ルータを見つけることができます。使用追跡パスそして最初のホップをフィルタリングします。

使用-ティーパラメータ平らな生存時間の設定:

$ ping -t 1 192.168.0.254

上記のIPはルーターのIPでなければなりません。そして追跡パスとても簡単です:

$ traceroute 8.8.8.8

今やっていることをインターフェイスフェイルオーバーといい、各システム管理者は独自のBashスクリプトを使用してこれを行います。

関連情報