| 確認 |
シスコ・ルーターは,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_MULTIPOINT…Hello30秒/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間隔を手動で設定して両者を合わせてやれば,ネイバーが確立します。
ただし,代表ルーター選出の有無が違うとダメだから,これは気をつけましょう。
|
|