技術を楽しもう!

IT(ネットワーク)業界を中心に、仕事や趣味等、色々な技術を記録します。

Null0宛のルーティングが必要な理由

f:id:takashi-tobey:20200224121212j:plain

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でループしてしまいます。

f:id:takashi-tobey:20200224131615p:plain

Null0宛のルーティングがあれば、 RouterAで破棄されるため、ルーティングループにはなりません。

f:id:takashi-tobey:20200224132148p:plain

なので、以下のいずれかの場合なら、Null0宛のルーティングが無くてもルーティングループは起きません。 アドレスの打ち間違いなどを考慮すると、前者は難しいと思いますが。

  • 存在しないIPアドレスを宛先としたパケットがない
  • デフォルトルートや集約経路が無い

補足

一般にパケットはルータを経由する度に、IPパケット内のTTL値が減り、0になった時点で破棄されます。 なので、ルーティングループはいつか収束するという前提で、対策する必要がないと考える人もいるようですが、 機器によっては、TTLを減らさない仕様のものがあり、この場合にネットワークが高負荷となってしまいます。