「ip Route show」コマンドで表示されるLinuxのルーティングテーブルについて質問があります。 「src」属性がどのように見えるかを理解するために、このリンクに従いました。 http://linux-ip.net/html/routing-saddr-selection.html
私の質問は2つあります。
- 人々がデフォルトゲートウェイの "src"属性を使用しないか、または下のリンクに示すように他のパスに明示的に使用しない理由はありますか?
- 私の理解に問題がありますか?
「src」属性を明示的に使用すると、通信が失敗する可能性があると思います。下の画像のようにネットワークを作成し、以下のように「router1」にルーティングテーブルを作成しました。
default via 192.168.0.2 dev router1-router2 src 192.168.1.1
192.168.0.0/24 dev router1-router2 proto kernel scope link src 192.168.0.1
192.168.1.0/24 dev router1-host1 proto kernel scope link src 192.168.1.1
「router1」が「192.168.1.1」を使用すると予想しましたが、「src」のIPアドレスが同じLANにないため、「router2」に接続できませんでした。しかし、コミュニケーションは可能です。なぜ?
答え1
「src」属性を明示的に使用すると、通信が失敗する可能性があると思います。
そうかもしれませんが、正しく設定されたネットワークではそうではありません。
このsrc
属性(NetlinkではRTA_PREFSRCと呼ばれる)はヒントこのシステムで確立された接続に選択する送信元IPアドレス。実際にはそうではありません影響ただし、ルーティング - パケットが「デフォルト」パスと一致する場合は、「src」属性が異なる場合でも、「デフォルト」パスを使用します。したがって、問題が発生する唯一の時間は、ホストと通信しようとするときです。戻り経路なし選択したソースアドレスに。
(何会議RTA_SRCとも呼ばれるルーティングに影響を与える属性 -from
パスに「from」パラメータを追加します。する通常の宛先に加えて、ソースアドレスと一致するようにしてください。ただし、LinuxではIPv4ではなくIPv6に対してのみ実装されています。 )
「router1」が「192.168.1.1」を使用すると予想しましたが、「src」のIPアドレスが同じLANにないため、「router2」に接続できませんでした。しかし、コミュニケーションは可能です。なぜ?
持っているから路線一方向定義は、システムにパケットを「router2」に転送し、「192.168.1.1」に戻すように指示します。