【OSPF】経路集約(area range)設定

OSPF では、同じエリアの中で流れるルータ LSA(タイプ1)やネットワーク LSA(タイプ2)を集約することはできません。集約できるのは、エリアの境界(ABR)と、外部経路を OSPF に取り込む入口(ASBR)の2か所です。この記事では、ABR がほかのエリアへ広告するサマリー LSA(タイプ3)を area range コマンドで1本にまとめ、LSDB とルーティングテーブルがどう変わるかを確かめます。

この記事でわかること
  1. ABR がエリア0の経路をタイプ3 LSA でほかのエリアへ広告する様子
  2. area range で集約するときの、エリア番号の指定のしかた
  3. 集約前後のルーティングテーブルと LSDB の違い

OSPF で経路を集約できる場所

エリアの中のルータは、全員が同じ LSDB を持って SPF 計算をする前提で動いています。そのため、エリアの中ではタイプ1・2の LSA をまとめられません。集約は、LSA が別の種類に作り直される場所で行います。

集約する場所対象の経路(LSA)コマンド
ABRエリア内の経路を、ほかのエリアへ広告するときのタイプ3area エリア番号 range
ASBR再配信した外部経路(タイプ5。NSSA ではタイプ7)summary-address

この記事で扱うのは上の行、ABR での集約です。ASBR での集約は 外部経路の集約(summary-address) で扱っています。

検証構成

R2 の4つのループバック(172.16.0.0/24〜172.16.3.0/24)をエリア0に、R2 と R3 をつなぐ 192.168.23.0/24 をエリア23にします。R2 は2つのエリアにまたがるので ABR になり、エリア0の経路をタイプ3 LSA としてエリア23の R3 に広告します。

Area 0 Area 23 Lo100172.16.0.1/24Lo101172.16.1.1/24Lo102172.16.2.1/24Lo103172.16.3.1/24 R2 (ABR) R3 .2 .3 192.168.23.0/24 LSA Type 3:172.16.0.0/22
図1 検証構成(ABR の R2 がエリア0の経路を 172.16.0.0/22 に集約してエリア23へ広告する)

OSPF の設定

R2

R2(config)# interface Loopback100
R2(config-if)# ip address 172.16.0.1 255.255.255.0
R2(config-if)#interface Loopback101
R2(config-if)# ip address 172.16.1.1 255.255.255.0
R2(config-if)#interface Loopback102
R2(config-if)# ip address 172.16.2.1 255.255.255.0
R2(config-if)#interface Loopback103
R2(config-if)#ip address 172.16.3.1 255.255.255.0

R2(config)#router ospf 1
R2(config-router)# network 172.16.0.0 0.0.0.255 area 0
R2(config-router)# network 172.16.1.0 0.0.0.255 area 0
R2(config-router)# network 172.16.2.0 0.0.0.255 area 0
R2(config-router)# network 172.16.3.0 0.0.0.255 area 0
R2(config-router)# network 192.168.23.0 0.0.0.255 area 23

R3

R3(config)#router ospf 1
R3(config-router)# network 192.168.23.0 0.0.0.255 area 23

集約前の状態を確認する

show ip route ospf:R3 のルーティングテーブル

R3 には、R2 の4つのループバックへの経路が1本ずつ入っています。

R3#show ip route ospf

      172.16.0.0/32 is subnetted, 4 subnets
O IA     172.16.0.1 [110/2] via 192.168.23.2, 00:00:05, FastEthernet0/0.23
O IA     172.16.1.1 [110/2] via 192.168.23.2, 00:00:05, FastEthernet0/0.23
O IA     172.16.2.1 [110/2] via 192.168.23.2, 00:00:05, FastEthernet0/0.23
O IA     172.16.3.1 [110/2] via 192.168.23.2, 00:00:05, FastEthernet0/0.23
表示意味
O IAOSPF のエリア間経路(inter-area)。ほかのエリアの経路を、ABR が作ったタイプ3 LSA から学習したもの
/32OSPF はループバックをホスト経路として扱い、/24 で設定していても /32 で広告します。そのため宛先は 172.16.0.1 などのホストアドレスになります
[110/2]アドミニストレーティブディスタンス 110、コスト 2(ループバックのコスト 1 + R2–R3 間のコスト 1)

show ip ospf database:R3 の LSDB

LSDB の Summary Net Link States (Area 23) に、4つの経路がそれぞれ別のタイプ3 LSA として登録されています。

R3#show ip ospf database 

            OSPF Router with ID (3.3.3.3) (Process ID 1)

                Router Link States (Area 23)

Link ID         ADV Router      Age         Seq#       Checksum Link count
3.3.3.3         3.3.3.3         261         0x80000002 0x00F91A 1
172.16.3.1      172.16.3.1      262         0x80000002 0x007535 1

                Net Link States (Area 23)

Link ID         ADV Router      Age         Seq#       Checksum
192.168.23.2    172.16.3.1      262         0x80000001 0x002307

                Summary Net Link States (Area 23)

Link ID         ADV Router      Age         Seq#       Checksum
172.16.0.1      172.16.3.1      4           0x80000001 0x005667
172.16.1.1       172.16.3.1      4           0x80000001 0x004B71
172.16.2.1       172.16.3.1      4           0x80000001 0x00407B
172.16.3.1       172.16.3.1      4           0x80000001 0x003585
表示意味
Summary Net Link Statesタイプ3 LSA の一覧。Link ID は宛先のネットワークアドレス
ADV Router 172.16.3.1R2 のルータ ID。router-id を設定していないので、R2 はループバックの中で最も大きい 172.16.3.1 をルータ ID にしています

集約する範囲を決める

4つのネットワークを2進数にすると、先頭22ビットが共通です。まとめた経路は 172.16.0.0/22(マスク 255.255.252.0)になります。

ネットワーク2進数(共通する先頭22ビットを太字で表示)
172.16.0.0/2410101100.00010000.00000000.00000000
172.16.1.0/2410101100.00010000.00000001.00000000
172.16.2.0/2410101100.00010000.00000010.00000000
172.16.3.0/2410101100.00010000.00000011.00000000
172.16.0.0/2210101100.00010000.00000000.00000000

area range で集約する

ABR の R2 で、router ospf の中に area range を設定します。エリア番号には、集約する経路がある側のエリア(ここではループバックのあるエリア0)を指定します。広告先のエリア23ではありません。

R2

R2(config)#router ospf 1
R2(config-router)#area 0 range 172.16.0.0 255.255.252.0

集約後の状態を確認する

show ip route ospf:R3 のルーティングテーブル

R3 の経路は 172.16.0.0/22 の1本になりました。

R3#show ip route ospf

      172.16.0.0/22 is subnetted, 1 subnets
O IA     172.16.0.0 [110/2] via 192.168.23.2, 00:00:10, FastEthernet0/0.23

show ip ospf database:R3 の LSDB

タイプ3 LSA も 172.16.0.0 の1つになっています。

R3#show ip ospf database 

            OSPF Router with ID (3.3.3.3) (Process ID 1)

                Router Link States (Area 23)

Link ID         ADV Router      Age         Seq#       Checksum Link count
3.3.3.3         3.3.3.3         233         0x80000002 0x00F91A 1
172.16.3.1      172.16.3.1      234         0x80000002 0x007535 1

                Net Link States (Area 23)

Link ID         ADV Router      Age         Seq#       Checksum
192.168.23.2    172.16.3.1      234         0x80000001 0x002307

                Summary Net Link States (Area 23)

Link ID         ADV Router      Age         Seq#       Checksum
172.16.0.0      172.16.3.1      53          0x80000001 0x005170
集約前(R3 の LSDB) 集約後(R3 の LSDB) Type 3172.16.0.1/32Type 3172.16.1.1/32Type 3172.16.2.1/32Type 3172.16.3.1/32 Type 3172.16.0.0/22 R2(ABR)で area 0 range
図2 集約前後の R3 の LSDB(タイプ3 LSA が4つから1つになる)

集約するときの注意点

Cisco のルータは、area range で集約経路を広告するとき、自分のルーティングテーブルに Null0 宛ての経路(discard route)を入れます。集約範囲のうち、実在しない宛先へのパケットを Null0 で捨てて、ルーティングループを防ぐためです。エリア間の集約で入る discard route のアドミニストレーティブディスタンスは、既定で 110 です。

area 0 range 172.16.0.0 255.255.252.0 not-advertise のように not-advertise を付けると、範囲内の経路をほかのエリアへ広告しなくなります。集約ではなく、エリア間のフィルタとして働きます。

まとめ

集約すると、ほかのエリアのルータの LSDB とルーティングテーブルが小さくなり、エリア内で経路が増減してもほかのエリアへの影響が小さくなります。アドレスをエリアごとに連続して割り当てておくと、ABR で集約しやすくなります。

項目この記事の設定
集約する機器ABR(ここでは R2)
対象の LSAタイプ3
コマンドarea 0 range 172.16.0.0 255.255.252.0(エリア番号は経路がある側)
結果R3 の LSDB のタイプ3 LSA と、O IA の経路が4つから1つになる

コメント