Nexthopが「Null0」となっているルーティングを見たことがありますか?
主にCisco IOS でEIGRP等のルーティングプロトコルで集約ルーティングを作成した際に生成され、 ルーティングループを防ぐ目的とありますが、 どのような場合にルーティングループになるのでしょう。
集約ルーティングとは?
複数のルーティングを1行にまとめることです。
192.168.0.0/24 via 192.168.1.254
192.168.1.0/24 via 192.168.1.254
これであれば下記のように1行に集約できます。
192.168.0.0/23 via 192.168.1.254
メリットは、ルータのメモリ使用量を節約するとともに、 ルーティングテーブルの参照が1行で済むことで処理速度が早くなります。
ルーティング原因と理由
下記の2点がポイントになります。
- 存在しないIPアドレスを宛先としたパケット
- 隣接ルータのデフォルトルートや集約ルーティング
下記のような場合、RouterB経由でRouterAに到達後、 RouterAのルーティングテーブルに無いアドレスなので、 RouterBに送り返してしまい、RouterAとRouterBでループしてしまいます。
Null0宛のルーティングがあれば、 RouterAで破棄されるため、ルーティングループにはなりません。
なので、以下のいずれかの場合なら、Null0宛のルーティングが無くてもルーティングループは起きません。 アドレスの打ち間違いなどを考慮すると、前者は難しいと思いますが。
- 存在しないIPアドレスを宛先としたパケットがない
- デフォルトルートや集約経路が無い
補足
一般にパケットはルータを経由する度に、IPパケット内のTTL値が減り、0になった時点で破棄されます。 なので、ルーティングループはいつか収束するという前提で、対策する必要がないと考える人もいるようですが、 機器によっては、TTLを減らさない仕様のものがあり、この場合にネットワークが高負荷となってしまいます。