NBMAネットワーク(ブロードキャスト)
・フレームリレー上でOSPFを動作させる
・OSPFのネットワーク・タイプを(デフォルトのNON_BROADCASTから)BROADCASTに変更して,経路情報を交換させる
ネットワーク構成(画像を別ウインドウで表示)
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 broadcast ←ネットワーク・タイプをBROADCASTに変更する
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 broadcast ←ネットワーク・タイプをBROADCASTに変更する
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 broadcast ←ネットワーク・タイプをBROADCASTに変更する
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パケットをやりとりする方法がありました。
IOS10.0より前はこの方法しか使えなかったのですが,IOS10.0以降はネットワーク・タイプをブロードキャストが転送できるタイプに変えて解決するという方法が使えます。

●設定の確認
まずは,
ip ospf network broadcast
というコマンドを入れる前の,OSPFインタフェースのデフォルトのネットワーク・タイプを確認しましょう。

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:12
 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.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:01
 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)


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

●動作の確認
ルーター同士がHelloパケットをやりとりできないのは,ネットワーク・タイプがNON_BROADCASTになっているからです。
そこで,ネットワーク・タイプを,ブロードキャストがやりとりできる「BROADCAST」というタイプに変更してしまいましょう。

そのコマンドが,ip ospf netowork broadcastです。
RouterAのSerial0インタフェースにこのコマンドを入力します。

RouterA(config)#interface serial 0
RouterA(config-if)#ip ospf network broadcast


再び,Serial0インタフェースのネットワーク・タイプを確認してみましょう。
するとネットワーク・タイプが,「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 BROADCAST, Cost: 64
 Transmit Delay is 1 sec, State WAITING, Priority 1
 No designated router on this network
 No backup designated router on this network
 Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
  Hello due in 00:00:07
  Wait time before Designated router selection 00:00:17
 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 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:03
 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)


この状態で,RouterBとネイバーが確立できるのでしょうか。
RouterBのOSPFインタフェースは,デフォルトのNON_BROADCASTのままです。
RouterBがRouterAから受信しているHelloパケットを見てみます。

RouterB#debug ip ospf hello
OSPF hello events debugging is on
00:37:09: OSPF: Rcv hello from 192.168.1.1 area 0 from Serial0 192.168.1.1
00:37:09: OSPF: Mismatched hello parameters from 192.168.1.1
00:37:09: OSPF: Dead R 40 C 120, Hello R 10 C 30 Mask R 255.255.255.0 C 255.255.255.0
00:37:19: OSPF: Rcv hello from 192.168.1.1 area 0 from Serial0 192.168.1.1
00:37:19: OSPF: Mismatched hello parameters from 192.168.1.1
00:37:19: OSPF: Dead R 40 C 120, Hello R 10 C 30 Mask R 255.255.255.0 C 255.255.255.0

「Mismatched hello parameters」と表示されました。
「Helloパケットのパラメータがミスマッチである」というエラー・メッセージです。
その下の行に,パラメータの違いが示されています。
「R」が相手(RouterA)のパラメータで,「C」が自分(RouterB)のパラメータです。
見ると,Dead間隔が40秒と120秒,Hello間隔が10秒と30秒になっており,確かに両ルーターでパラメータが違っています。
ルーター同士がOSPFでネイバーを確立する条件は,Helloパケットに記述されている以下のパラメータが一致している必要があります。

・エリア番号
・サブネット・マスク
・Hello/Dead間隔
・スタブエリア・フラグ

つまり,Hello/Dead間隔が違うと,OSPFルーター同士でネイバーが確立できません。
(アジャセンシーを確立するためには,Helloパラメータではありませんが,代表ルーター選出の必要性も一致している必要があります。これについては,NBMAネットワーク(ポイントツーマルチポイント)の回を見て下さい。)

そこで,RouterBのSerial0インタフェースにもip ospf network broadcastコマンドを入れて,ネットワーク・タイプをRouterAと同じBROADCASTにします。

RouterB(config)#interface serial 0
RouterB(config-if)#ip ospf network broadcast
00:52:09: %OSPF-5-ADJCHG: Process 1, Nbr 192.168.1.1 on Serial0 from LOADING to FULL, Loading Done

RouterA(192.168.1.1)とアジャセンシーを確立したことを知らせるメッセージが表示されました。
ネイバーを調べてみると,RouterA(192.168.1.1)とアジャセンシーが確立されていることがわかります。

RouterB#show ip ospf neighbor

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


RouterAからHelloパケットがどのように出ているのか見てみましょう。
デバッグでIPパケットを見てみます。

RouterA#debug ip packet detail
IP packet debugging is on (detailed)
RouterA#
00:54:46: IP: s=192.168.0.1 (local), d=224.0.0.5 (Ethernet0), len 64, sending broad/multicast, proto=89
00:54:49: IP: s=192.168.1.1 (local), d=224.0.0.5 (Serial0), len 72, sending broad/multicast, proto=89
00:54:52: IP: s=192.168.1.3 (Serial0), d=224.0.0.5, len 68, rcvd 0, proto=89
00:54:52: IP: s=192.168.1.3 (Serial0), d=224.0.0.5, len 68, rcvd 0, proto=89
00:54:54: IP: s=192.168.1.2 (Serial0), d=224.0.0.5, len 68, rcvd 0, proto=89
00:54:54: IP: s=192.168.1.2 (Serial0), d=224.0.0.5, len 68, rcvd 0, proto=89
00:54:56: IP: s=192.168.0.1 (local), d=224.0.0.5 (Ethernet0), len 64, sending broad/multicast, proto=89


OSPFのHelloパケットが,マルチキャスト(224.0.0.5)で出ています。
両ルーター(RouterAとRouterB)にip ospf network broadcastコマンドを入れたことによって,お互いがマルチキャストでHelloパケットをやりとりできるようになったわけです。

同様に,RouterCのSerial0インタフェースのタイプもBROADCASTに設定します。

RouterC(config)#interface serial 0
RouterC(config-if)#ip ospf network broadcast
00:53:20: %OSPF-5-ADJCHG: Process 1, Nbr 192.168.1.1 on Serial0 from LOADING to FULL, Loading Done


RouterBと同様に,RouterAとアジャセンシーが確立されました。

RouterC#show ip ospf neighbor

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


これで3台のルーター同士が通信できるようになりました。

ただし,BROADCASTタイプだとHelloパケットは10秒間隔で送出されるので,WAN回線(フレームリレー)の帯域を食います。
やはりBROADCASTは,LAN(イーサネット)などの帯域の余裕のあるネットワーク向きと言えます。
そのため現在は,フレームリレーの場合,「デフォルトのNON_BROADCASTでいちいちneighbor設定するのが面度だ」と思ったら,同じHello間隔が30秒のPOINT_TO_MULTIPOINTに変更するのが一般的です。

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