OSPF では、同じエリアの中で流れるルータ LSA(タイプ1)やネットワーク LSA(タイプ2)を集約することはできません。集約できるのは、エリアの境界(ABR)と、外部経路を OSPF に取り込む入口(ASBR)の2か所です。この記事では、ABR がほかのエリアへ広告するサマリー LSA(タイプ3)を area range コマンドで1本にまとめ、LSDB とルーティングテーブルがどう変わるかを確かめます。
- ABR がエリア0の経路をタイプ3 LSA でほかのエリアへ広告する様子
area rangeで集約するときの、エリア番号の指定のしかた- 集約前後のルーティングテーブルと LSDB の違い
OSPF で経路を集約できる場所
エリアの中のルータは、全員が同じ LSDB を持って SPF 計算をする前提で動いています。そのため、エリアの中ではタイプ1・2の LSA をまとめられません。集約は、LSA が別の種類に作り直される場所で行います。
| 集約する場所 | 対象の経路(LSA) | コマンド |
|---|---|---|
| ABR | エリア内の経路を、ほかのエリアへ広告するときのタイプ3 | area エリア番号 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 に広告します。
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 IA | OSPF のエリア間経路(inter-area)。ほかのエリアの経路を、ABR が作ったタイプ3 LSA から学習したもの |
| /32 | OSPF はループバックをホスト経路として扱い、/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.1 | R2 のルータ 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/24 | 10101100.00010000.00000000.00000000 |
| 172.16.1.0/24 | 10101100.00010000.00000001.00000000 |
| 172.16.2.0/24 | 10101100.00010000.00000010.00000000 |
| 172.16.3.0/24 | 10101100.00010000.00000011.00000000 |
| 172.16.0.0/22 | 10101100.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
集約するときの注意点
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つになる |
コメント