今回はOSPFのNetwork TypeのBroadcastを題材にLSA Type 2を解説します。
座学
LSA Type 2の必要性
前回の記事で3台以上のルータが存在するネットワークでOSPFを動作させるには、Network TypeにPoint-to-Multipointを使用する必要がある旨を解説しました。
しかし、Point-to-Multipointを使用した場合、ルータの台数が増加するに伴い、LSA Type 1の情報量が指数的(n2)に増加してしまう問題があります。
上記の問題を解消するために、LSA Type 2であるNetwork LSAが存在します。
LSA Type 2を使用しない場合、すなわち、Point-to-Multipointを使用した場合、各ルータが生成したLSA Type 1には残りの他のルータが生成したLSA Type 1へのリンクの情報(残りの他のルータのRouter ID)が格納されます。
一方、LSA Type 2を使用することで、各ルータが生成したLSA Type 1には、LSA Type 2へのリンク情報のみが格納されます。各ルータが生成したLSA Type 1は、LSA Type 2を経由で接続されます。
この結果、LSA Type 2を使用することで、ルータが増加しても、LSAの情報量は線形的に増加するため、LSA Type 1のみの場合と比較して、LSAの情報量を削減可能です。
DRとBDR
3台以上のルータが存在するネットワークにおいて、LSAの情報量を削減するためにLSA Type 2を生成するには、ルータのインタフェースのNetwork TypeにBroadcastを指定する必要があります。OSPFではBroadcastネットワークのことをBMA(Broadcast Multi Access)と呼んだりもします。
Broadcastネットワークでは、DR(Designated Router)とBDR(Backup Designated Router)と呼ばれる特別のルータが選出されます。DRがLSA Type 2を生成する役割を担います。BDRはDRが障害が発生した際にDRに昇格し、代わりのLSA Type 2を生成します。また、DR、BDR以外のルータをDROTHERと呼びます。
DR、BDRは以下の基準に従い、選出されます。(選出基準の詳細やPreemptに関しては別の記事で解説します。)
- Priorityが最大のルータをDRに選出
- Priorityが2番目に大きいルータをBDRに選出
- Priorityが同じ場合、Router IDが最大のルータをDR、2番目に大きいルータをBDRに選出
Point-to-Multipointの場合は、全てのルータがネイバーとアジャセンシーを確立し、全てのルータ間でLSDBの同期が行われます。
Broadcastの場合、DRとBDR、DRとDROTHER、BDRとDROTHER間でのみアジャセンシーが確立され、LSDBの同期が行われます。DROTHER間ではネイバーのみ確立され、DROTHER間ではLSDBの同期は直接行われません。
BroadcastネットワークでのLSA Type 1とLSA Type 2の内容
BroadcastネットワークにおけるLSA Type 1とLSA Type 2の内容を見ていきます。
各ルータが生成するLSA Type 1にはLink Typeが2(Transit)のLink情報が存在します。このLinkのLink IDにはDRのインタフェースのIPアドレスが格納されます。また、Point-to-PointやPoint-to-Multipointでは、Link Typeが3(Stub)のLinkにネットワークアドレスとサブネットマスクの情報が格納されていましたが、Broadcastネットワークでは、LSA Type 1からLink Typeが3(Stub)のLink情報が削除されます。(Link Typeが3(Stub)のLinkについては、こちらの記事を参照ください。)
LSA Type 2のLink State IDにはDRのインタフェースのIPアドレスが格納されます。また、LSA Type 2には、DRのインタフェースのサブネットマスクの情報も格納されます。このLink State IDとSubnet MaskによりBroadcastネットワークのプレフィックスを認識可能です。
また、LSA Type 2には、Broadcastネットワーク上に存在する全ルータのRouter IDが格納されます。
上図を例に、R3が生成したLSA Type 2のLink State IDには、R3のインタフェースのIPアドレスである10.1.1.3が格納されます。また、Subnet Maskにはインタフェースのサブネットマスクである255.255.255.0が格納されます。この2つの情報により、各ルータは10.1.1.0/24というプレフィックスを認識可能です。また、このLSA Type 2には、R1、R2、R3のRouter IDが格納されます。
一方、R1が生成したLSA Type 1のLink State IDにはR1のRouter IDである1.1.1.1が格納されます。また、Link Typeが2(Transit)のLinkのLink IDには、DRのIPアドレスである10.1.1.3が格納されます。
これにより、「R1が生成したLSA Type 1のLink IDの10.1.1.3」と「DRが生成したLSA Type 2のLink State IDの10.1.1.3」、また、「DRが生成したLLSA Type 2のAttached Routerの1.1.1.1」と「R1が生成したLSA Type 1のLink State IDの1.1.1.1」により、「R1が生成したLSA Type 1」と「DRが生成したLSA Type 2」の2つのパズルのピースをつなぎ合わせることが可能です。
LSA Type 2のパケットフォーマット
・Link State ID
DRのインタフェースのIPアドレスが格納されます。
・Subnet Mask
DRのインタフェースのサブネットマスクが格納されます。
・Attached Router
Broadcastネットワークに存在するルータのRouter IDが格納されます。
実機での動作確認
検証内容
R1、R2、R3でOSPF Area 0を有効にし、ルート情報を交換します。
Network TypeにはBroadcastを使用します。
R2をBDR、R3をDRに選出させます。
初期設定
interface GigabitEthernet2
ip address 10.1.1.1 255.255.255.0
!
router ospf 1
router-id 1.1.1.1
network 10.1.1.0 0.0.0.255 area 0
interface GigabitEthernet2
ip address 10.1.1.2 255.255.255.0
!
interface GigabitEthernet3
ip address 10.2.2.2 255.255.255.0
!
router ospf 1
router-id 2.2.2.2
network 10.1.1.0 0.0.0.255 area 0
network 10.2.2.0 0.0.0.255 area 0
interface GigabitEthernet2
ip address 10.1.1.3 255.255.255.0
!
interface GigabitEthernet3
ip address 10.3.3.3 255.255.255.0
!
router ospf 1
router-id 3.3.3.3
network 10.1.1.0 0.0.0.255 area 0
network 10.3.3.0 0.0.0.255 area 0
OSPFのBroadcastネットワークの設定確認
EthernetインタフェースはデフォルトでBroadcastネットワークとして動作しているので特別なコマンドは不要になります。
デフォルトのNetwork TypeがPoint-to-PointのTunnelインタフェースやSerialインタフェースでBroadcastネットワークを使用した場合、ip ospf network broadcastコマンドを使用します。
OSPFが動作しているインタフェースの状態確認
R1のg2のNetwork TypeがBroadcastであることが確認できます。また、R2がBDR、R3がDRに選出されていることが確認できます。
R1#show ip ospf interface
GigabitEthernet2 is up, line protocol is up
Internet Address 10.1.1.1/24, Interface ID 6, Area 0
Attached via Network Statement
Process ID 1, Router ID 1.1.1.1, Network Type BROADCAST, Cost: 1
Topology-MTID Cost Disabled Shutdown Topology Name
0 1 no no Base
Transmit Delay is 1 sec, State DROTHER, Priority 1
Designated Router (ID) 3.3.3.3, Interface address 10.1.1.3
Backup Designated router (ID) 2.2.2.2, Interface address 10.1.1.2
Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
oob-resync timeout 40
Hello due in 00:00:06
Supports Link-local Signaling (LLS)
Cisco NSF helper support enabled
IETF NSF helper support enabled
Index 1/1/1, flood queue length 0
Next 0x0(0)/0x0(0)/0x0(0)
Last flood scan length is 0, maximum is 1
Last flood scan time is 0 msec, maximum is 0 msec
Neighbor Count is 2, Adjacent neighbor count is 2
Adjacent with neighbor 2.2.2.2 (Backup Designated Router)
Adjacent with neighbor 3.3.3.3 (Designated Router)
Suppress hello for 0 neighbor(s)
OSPFネイバー/アジャセンシーの状態確認
R1はR2をBDR、R3をDRとして認識していることが確認できます。
R1#show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
2.2.2.2 1 FULL/BDR 00:00:30 10.1.1.2 GigabitEthernet2
3.3.3.3 1 FULL/DR 00:00:36 10.1.1.3 GigabitEthernet2
R2はR1をDROTHER、R3をDRとして認識していることが確認できます。
R2#show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
1.1.1.1 1 FULL/DROTHER 00:00:31 10.1.1.1 GigabitEthernet2
3.3.3.3 1 FULL/DR 00:00:39 10.1.1.3 GigabitEthernet2
R3はR1をDROTHER、R2をBDRとして認識していることが確認できます。
R3#show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
1.1.1.1 1 FULL/DROTHER 00:00:32 10.1.1.1 GigabitEthernet2
2.2.2.2 1 FULL/BDR 00:00:35 10.1.1.2 GigabitEthernet2
LSAの状態確認
R1、R2、R3共に、LSA Type 1を生成していることが確認できます。また、DRであるR3がLSA Type 2を生成していることが確認できます。
R1#show ip ospf database
OSPF Router with ID (1.1.1.1) (Process ID 1)
Router Link States (Area 0)
Link ID ADV Router Age Seq# Checksum Link count
1.1.1.1 1.1.1.1 18 0x80000006 0x00A069 1
2.2.2.2 2.2.2.2 23 0x80000006 0x00A938 2
3.3.3.3 3.3.3.3 19 0x80000005 0x008a4d 2
Net Link States (Area 0)
Link ID ADV Router Age Seq# Checksum
10.1.1.3 3.3.3.3 32 0x80000001 0x00B250
以下はR1が生成したLSA Type 1になります。Link State IDにLSAの生成元のR1のRouter ID、Link Type 2(Transit)のLinkのLink IDにDRのIPアドレスである10.1.1.3が格納されていることが確認できます。
R1#show ip ospf database router adv-router 1.1.1.1
OSPF Router with ID (1.1.1.1) (Process ID 1)
Router Link States (Area 0)
LS age: 144
Options: (No TOS-capability, DC)
LS Type: Router Links
Link State ID: 1.1.1.1
Advertising Router: 1.1.1.1
LS Seq Number: 80000006
Checksum: 0xA069
Length: 36
Number of Links: 1
Link connected to: a Transit Network
(Link ID) Designated Router address: 10.1.1.3
(Link Data) Router Interface address: 10.1.1.1
Number of MTID metrics: 0
TOS 0 Metrics: 1
以下はR2が生成したLSA Type 1になります。Link State IDにLSAの生成元のR2のRouter ID、Link Type 2(Transit)のLinkのLink IDにDRのIPアドレスである10.1.1.3が格納されていることが確認できます。
R1#show ip ospf database router adv-router 2.2.2.2
OSPF Router with ID (1.1.1.1) (Process ID 1)
Router Link States (Area 0)
LS age: 150
Options: (No TOS-capability, DC)
LS Type: Router Links
Link State ID: 2.2.2.2
Advertising Router: 2.2.2.2
LS Seq Number: 80000006
Checksum: 0xa938
Length: 48
Number of Links: 2
Link connected to: a Stub Network
(Link ID) Network/subnet number: 10.2.2.0
(Link Data) Network Mask: 255.255.255.0
Number of MTID metrics: 0
TOS 0 Metrics: 1
Link connected to: a Transit Network
(Link ID) Designated Router address: 10.1.1.3
(Link Data) Router Interface address: 10.1.1.2
Number of MTID metrics: 0
TOS 0 Metrics: 1
以下はR3が生成したLSA Type 1になります。Link State IDにLSAの生成元のR3のRouter ID、Link Type 2(Transit)のLinkのLink IDにDRのIPアドレスである10.1.1.3が格納されていることが確認できます。
R1#show ip ospf database router adv-router 3.3.3.3
OSPF Router with ID (1.1.1.1) (Process ID 1)
Router Link States (Area 0)
LS age: 150
Options: (No TOS-capability, DC)
LS Type: Router Links
Link State ID: 3.3.3.3
Advertising Router: 3.3.3.3
LS Seq Number: 80000005
Checksum: 0x8a4d
Length: 48
Number of Links: 2
Link connected to: a Stub Network
(Link ID) Network/subnet number: 10.3.3.0
(Link Data) Network Mask: 255.255.255.0
Number of MTID metrics: 0
TOS 0 Metrics: 1
Link connected to: a Transit Network
(Link ID) Designated Router address: 10.1.1.3
(Link Data) Router Interface address: 10.1.1.3
Number of MTID metrics: 0
TOS 0 Metrics: 1
LSA Type 2の詳細はshow ip ospf database network adv-router <router-id>コマンドで確認可能です。
以下はR3が生成したLSA Type 2になります。Link State IDにR3のg3のIPアドレスである10.1.1.3、Network MaskにR3のg3のサブネットマスクである255.255.255.0が格納されていることが確認できます。また、Attached RouterにR1、R2、R3のRouter IDが格納されていることが確認できます。
R1#show ip ospf database network adv-router 3.3.3.3
OSPF Router with ID (1.1.1.1) (Process ID 1)
Net Link States (Area 0)
LS age: 192
Options: (No TOS-capability, DC)
LS Type: Network Links
Link State ID: 10.1.1.3 (address of Designated Router)
Advertising Router: 3.3.3.3
LS Seq Number: 80000001
Checksum: 0xB250
Length: 36
Network Mask: /24
Attached Router: 3.3.3.3
Attached Router: 1.1.1.1
Attached Router: 2.2.2.2
SPFの計算結果の確認
R1はLSA Type 1とLSA Type 2をつなぎ合わせることで、10.2.2.0/24と10.3.3.0/24へのネクストホップとコストを計算可能です。
R1#show ip ospf rib
OSPF Router with ID (1.1.1.1) (Process ID 1)
Base Topology (MTID 0)
OSPF local RIB
Codes: * - Best, > - Installed in global RIB
* 10.1.1.0/24, Intra, cost 1, area 0, Connected
via 10.1.1.1, GigabitEthernet2
*> 10.2.2.0/24, Intra, cost 2, area 0
via 10.1.1.2, GigabitEthernet2
*> 10.3.3.0/24, Intra, cost 2, area 0
via 10.1.1.3, GigabitEthernet2
ルーティングテーブルの確認
R1のルーティングに10.2.2.0/24と10.3.3.0/24が存在することが確認できます。
R1#show ip route ospf
10.0.0.0/8 is variably subnetted, 4 subnets, 2 masks
O 10.2.2.0/24 [110/2] via 10.1.1.2, 00:11:02, GigabitEthernet2
O 10.3.3.0/24 [110/2] via 10.1.1.3, 00:10:48, GigabitEthernet2
疎通確認
R1の10.1.1.1からR2の10.2.2.2とR3の10.3.3.3へのPingが成功したことから、R1はBroadcastネットワークのインタフェース上でOSPF経由で学習した10.2.2.0/24と10.3.3.0/24に到達可能なことが確認できます。
R1#ping 10.2.2.2 source 10.1.1.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.2.2.2, timeout is 2 seconds:
Packet sent with a source address of 10.1.1.1
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms
R1#ping 10.3.3.3 source 10.1.1.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.3.3.3, timeout is 2 seconds:
Packet sent with a source address of 10.1.1.1
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms
コメント