OSPF では、同じエリアの中で流れるルータ LSA(タイプ1)やネットワーク LSA(タイプ2)を集約することはできません。集約できるのは、エリアの境界(ABR)と、外部経路を OSPF に取り込む入口(ASBR)の2か所です。この記事では、ASBR で再配信した経路(LSA タイプ5)を summary-address コマンドで1本にまとめ、LSDB とルーティングテーブルがどう変わるかを確かめます。
- ループバックを再配信して LSA タイプ5 を作る
- ASBR で
summary-addressを設定して集約する - 集約前後のルーティングテーブルと LSDB を比べる
OSPF で経路を集約できる場所
エリアの中のルータは、全員が同じ LSDB を持って SPF 計算をする前提で動いています。そのため、エリアの中ではタイプ1・2の LSA を省略したりまとめたりできません。集約は、LSA が別の種類に作り直される場所で行います。
| 集約する場所 | 対象の経路(LSA) | コマンド |
|---|---|---|
| ABR | エリア内の経路を、ほかのエリアへ広告するときのタイプ3 | area エリア番号 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 に広告されます。
再配信の設定
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
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 E2 | OSPF の外部経路(タイプ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 Router | LSA を作ったルータのルータ 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/24 | 000000 00 |
| 172.16.1.0/24 | 000000 01 |
| 172.16.2.0/24 | 000000 10 |
| 172.16.3.0/24 | 000000 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
集約するときの注意点
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つになる |
コメント