【OSPF】経路集約(summary-address)

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

この記事でわかること
  1. ループバックを再配信して LSA タイプ5 を作る
  2. ASBR で summary-address を設定して集約する
  3. 集約前後のルーティングテーブルと LSDB を比べる

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

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

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

この記事で扱うのは下の行、ASBR での集約です。ABR での集約は エリア間の経路集約(area range) で扱っています。

検証構成

R2 と R3 を 192.168.23.0/24 でつなぎ、どちらもエリア0にします。R2 には4つのループバック(172.16.0.0/24〜172.16.3.0/24)を作りますが、network コマンドでは OSPF に含めません。代わりに直結経路として再配信(redistribute)するので、R2 は ASBR になり、4つの経路は LSA タイプ5として R3 に広告されます。

Area 0 Lo100172.16.0.1/24Lo101172.16.1.1/24Lo102172.16.2.1/24Lo103172.16.3.1/24 redistribute connected R2 (ASBR) R3 .2 .3 192.168.23.0/24 LSA Type 5:172.16.0.0/22
図1 検証構成(R2 で再配信した4つの経路を 172.16.0.0/22 に集約して R3 へ広告する)

再配信の設定

R2 にループバックを作り、直結経路を OSPF に再配信します。

R2

R2(config-if)# 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)# redistribute connected subnets
R2(config-router)# network 192.168.23.0 0.0.0.255 area 0

R3

R3(config)# router ospf 1
R3(config-router)# network 192.168.23.0 0.0.0.255 area 0
subnets を付ける理由

Cisco の OSPF では、redistribute に subnets を付けないと、クラスフルなネットワーク(クラス B なら /16)の境界と一致する経路だけが再配信されます。172.16.0.0/24 などはクラス B の 172.16.0.0/16 を分割したサブネットなので、subnets がないと再配信されません。

集約前の状態を確認する

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

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

R3# show ip route ospf

      172.16.0.0/24 is subnetted, 4 subnets
O E2     172.16.0.0 [110/20] via 192.168.23.2, 00:02:22, FastEthernet0/0.23
O E2     172.16.1.0 [110/20] via 192.168.23.2, 00:02:22, FastEthernet0/0.23
O E2     172.16.2.0 [110/20] via 192.168.23.2, 00:02:22, FastEthernet0/0.23
O E2     172.16.3.0 [110/20] via 192.168.23.2, 00:02:22, FastEthernet0/0.23
表示意味
O E2OSPF の外部経路(タイプ2)。メトリックは ASBR で付けた値のままで、R3 までの内部コストは足されません
[110/20]アドミニストレーティブディスタンス 110、メトリック 20。Cisco の OSPF は、再配信した経路に既定でメトリック 20 を付けます(BGP から再配信した経路は 1)
via 192.168.23.2ネクストホップは R2

show ip ospf database:R3 の LSDB

LSDB の Type-5 AS External Link States に、4つの経路がそれぞれ別の LSA として登録されています。

R3# show ip ospf database 

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

                Router Link States (Area 0)

Link ID         ADV Router      Age         Seq#       Checksum Link count
2.2.2.2         2.2.2.2         174         0x80000003 0x0046D2 1
3.3.3.3         3.3.3.3         173         0x80000002 0x00040F 1

                Net Link States (Area 0)

Link ID         ADV Router      Age         Seq#       Checksum
192.168.23.3    3.3.3.3         173         0x80000001 0x004254

                Type-5 AS External Link States

Link ID         ADV Router      Age         Seq#       Checksum Tag
172.16.0.0      2.2.2.2         199         0x80000001 0x0026B5 0
172.16.1.0      2.2.2.2         199         0x80000001 0x001BBF 0
172.16.2.0      2.2.2.2         199         0x80000001 0x0010C9 0
172.16.3.0      2.2.2.2         199         0x80000001 0x0005D3 0
表示意味
Link IDタイプ5 LSA では、外部経路のネットワークアドレス
ADV RouterLSA を作ったルータのルータ ID。2.2.2.2 は R2(ASBR)
Seq#LSA のシーケンス番号。LSA を作り直すたびに増えます

集約する範囲を決める

4つのネットワークの第3オクテットを2進数にすると、上位6ビットが共通です。第1・第2オクテットの16ビットと合わせて、先頭22ビットが同じなので、まとめた経路は 172.16.0.0/22(マスク 255.255.252.0)になります。

ネットワーク第3オクテット(2進数)
172.16.0.0/24000000 00
172.16.1.0/24000000 01
172.16.2.0/24000000 10
172.16.3.0/24000000 11

summary-address で集約する

ASBR の R2 で、router ospf の中に summary-address を設定します。

R2

R2(config)# router ospf 1
R2(config-router)# summary-address 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 E2     172.16.0.0 [110/20] via 192.168.23.2, 00:00:16, FastEthernet0/0.23

show ip ospf database:R3 の LSDB

タイプ5 LSA も1つになっています。残りの3つの LSA は R2 が取り消したため、LSDB から消えています。

R3# show ip ospf database 

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

                Router Link States (Area 0)

Link ID         ADV Router      Age         Seq#       Checksum Link count
2.2.2.2         2.2.2.2         236         0x80000003 0x0046D2 1
3.3.3.3         3.3.3.3         235         0x80000002 0x00040F 1

                Net Link States (Area 0)

Link ID         ADV Router      Age         Seq#       Checksum
192.168.23.3    3.3.3.3         235         0x80000001 0x004254

                Type-5 AS External Link States

Link ID         ADV Router      Age         Seq#       Checksum Tag
172.16.0.0      2.2.2.2         28          0x80000003 0x0013C9 0
集約前(R3 の LSDB) 集約後(R3 の LSDB) Type 5172.16.0.0/24Type 5172.16.1.0/24Type 5172.16.2.0/24Type 5172.16.3.0/24 Type 5172.16.0.0/22 R2 で summary-address
図2 集約前後の R3 の LSDB(タイプ5 LSA が4つから1つになる)

集約するときの注意点

Cisco のルータは、summary-address(外部経路)や area range(エリア間)で集約経路を広告するとき、自分のルーティングテーブルに Null0 宛ての経路(discard route)を入れます。集約範囲のうち、実在しない宛先へのパケットを Null0 で捨てて、ルーティングループを防ぐためです。外部経路の集約で入る discard route のアドミニストレーティブディスタンスは、既定で 254 です。R2 で show ip route を実行すると、172.16.0.0/22 が Null0 宛てで表示されます。

summary-address 172.16.0.0 255.255.252.0 not-advertise のように not-advertise を付けると、集約経路も含めて、範囲内の外部経路を広告しなくなります。集約ではなく、再配信した経路を止めるフィルタとして働きます。

まとめ

集約すると、ほかのルータの LSDB とルーティングテーブルが小さくなります。外部経路が多い大規模なネットワークでは、再配信する ASBR での集約をよく検討します。

項目この記事の設定
集約する機器ASBR(再配信しているルータ。ここでは R2)
対象の LSAタイプ5(NSSA ではタイプ7)
コマンドsummary-address 172.16.0.0 255.255.252.0
結果R3 の LSDB のタイプ5 LSA と、O E2 の経路が4つから1つになる

コメント