ルーティング・ループの確認方法
ルーティング・ループとは、IPパケットが、TTLが尽きるまでルータを2回以上通過する状態のことを言います。
ルーティング・ループの確認方法は2つあります。1つ目はtracertもしくはtracerouteを打って、同じIPアドレスからの応答があるのを確認する方法、 2つ目はPingを打って、以下のように"TTLが期限切れになりました"(英語表記の場合、"TTL Expired")が表示がされるのを確認する方法です。
上記のケースでは、200.200.200.200宛にPingを打ち、どこかでループが発生し、最終的に192.168.11.1のアドレスを持つNW機器でTTLが0になり、 ICMP Time Exceeded が端末に戻ってきた、という状態です。
ルーティング・ループの原因
それなりのNWエンジニアであれば、目的の通信ができるようにルーティングを設定することは容易いですが、 それでもよく検討から漏れるのが、実際に機器に割り当てていないNWセグメント宛通信のルーティング・ループです。
例えば、以下のケースを考えます。
A社に192.0.2.0/24というGlobl IPアドレスが割り当たっているが、未アサインのアドレス帯がある場合、 そのアドレス帯への通信があった場合にルーティング・ループが発生してしまいます。
この問題に関する基本的な考え方は、ルート集約を行う際は、集約された中の未アサインアドレス帯への配慮が必要、ということです。 具体的な解決策としては、ルート集約の境界にある、ルート分割しているNW機器に、集約ルートのNullルートを作成することです。
上記のケースでは、ルート集約の境界はA社ルータ(ルート集約)とA社コアSW(ルート分割)であるため、A社コアSWに 集約ルートのNullルーティングである 【192.0.2.0/24 の NextHop = Null】を設定します。
これにより、アサイン済の分割ルートに関してはロンゲストマッチにより正しくルーティングされ、未アサインのアドレス帯についてはNullルート により破棄されるため、ルーティング・ループは回避できます。
ダイナミック・ルーティングにおけるルート集約は、集約するNW機器で集約Nullルートを自動生成し、それを配布しているため、 自動でルーティング・ループを回避していますが、StaticルートでNWを構成するときは注意が必要です。
参考までに、OSPFにおけるルート集約のイメージを下記に示します。