助け合いフォーラム
この問題はプレミアムコンテンツです。
解説の【再帰的ルーティングによる宛先解決処理の無限ループ】について
【再帰的ルーティングによる宛先解決処理の無限ループ】の説明において、以下記載があります。
[Tunnel13がdown状態の時はルーティングテーブル上に10.1.3.0/24の直接接続ルートが存在しないため、スタティックに設定されたデフォルトルートに従って、R2を経由して3.3.3.3に到達する経路が採用されます。]
[このとき再帰的ルーティングにより
- 3.3.3.3へは10.1.3.3を経由する
- 10.1.3.3へはTunnel13から出力する
- Tunnel13を通過するパケットは、「tunnel destination 3.3.3.3」の設定によりGREでカプセル化して3.3.3.3宛に送信する
- 3.3.3.3へは10.1.3.3を経由する
- 10.1.3.3へはTunnel13から出力する
- Tunnel13を通過するパケットは、「tunnel destination 3.3.3.3」の設定によりGREでカプセル化して3.3.3.3宛に送信する
(1〜3を繰り返す)]
と記載がありこの点は理解できています。
では、Tunnel13が一度もdownしておらず、初めからupしている状態の場合、どのような処理になるのでしょうか?
私なりに考えた結果が以下です。
- 3.3.3.3へは10.1.3.3を経由する
- 10.1.3.3へはloopback0から出力する。
3.???
2まではおそらく合っていると思うのですが、3でGREによるカプセル化が行われるのかどうかがわからず、悩んでおります。
もし、3でGREによるカプセル化が行われるとすると、1〜3でまたループしてしまうのではないかと思っています。
カプセル化が行われる条件はネクストホップがTunnelxとされている場合のみでしょうか?
どなたかご教示いただけますと幸いです。
よろしくお願いいたします。
前提として、destinationに指定したアドレスへの経路情報がルーティングテーブルに存在するときだけ、トンネルがupしますよね。
もう一つ前提として、インターフェースがupしてないと、それがネクストホップに指定された経路情報はルーティングテーブルに載らないというのもありますよね。
では、Tunnel13が一度もdownしておらず、初めからupしている状態の場合、どのような処理になるのでしょうか?
トンネルがupしている状態から考えても、downしている状態から考えても、生じる現象は同じですよ。
1.ルーティングテーブルが作成される段階で「ip route 3.3.3.3 255.255.255.255 10.1.3.3」と「10.1.3.0 is directly connected, Tunnel13」でループが起きて、トンネルがdownさせられる。(「Tunnel13」のdestinationは「3.3.3.3」なので、ルータは「3.3.3.3」に一番当てはまるルートを参照する。)
2.トンネルがdownするとルーティングテーブルから「ip route 3.3.3.3 255.255.255.255 10.1.3.3」と「10.1.3.0 is directly connected, Tunnel13」が消えるので、次は3.3.3.3がデフォルトルートに当てはまるようになり、トンネルがup。
3.トンネルがupすると、「ip route 3.3.3.3 255.255.255.255 10.1.3.3」と「10.1.3.0 is directly connected, Tunnel13」が復活。
1~3の繰り返しです。トンネルがupしていればループが検出されてdownさせられて、トンネルがdownしていればデフォルトルートに当てはまるのでトンネルがupしています。
これらの現象は全て、「ルーティングテーブルが作成される」段階でのことです。
転送処理は行われていません。これらの現象は「GREによるカプセル化」よりも前の段階ですよ。
カプセル化が行われる条件はネクストホップがTunnelxとされている場合のみでしょうか?
転送処理が行われる段階になったとして、GREによるカプセル化が行われる条件は「トンネルを通るかどうか」だと思いますよ。
つまり「パケットの宛先IPアドレスが当てはまっているルート情報のネクストホップがトンネルのものかどうか」だと思います。
「ip route 192.168.3.0 255.255.255.0 Tunnel13」はネクストホップにトンネルインターフェースを指定してるので、トンネルを通らされます。もしこれが「ip route 192.168.3.0 255.255.255.0 10.1.3.3」という書き方、つまりネクストホップをトンネルのIPアドレスで指定したとしても、同じようにトンネルを通らされます。
コメント
この投稿に対して返信しませんか?
e engine10
2022/11/03 19:25
細やかな解説ありがとうございます。 本サイトの解説では[ルーティングテーブル上]というワードが沢山用いられており、回答者様の[ルーティングテーブルが作成される段階で転送処理はまだ行われていない]という指摘と相違があるように思いました。 この点はどのように捉えれば良いでしょうか? 私の認識誤りでしたらすみません。