ネットワークインタフェースをIPに依存しないデフォルトゲートウェイとして定義する

ネットワークインタフェースをIPに依存しないデフォルトゲートウェイとして定義する

IPを持つインターフェイスにデフォルトゲートウェイを割り当てる方法を知っています。

ip route add default via <host> dev <dev>
# e.g.
ip route add default via 192.168.0.101 dev eth0

問題は、私のシナリオでは、eht0のIPが外部で管理されることです。したがって、eth0のIPが変更された場合、前のコマンドは機能しません。

IPに関係なく、インターフェイスをデフォルトゲートウェイとして割り当てる簡単な方法はありますか?

  • ノート:コンピュータの電源を入れたときにインターフェイスが機能しません。
  • ノート2:私のインターフェースは3gモデムなので、接続を要求する前にゲートウェイIPもわかりません。

答え1

一部のモデムカードが動作しています。プロキシARP。これは、基本パスがカードを通っていることがわかることを意味します。ゲートウェイなしping 8.8.8.8そして、インターネット全体がLAN上にあるかのように、カードはイーサネットのように見えるため、システムはすべてのIPに対してARP要求を開始します(例:aの後の8.8.8.8のARP)。カードがプロキシARPを実行している場合に機能します。名前付きカードの例ワイヤレスネットワーク0:

ip route add default dev wwan0

プロキシARPを実行しないと、3秒後にタイムアウトし、インターネットIPに対して「ターゲットホストに接続できません」というメッセージが表示される以外は何も起こりません。

テストをして、結果がどうなっているかを確認する必要があります。

答え2

努力する

IP=$(ip a s dev eth0 | awk '$1=="inet" { split($2,I,"/") ;print I[1] }')
ip route add default via $IP dev eth0

eth0を変数に置き換えることができます。

eth0(またはモデムインターフェイス)がDHCPによって管理されているかどうかはわかりません。おそらく正しいパスを提供する可能性があります。

答え3

ping 8.8.8.8のIPアドレスを「外部管理」する方法は2つあります
。この方法は、DHCPを介してIPアドレスを取得する方法です。同じDHCPパケットには、自動的に設定する必要があるデフォルトルートも含まれています。または、pppなどで設定されている場合は、ポイントツーポイント接続です。また、ルーティングに使用できる他のエンドポイントのIPも提供されます。重要な要約:「IP独立ゲートウェイを設定する」方法はありません。仕組みではありません。アドレスを取得したインターフェイスに応答してデフォルトパスを自動的に設定します。詳細は、使用しているネットワークインターフェイスの種類によって異なります。 - 6月11日午後8時06分

関連情報