NBMAネットワーク(ポイントツーマルチポイント)
・フレームリレー上でOSPFを動作させる
・OSPFのネットワーク・タイプを(デフォルトのNON_BROADCASTから)POINT_TO_MULTIPOINTに変更して,経路情報を交換させる
ネットワーク構成(画像を別ウインドウで表示)
RouterAのコンフィグ
!
version 12.2
no service single-slot-reload-enable
service timestamps debug uptime
service timestamps log uptime
no service password-encryption
!
hostname RouterA
!
interface Ethernet0
ip address 192.168.0.1 255.255.255.0
no keepalive
!
interface Serial0
ip address 192.168.1.1 255.255.255.0
encapsulation frame-relay
ip ospf network point-to-multipoint ←ネットワーク・タイプをPOINT_TO_MULTIPOINTに変更する
frame-relay map ip 192.168.1.2 100 broadcast
frame-relay map ip 192.168.1.3 300 broadcast
frame-relay interface-dlci 100
frame-relay interface-dlci 300
!
router ospf 1
log-adjacency-changes
network 0.0.0.0 255.255.255.255 area 0
!
line con 0
transport input none
line aux 0
line vty 0 4
login
!
end
RouterBのコンフィグ
!
version 12.2
no service single-slot-reload-enable
service timestamps debug uptime
service timestamps log uptime
no service password-encryption
!
hostname RouterB
!
interface Ethernet0
ip address 192.168.2.1 255.255.255.0
no keepalive
!
interface Serial0
ip address 192.168.1.2 255.255.255.0
encapsulation frame-relay
ip ospf network point-to-multipoint ←ネットワーク・タイプをPOINT_TO_MULTIPOINTに変更する
ip ospf priority 0
no fair-queue
frame-relay map ip 192.168.1.1 200 broadcast
frame-relay map ip 192.168.1.3 200 broadcast
frame-relay interface-dlci 200
!
router ospf 1
log-adjacency-changes
network 0.0.0.0 255.255.255.255 area 0
!
line con 0
transport input none
line aux 0
line vty 0 4
login
!
end
RouterCのコンフィグ
!
version 12.2
no service single-slot-reload-enable
service timestamps debug uptime
service timestamps log uptime
no service password-encryption
!
hostname RouterC
!
interface Ethernet0
ip address 192.168.3.1 255.255.255.0
no keepalive
!
interface Serial0
ip address 192.168.1.3 255.255.255.0
encapsulation frame-relay
ip ospf network point-to-multipoint ←ネットワーク・タイプをPOINT_TO_MULTIPOINTに変更する
ip ospf priority 0
frame-relay map ip 192.168.1.1 400 broadcast
frame-relay map ip 192.168.1.2 400 broadcast
!
router ospf 1
log-adjacency-changes
network 0.0.0.0 255.255.255.255 area 0
!
line con 0
transport input none
line aux 0
line vty 0 4
login
!
end
FRswitchのコンフィグ
!
version 12.2
no service single-slot-reload-enable
service timestamps debug uptime
service timestamps log uptime
no service password-encryption
!
hostname FRswitch
!
frame-relay switching
!
interface Serial0
no ip address
encapsulation frame-relay
clockrate 64000
frame-relay intf-type dce
frame-relay route 100 interface Serial1 200
frame-relay route 300 interface Serial2 400
!
interface Serial1
no ip address
encapsulation frame-relay
clockrate 64000
frame-relay intf-type dce
frame-relay route 200 interface Serial0 100
!
interface Serial2
no ip address
encapsulation frame-relay
clockrate 64000
frame-relay intf-type dce
frame-relay route 400 interface Serial0 300
!
line con 0
transport input none
line aux 0
line vty 0 4
login
!
end
確認
シスコ・ルーターは,OSPFインタフェースにフレームリレーを使っていると,インタフェースのネットワーク・タイプを「NON_BROADCAST」にするので,ブロードキャスト(マルチキャスト)・パケットをインタフェースから出さなくなります。
その対策として,
neighborコマンドを使って,ユニキャストでHelloパケットをやりとりする(ノンブロードキャスト)
ネットワーク・タイプをNON_BROADCASTからBROADCASTに変更する(ブロードキャスト)
という方法があります。
そしてもう一つ,
・ネットワーク・タイプをNON_BROADCASTからPOINT_TO_MULTIPOINTに変更する(ポイントツーマルチポント)
という方法があります。
OSPF設定でneighborコマンドを入れる必要がなく,Hello/Dead間隔がデフォルトのNON_BROADCASTと一緒なので,現在フレームリレーでOSPFを使う際には,この方法が一般的に使われています。

●設定の確認
ネットワーク・タイプをPOINT_TO_MULTIPOINT(ポイントツーマルチポント)に変更するには,

ip ospf network point-to-multipoint

というコマンドを3台のルーターに入れればOKです。
このコマンドを入れる前のRouterAの状態から見てみましょう。

ネットワーク・タイプを特に指定しなければ,フレームリレーのインタフェースはNON_BROADCASTというタイプになります。

RouterA#show ip ospf interface
Serial0 is up, line protocol is up
 Internet Address 192.168.1.1/24, Area 0
 Process ID 1, Router ID 192.168.1.1, Network Type NON_BROADCAST, Cost: 64
 Transmit Delay is 1 sec, State DR, Priority 1
 Designated Router (ID) 192.168.1.1, Interface address 192.168.1.1
 No backup designated router on this network
 Timer intervals configured, Hello 30, Dead 120, Wait 120, Retransmit 5
  Hello due in 00:00:26
 Index 2/2, flood queue length 0
 Next 0x0(0)/0x0(0)
 Last flood scan length is 0, maximum is 0
 Last flood scan time is 0 msec, maximum is 0 msec
 Neighbor Count is 0, Adjacent neighbor count is 0
 Suppress hello for 0 neighbor(s)
Ethernet0 is up, line protocol is up
 Internet Address 192.168.0.1/24, Area 0
 Process ID 1, Router ID 192.168.1.1, Network Type BROADCAST, Cost: 10
 Transmit Delay is 1 sec, State DR, Priority 1
 Designated Router (ID) 192.168.1.1, Interface address 192.168.0.1
 No backup designated router on this network
 Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
  Hello due in 00:00:06
 Index 1/1, flood queue length 0
 Next 0x0(0)/0x0(0)
 Last flood scan length is 0, maximum is 0
 Last flood scan time is 0 msec, maximum is 0 msec
 Neighbor Count is 0, Adjacent neighbor count is 0
 Suppress hello for 0 neighbor(s)


この状態では,フレームリレーのルーター同士で通信できません。
ネットワーク・タイプがNON_BROADCASTのインタフェースには,ブロードキャスト(マルチキャスト)・パケットを出さないので,ルーター同士でHelloパケットをやりとりできないからです。
(以上のことは,詳しくはNBMAネットワーク(ノンブロードキャスト)の回を見てください)。

●動作の確認
それでは,RouterAのネットワーク・タイプをPOINT_TO_MULTIPOINTに変更します。
変更すれば,マルチキャスト・パケットがやりとりできるようになるはずです。

RouterA(config)#interface serial 0
RouterA(config-if)#ip ospf network point-to-multipoint
RouterA(config-if)#
01:04:51: %OSPF-5-ADJCHG: Process 1, Nbr 192.168.2.1 on Serial0 from LOADING to FULL, Loading Done

01:04:51: %OSPF-5-ADJCHG: Process 1, Nbr 192.168.3.1 on Serial0 from LOADING to FULL, Loading Done

設定すると,RouterB(192.168.2.1)とRouterC(192.168.3.1)とアジャセンシーを確立したメッセージが出てきました。

再びRouterAのインタフェースのステータスを見てみます。
すると,ネットワーク・タイプが「POINT_TO_MULTIPOINT」に変更されたことがわかります。

RouterA#show ip ospf interface
Serial0 is up, line protocol is up
 Internet Address 192.168.1.1/24, Area 0
 Process ID 1, Router ID 192.168.1.1, Network Type POINT_TO_MULTIPOINT, Cost: 64
 Transmit Delay is 1 sec, State POINT_TO_MULTIPOINT,
 Timer intervals configured, Hello 30, Dead 120, Wait 120, Retransmit 5
  Hello due in 00:00:13
 Index 2/2, flood queue length 0
 Next 0x0(0)/0x0(0)
 Last flood scan length is 1, maximum is 2
 Last flood scan time is 4 msec, maximum is 4 msec
 Neighbor Count is 2, Adjacent neighbor count is 2
 Adjacent with neighbor 192.168.2.1
 Adjacent with neighbor 192.168.3.1
 Suppress hello for 0 neighbor(s)
Ethernet0 is up, line protocol is up
 Internet Address 192.168.0.1/24, Area 0
 Process ID 1, Router ID 192.168.1.1, Network Type BROADCAST, Cost: 10
 Transmit Delay is 1 sec, State DR, Priority 1
 Designated Router (ID) 192.168.1.1, Interface address 192.168.0.1
 No backup designated router on this network
 Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
  Hello due in 00:00:04
 Index 1/1, flood queue length 0
 Next 0x0(0)/0x0(0)
 Last flood scan length is 0, maximum is 0
 Last flood scan time is 0 msec, maximum is 0 msec
 Neighbor Count is 0, Adjacent neighbor count is 0
 Suppress hello for 0 neighbor(s)


RouterAのネイバーを見てみると,RouterBとRouterCがネイバーとして登録されています。

RouterA#show ip ospf neighbor

Neighbor ID  Pri   State   Dead Time  Address    Interface
192.168.2.1   0  FULL/ -  00:01:51   192.168.1.2  Serial0
192.168.3.1   0  FULL/ -  00:01:45   192.168.1.3  Serial0


これでOK…と思いきや!
RouterAのルーティング・テーブルを見てみると…

RouterA#show ip route
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
* - candidate default, U - per-user static route, o - ODR
P - periodic downloaded static route

Gateway of last resort is not set

C 192.168.0.0/24 is directly connected, Ethernet0
C 192.168.1.0/24 is directly connected, Serial0


OSPFで経路情報が来ていません。

これは,代表ルーターを選出するかどうかの動作が,両ルーターで違うからです
RouterA(POINT_TO_MULTIPOINT)は,代表ルーターは選出しません。
一方のRouterB(NON_BROADCAST)は,代表ルーターを選出します。
この解釈が違うので,両ルーターで正しく経路情報を交換できないのです。

その証拠に,RouterBのネイバーを見てると,RouterAを代表ルーターだと思い込んでいます。

RouterB#show ip ospf neighbor

Neighbor ID  Pri   State   Dead Time  Address    Interface
192.168.1.1   1  FULL/DR  00:01:42   192.168.1.1  Serial0


一方RouterAのPOINT_TO_MULTIPOINTは,それぞれのリンクをポイントツーポイントとして捕らえるので,代表ルーターは必要としない「-」という表示になっています。

RouterA#show ip ospf neighbor

Neighbor ID  Pri   State   Dead Time  Address    Interface
192.168.2.1   0  FULL/ -  00:01:51   192.168.1.2  Serial0
192.168.3.1   0  FULL/ -  00:01:45   192.168.1.3  Serial0


そこで,RouterBもRouterAと同じくPOINT_TO_MULTIPOINTに変更します。
こうすれば,両ルーターでネットワーク・タイプが合うので,きちんと経路情報がやりとりできるはずです。

RouterA(config)#interface serial 0
RouterB(config-if)#ip ospf network point-to-multipoint
RouterB(config-if)#
02:38:58: %OSPF-5-ADJCHG: Process 1, Nbr 192.168.1.1 on Serial0 from FULL to DOWN, Neighbor Down: Interface down or detached
02:39:21: %OSPF-5-ADJCHG: Process 1, Nbr 192.168.1.1 on Serial0 from LOADING to FULL, Loading Done


いったんRouterAとのネイバーがダウンして,23秒後にアジャセンシーを確立しています。
再びRouterBのネイバーを見てみると,今度は代表ルーターは表示されません。

RouterB#show ip ospf neighbor

Neighbor ID  Pri   State   Dead Time  Address    Interface
192.168.1.1   1  FULL/ -  00:01:46   192.168.1.1  Serial0


RouterAとポイントツーポイントの形態でネイバーを確立したことがわかります。

同様に,RouterCもPOINT_TO_MULTIPOINTに設定します。

RouterA(config)#interface serial 0
RouterC(config-if)#ip ospf network point-to-multipoint
RouterC(config-if)#
02:42:05: %OSPF-5-ADJCHG: Process 1, Nbr 192.168.1.1 on Serial0 from FULL to DOWN, Neighbor Down: Interface down or detached
02:42:22: %OSPF-5-ADJCHG: Process 1, Nbr 192.168.1.1 on Serial0 from LOADING toFULL, Loading Done


RouterAのルーティング・テーブルを見てみましょう。

RouterA#show ip route
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
* - candidate default, U - per-user static route, o - ODR
P - periodic downloaded static route

Gateway of last resort is not set

C 192.168.0.0/24 is directly connected, Ethernet0
  192.168.1.0/24 is variably subnetted, 3 subnets, 2 masks
C  192.168.1.0/24 is directly connected, Serial0
O  192.168.1.3/32 [110/64] via 192.168.1.3, 00:02:01, Serial0
O  192.168.1.2/32 [110/64] via 192.168.1.2, 00:02:01, Serial0

O 192.168.2.0/24 [110/74] via 192.168.1.2, 00:02:01, Serial0
O 192.168.3.0/24 [110/74] via 192.168.1.3, 00:02:01, Serial0


ルーティング・テーブルにOSPFの経路情報が表示されました。
ちなみに,/32の経路情報は,ポイントツーポイントだと必ずできます。

ちょっと回り道しましたが,結局何が大切かというと,
OSPFでは,ルーター同士でネットワーク・タイプを合わせないとダメ」ということです。

●番外編(違うネットワーク・タイプ同士でOSPFを動作させる)
ネットワーク・タイプが違っても,アジャセンシー確立の条件さえ満たしていれば,OSPFで経路情報をやりとりできるようになります。

【アジャセンシー確立の条件】
・代表ルーター選出の必要性
・エリア
・サブネット・マスク
・Hello/Dead間隔
が,ルーター同士で一致している必要があります。

Hello/Dead間隔は,手動で合わせてやればOKです。
代表ルーター選出の有無は手動で設定できないので,これはすでに条件が一致しているタイプ同士である必要があります。
これらは,デフォルトでは,以下のようになっていす。

【Hello/Dead間隔とDR/BDR選出の有無】
・BROADCAST…………… Hello10秒/Dead 40秒,DR/BDR選出
・NON_BROADCAST……… Hello30秒/Dead120秒,DR/BDR選出
POINT_TO_POINT Hello10秒/Dead 40秒,DR/BDR非選出
POINT_TO_MULTIPOINTHello30秒/Dead120秒,DR/BDR非選出
・POINT_TO_MULTIPOINT NON_BROADCAST…POINT_TO_MULTIPOINTと同じ

例えば,POINT_TO_POINTのルーターとPOINT_TO_MULTIPOINTのルーターでも,Hello/Dead間隔を合わせてやればOSPFが正しく動作するわけです。

実際にやってみましょう。
RouterBのネットワーク・タイプを,現在のPOINT_TO_POINTMULTIPOINTからPOINT_TO_POINTに変更します。

RouterB(config)#interface serial 0
RouterB(config-if)#ip ospf network point-to-point
RouterB(config-if)#
02:53:40: %OSPF-5-ADJCHG: Process 1, Nbr 192.168.1.1 on Serial0 from FULL to DOWN, Neighbor Down: Interface down or detached

すると,RouterAとのネイバーがダウンしました。
RouterBのネイバーを見ると,やはり何も表示されません。

RouterB#show ip ospf neighbor

RouterB#


デバッグでHelloパケットを調べてみると,やはり,Helloパケットのパラメータが一致していないというエラー・メッセージが表示されます。

RouterB#debug ip ospf hello
OSPF hello events debugging is on
RouterB#
02:54:51: OSPF: Rcv hello from 192.168.1.1 area 0 from Serial0 192.168.1.1
02:54:51: OSPF: Mismatched hello parameters from 192.168.1.1
02:54:51: OSPF: Dead R 120 C 40, Hello R 30 C 10

RouterBのインタフェースのOSPFパラメータを見てみましょう。
Hello間隔は10秒,Dead間隔は40秒になっています。
POINT_TO_POINTの場合,デフォルトでこの値になります。

RouterB#show ip ospf interface
Serial0 is up, line protocol is up
 Internet Address 192.168.1.2/24, Area 0
 Process ID 1, Router ID 192.168.2.1, Network Type POINT_TO_POINT, Cost: 64
 Transmit Delay is 1 sec, State POINT_TO_POINT,
 Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
  Hello due in 00:00:09
 Index 2/2, flood queue length 0
 Next 0x0(0)/0x0(0)
 Last flood scan length is 1, maximum is 1
 Last flood scan time is 0 msec, maximum is 0 msec
 Neighbor Count is 0, Adjacent neighbor count is 0
 Suppress hello for 0 neighbor(s)
Ethernet0 is up, line protocol is up
 Internet Address 192.168.2.1/24, Area 0
 Process ID 1, Router ID 192.168.2.1, Network Type BROADCAST, Cost: 10
 Transmit Delay is 1 sec, State DR, Priority 1
 Designated Router (ID) 192.168.2.1, Interface address 192.168.2.1
 No backup designated router on this network
 Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
  Hello due in 00:00:07
 Index 1/1, flood queue length 0
 Next 0x0(0)/0x0(0)
 Last flood scan length is 0, maximum is 0
 Last flood scan time is 0 msec, maximum is 0 msec
 Neighbor Count is 0, Adjacent neighbor count is 0
 Suppress hello for 0 neighbor(s)


ネイバーがダウンしたのは,このHelloとDeadの間隔がRouterAと違うからです。
そこで,RouterBに手動でこれらの値を設定して,値をRouterAと合わせます。
Hello間隔を30秒に,Dead間隔を120秒にセットします。

RouterB(config-if)#ip ospf hello-interval 30
RouterB(config-if)#ip ospf dead-interval 120
RouterB(config-if)#
03:00:44: %OSPF-5-ADJCHG: Process 1, Nbr 192.168.1.1 on Serial0 from LOADING to FULL, Loading Done


設定すると,RouterA(192.168.1.1)とアジャセンシーを確立したメッセージが出ました。
ネイバーを見てみると,しっかりとRouterAがアジャセンシーとして登録されています。

RouterB#show ip ospf neighbor

Neighbor ID  Pri   State   Dead Time  Address    Interface
192.168.1.1   1  FULL/ -  00:01:52   192.168.1.1  Serial0


RouterBのOSPFインタフェースの動作パラメータを確認すると,Hello間隔が30秒に,Dead間隔が120秒に変更されたことが確認できます。

RouterB#show ip ospf interface
Serial0 is up, line protocol is up
Internet Address 192.168.1.2/24, Area 0
Process ID 1, Router ID 192.168.2.1, Network Type POINT_TO_POINT, Cost: 64
Transmit Delay is 1 sec, State POINT_TO_POINT,
Timer intervals configured, Hello 30, Dead 120, Wait 120, Retransmit 5
Hello due in 00:00:07
Index 2/2, flood queue length 0
Next 0x0(0)/0x0(0)
Last flood scan length is 1, maximum is 1
Last flood scan time is 0 msec, maximum is 0 msec
Neighbor Count is 1, Adjacent neighbor count is 1
Adjacent with neighbor 192.168.1.1
Suppress hello for 0 neighbor(s)
Ethernet0 is up, line protocol is up
Internet Address 192.168.2.1/24, Area 0
Process ID 1, Router ID 192.168.2.1, Network Type BROADCAST, Cost: 10
Transmit Delay is 1 sec, State DR, Priority 1
Designated Router (ID) 192.168.2.1, Interface address 192.168.2.1
No backup designated router on this network
Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
Hello due in 00:00:07
Index 1/1, flood queue length 0
Next 0x0(0)/0x0(0)
Last flood scan length is 0, maximum is 0
Last flood scan time is 0 msec, maximum is 0 msec
Neighbor Count is 0, Adjacent neighbor count is 0
Suppress hello for 0 neighbor(s)


ルーティング・テーブルにも,きちんとOSPFの経路情報が登録されています。

RouterB#show ip route
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
* - candidate default, U - per-user static route, o - ODR
P - periodic downloaded static route

Gateway of last resort is not set

03:05:47: %SYS-5-CONFIG_I: Configured from console by console
O 192.168.0.0/24 [110/74] via 192.168.1.1, 00:04:49, Serial0
  192.168.1.0/24 is variably subnetted, 3 subnets, 2 masks
O  192.168.1.1/32 [110/64] via 192.168.1.1, 00:04:49, Serial0
C  192.168.1.0/24 is directly connected, Serial0
O  192.168.1.3/32 [110/128] via 192.168.1.1, 00:04:49, Serial0
C 192.168.2.0/24 is directly connected, Ethernet0
O 192.168.3.0/24 [110/138] via 192.168.1.1, 00:04:49, Serial0


このように,ネットワーク・タイプが違っても,Hello/Dead間隔を手動で設定して両者を合わせてやれば,ネイバーが確立します。
ただし,代表ルーター選出の有無が違うとダメだから,これは気をつけましょう。

OSPFラボ
OSPFの基本設定
パッシブ・インタフェースの設定
プライオリティの設定と代表ルーターの選出
NBMAネットワーク(ノンブロードキャスト)
NBMAネットワーク(ブロードキャスト)
NBMAネットワーク(ポイントツーマルチポイント)
OSPFコストの設定
エリア設定(標準,スタブ,トータリースタブ)
エリア設定(NSSA,トータリースタブNSSA)
OSPFバーチャルリンク
OSPFの経路集約
ネイバー認証
(ツール)OSPFトポロジ表示フラッシュ