単一のネットワークインターフェイスを3つの異なる方法で設定し、特定の条件に基づいてルーティングを設定しますか?

単一のネットワークインターフェイスを3つの異なる方法で設定し、特定の条件に基づいてルーティングを設定しますか?

USB武器庫Mk IIDebianを実行して起動するのはかなり簡単ですUSBホストとの通信

しかし、私が達成したいことは次のとおりです。ネットワークアダプタを設定したいです。存在するUSB武器庫の条件付き使用。 3つの角度:

  1. ホストでDHCPが有効になってバインドされている場合疾病管理予防センターdhclientIP割り当てに使用したいイーサネットアダプタ。
  2. 10.0.0.0/24ネットワークは、10.0.0.1(InversePathが提供するDebianイメージに事前設定されたネットワーク)が割り当てられているインターフェイスに無条件に設定されています。
  3. 192.168.137.2(または.1以外の192.168.137.0/24 IPアドレス)を別のIPアドレスに設定します(Windows ICS)

これまでこのことをするのは大きなことではありませんでした。例えば、この回答StackOverflowに示されている2つの方法があります(2番目のアプローチを取り、ICSスコープアドレスを別のエイリアスとして追加します)。

しかし、重要なことは、パスをどのように設定するかということです。これは私が今立ち往生している部分です。

  1. DHCPが成功したら、これで設定されたすべてをアップリンク(ゲートウェイ)として使用したいと思います。
  2. そうでない場合は、設定された残りの2つのサブネットのうちの1つで通信できることを確認したいと思います。 .2と.254は対応する/ 24サブネットにあり、必要に応じて「検索」を拡張します。)

次のアドバイスが必要です。

  • アップリンクに最適なIP範囲をどのように決定しますか?たとえば、ARPトラフィックをスニッフィングして指標として使用する必要がありますか?それとももっと信頼できる方法はありますか(例ping -I <address>:)?事後検討:アップリンクの可用性の変化をどのように処理するのですか?
  • いくつかのスクリプトを使用することに加えて、これを表現するための安定した方法はありますか?ip-rule(8)

ベストアンサー1

過去にこのようないくつかのシナリオに遭遇しましたが、まだ完璧な解決策を見つけることができませんでした。

まず、2つの静的IPを割り当てるときは、ルーティング指標が1000のように高いことを確認してください。これにより、DHCPのデフォルトパスがある場合はそのパスが低くなり、自動的に選択されます。これが私が通常することです。

次の質問ははるかに難しいです。なぜ何が良いアップリンクを作るのですか? Linuxは決してユーザーのためにこれらの選択をしません。リンクが確立されると、リンクも確立されます。

私がこれらの問題を解決するシステムでは、常にスクリプトまたはデーモンが実行されており、非常に迅速に複雑になる可能性があります。私たちは主にエンドポイントの接続を固定間隔でテストし、それに応じてルーティングを設定するか、インターフェイスをオンまたはオフにします。

場合によっては、イーサネット対モデムなどの優先インターフェイスがあります。これは、モデム接続を中断することなくイーサネット接続が機能しているかどうかをテストする必要があるため、より困難になります。 ping -I スイッチが実際にインターフェイス エイリアスと連携しているかどうかは不明ですが、これも可能です。そうでない場合は、macvlanやipvlanなどを使用してアドレスを完全に分割することもできます。また、アドレス(または対応する仮想インターフェイス)を上下に設定します。

私たちが考慮する必要があり、おそらくあなたが考慮すべき全く異なるのは、インターフェイスとサブネットを変更するときに別のDNSサーバーを使用する必要があり、サービスを再起動する必要があることです。

Linuxではフェイルオーバーに関する多くのガイドがありますが、これはほぼ常に簡単に発生する物理リンクの損失に基づいています。または、ルーティングテストに推奨されるデーモンまたはスクリプトがあります。

それが私の5セントです。それは意味があり、それがあなたを正しい方向に導くことを願っています。

おすすめ記事