はじめに
このドキュメントでは、Open Shortest Path First(OSPF)認証を設定し、OSPFネイバーを柔軟に認証できるようにする方法について説明します。
前提条件
要件
このドキュメントの読者は、OSPFルーティングプロトコルの基本概念に精通している必要があります。OSPFルーティングプロトコルについては、またはを参照してください。
使用するコンポーネント
このドキュメントの情報は、次のソフトウェアとハードウェアのバージョンに基づいています。
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
背景説明
このドキュメントでは、Open Shortest Path First(OSPF)ネイバーを認証するための柔軟性を備えた OSPF 認証の設定例を示します。安全な方法でルーティング アップデート情報を交換するために、OSPF で認証をイネーブルにすることができます。OSPF 認証は、None(またはヌル)、Simple、または MD5 のいずれかです。認証方式では「なし」は、OSPFに認証が使用されないことを意味し、これがデフォルトの方式です。Simple 認証では、パスワードはクリアテキストでネットワークを通過します。MD5 認証では、パスワードはネットワークを通過しません。MD5 は RFC 1321 で規定されたメッセージ ダイジェスト アルゴリズムです。MD5 は最も安全な OSPF 認証のモードと見なされます。認証を設定する際には、エリア全体を同じタイプの認証で設定する必要があります。Cisco IOSソフトウェアリリース12.0(8)では、認証はインターフェイス単位でサポートされます。これは RFC 2328、付録 D に記載されています。
注:これらのサイトおよびツールにアクセスできるのは、登録されているシスコクライアントだけです。
OSPFでは、次の3種類の認証がサポートされています。
-
ヌル認証:Type 0 とも呼ばれ、パケット ヘッダーに認証情報が含まれていないことを意味します。これがデフォルト設定です。
-
プレーン テキスト認証:Type 1 とも呼ばれ、シンプルなクリアテキスト パスワードを使用します。
-
MD5 認証:Type 2 とも呼ばれ、MD5 暗号化パスワードを使用します。
認証を設定する必要はありません。認証を設定する場合は、同じセグメント上のすべてのピア ルータで、パスワードと認証方式が同じである必要があります。このドキュメントの例では、プレーン テキスト認証と MD5 認証の両方の設定を示します。
設定
このセクションでは、このドキュメントで説明する機能を設定するために必要な情報について記載しています。
ネットワーク図
このドキュメントでは、次のネットワーク設定を使用します。
ネットワーク図
プレーン テキスト認証の設定
プレーン テキスト認証は、より安全度が高い MD5 認証をエリア内のデバイスがサポートできない場合に使用されます。平文認証では、インターネットワークはスニファ攻撃に対して脆弱なままになります。この攻撃では、パケットがプロトコルアナライザによってキャプチャされ、パスワードが読み取られる可能性があります。ただし、プレーン テキスト認証は、セキュリティのためというよりも、OSPF の再設定を実行している場合に有効です。たとえば、ルータ間の通信を防止するために共通のブロードキャストネットワークを共有する古いOSPFルータと新しいOSPFルータでは、別々のパスワードを使用できます。 プレーン テキスト認証パスワードは、エリア全体で同じでなくても構いませんが、ネイバー間では同じである必要があります。
R2-2503 |
interface Loopback0
ip address 10.70.70.70 255.255.255.255
!
interface Serial0
ip address 192.168.64.10 255.255.255.0
ip ospf authentication-key c1$c0
!--- The Key value is set as "c1$c0 ". !--- It is the password that is sent across the network.
!
router ospf 10
log-adjacency-changes
network 10.70.0.70 0.255.255.255 area 0
network 192.168.10.10 0.0.0.255 area 0
area 0 authentication
!--- Plain text authentication is enabled for !--- all interfaces in Area 0.
|
R1-2503 |
interface Loopback0
ip address 172.16.10.36 255.255.255.240
!
interface Serial0
ip address 192.168.0.10 255.255.255.0
ip ospf authentication-key c1$c0
!--- The Key value is set as "c1$c0 ". !--- It is the password that is sent across the network.
!
router ospf 10
network 172.16.0.0 0.0.255.255 area 0
network 192.168.10.10 0.0.0.255 area 0
area 0 authentication
!--- Plain text authentication is enabled !--- for all interfaces in Area 0.
|
注:設定内のarea authentication コマンドは、特定エリア内のルータのすべてのインターフェイスに対して認証をイネーブルにします。インターフェイスで ip ospf authentication コマンドを使用し、そのインターフェイスに対してプレーン テキスト認証を設定することもできます。このコマンドは、インターフェイスが属しているエリアで別の認証方式が使われている場合や、認証方式が使われていない場合でも使用できます。このコマンドは、そのエリアに設定されている認証方式をオーバーライドします。これは、同じエリアに属する異なるインターフェイスで異なる認証方式を使用する必要がある場合に便利です
MD5 認証の設定
MD5 認証では、プレーン テキスト認証よりも安全度が高いセキュリティが提供されます。この方式では、MD5 アルゴリズムを使用して、OSPF パケットとパスワード(またはキー)の内容からハッシュ値を計算します。 このハッシュ値は、キー ID および減少しないシーケンス番号とともにパケットに入れられ、送信されます。同じパスワードを認識している受信側は、それ自身のハッシュ値を計算します。メッセージの内容が変更されない場合、受信側のハッシュ値は、メッセージとともに送信される送信側のハッシュ値と一致する必要があります。
キー ID により、ルータは複数のパスワードを参照できます。このため、パスワードの移行が簡単になり、安全度も高くなります。たとえば、あるパスワードを別のパスワードに移行するには、異なるキー ID でパスワードを設定してから、最初のキーを削除します。シーケンス番号は、リプレイ攻撃を防止します。この攻撃では OSPF パケットの捕捉と変更が行われた後、ルータに再送信されます。プレーン テキスト認証と同様、MD5 認証パスワードはエリア全体で同じである必要はありません。ただし、ネイバー間では同じある必要があります。
注:ご使用のすべてのルータ上で service password-encryption コマンドを設定することを推奨します。これにより、ルータはコンフィギュレーションファイルの表示中にパスワードを暗号化し、ルータコンフィギュレーションのテキストコピーを見られないように保護します。
R2-2503 |
interface Loopback0
ip address 10.70.70.70 255.255.255.255
!
interface Serial0
ip address 192.168.64.10 255.255.255.0
ip ospf message-digest-key 1 md5 c1$c0
!--- Message digest key with ID "1" and !--- Key value (password) is set as "c1$c0 ".
!
router ospf 10
network 192.168.10.10 0.0.0.255 area 0
network 10.70.0.70 0.255.255.255 area 0
area 0 authentication message-digest
!--- MD5 authentication is enabled for !--- all interfaces in Area 0.
|
R1-2503 |
interface Loopback0
ip address 172.16.10.36 255.255.255.240
!
interface Serial0
ip address 192.168.0.10 255.255.255.0
ip ospf message-digest-key 1 md5 c1$c0
!--- Message digest key with ID "1" and !--- Key (password) value is set as "c1$c0 ".
!
router ospf 10
network 172.16.0.0 0.0.255.255 area 0
network 192.168.10.10 0.0.0.255 area 0
area 0 authentication message-digest
!--- MD5 authentication is enabled for !--- all interfaces in Area 0.
|
注:この設定のarea authentication message-digest コマンドによって、特定エリア内のルータのインターフェイスすべてに対し、認証がイネーブルになります。インターフェイスでip ospf authentication message-digestコマンドを使用し、特定のインターフェイスに対してMD5認証を設定することもできます。このコマンドは、インターフェイスが属しているエリアで別の認証方式が使われている場合や、認証方式が使われていない場合でも使用できます。このコマンドは、そのエリアに設定されている認証方式をオーバーライドします。これは、同じエリアに属している別のインターフェイスで異なる認証方式を使用する必要がある場合に有効です。
確認
このセクションでは、設定が正しく動作していることを確認する方法について説明します。
プレーン テキスト認証の検証
次の出力に示すように、show ip ospf interface コマンドを使って、インターフェイスに対して設定されている認証タイプを表示できます。ここでは、Serial 0 インターフェイスはプレーン テキスト認証用に設定されます。
R1-2503#show ip ospf interface serial0
Serial0 is up, line protocol is up
Internet Address 192.168.0.10/24, Area 0
Process ID 10, Router ID 172.16.10.36, 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:04
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 4 msec
Neighbor Count is 0, Adjacent neighbor count is 0
Suppress hello for 0 neighbor(s)
Simple password authentication enabled
show ip ospf neighbor コマンドは、次の出力に示すように、ネイバーの詳細情報から構成されているネイバー テーブルを表示します。
R1-2503#show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
10.70.70.70 1 FULL/ - 00:00:31 192.168.64.10 Serial0
show ip route コマンドは、次の出力に示すように、ルーティング テーブルを表示します。
R1-2503#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
10.70.0.70/32 is subnetted, 1 subnets
O 10.70.70.70 [110/65] via 192.168.64.10, 00:03:28, Serial0
172.16.0.0/28 is subnetted, 1 subnets
C 172.16.10.32 is directly connected, Loopback0
C 192.168.10.10/24 is directly connected, Serial0
MD5 認証の検証
次の出力に示すように、show ip ospf interface コマンドを使って、インターフェイスに対して設定されている認証タイプを表示できます。この場合、シリアル0インターフェイスは、キーID 1のMD5認証用に設定されています。
R1-2503#show ip ospf interface serial0
Serial0 is up, line protocol is up
Internet Address 192.168.0.10/24, Area 0
Process ID 10, Router ID 172.16.10.36 , 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:05
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 4 msec
Neighbor Count is 1, Adjacent neighbor count is 1
Adjacent with neighbor 10.70.70.70
Suppress hello for 0 neighbor(s)
Message digest authentication enabled
Youngest key id is 1
show ip ospf neighbor コマンドは、次の出力に示すように、ネイバーの詳細情報から構成されているネイバー テーブルを表示します。
R1-2503#show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
10.70.70.70 1 FULL/ - 00:00:34 192.168.64.10 Serial0
R1-2503#
show ip route コマンドは、次の出力に示すように、ルーティング テーブルを表示します。
R1-2503#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
10.70.0.70/32 is subnetted, 1 subnets
O 10.70.70.70 [110/65] via 192.168.64.10, 00:01:23, Serial0
172.16.0.0/28 is subnetted, 1 subnets
C 172.16.10.32 is directly connected, Loopback0
C 192.168.10.10/24 is directly connected, Serial0
トラブルシュート
ここでは、設定のトラブルシューティングに役立つ情報について説明します。debug ip ospf adj コマンドを実行することによって、認証プロセスを捕捉できます。このdebugコマンドは、ネイバー関係が確立される前に実行する必要があります。
注:『debug コマンドに関する重要な情報の理解』を参照してから debug コマンドを使用してください。
プレーン テキスト認証のトラブルシューティング
R1-2503 に対する deb ip ospf adj 出力は、プレーン テキスト認証が成功した場合を示しています。
R1-2503#debug ip ospf adj
00:50:57: %LINK-3-UPDOWN: Interface Serial0, changed state to down
00:50:57: OSPF: Interface Serial0 going Down
00:50:57: OSPF: 172.16.10.36 address 192.168.0.10 on Serial0 is dead,
state DOWN
00:50:57: OSPF: 10.70.70.70 address 192.168.64.10 on Serial0 is dead,
state DOWN
00:50:57: %OSPF-5-ADJCHG: Process 10, Nbr 10.70.70.70 on Serial0 from
FULL to DOWN, Neighbor Down: Interface down or detached
00:50:58: OSPF: Build router LSA for area 0, router ID 172.16.10.36,
seq 0x80000009
00:50:58: %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial0,
changed state to down
00:51:03: %LINK-3-UPDOWN: Interface Serial0, changed state to up
00:51:03: OSPF: Interface Serial0 going Up
00:51:04: OSPF: Build router LSA for area 0, router ID 172.16.10.36,
seq 0x8000000A
00:51:04: %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial0,
changed state to up
00:51:13: OSPF: 2 Way Communication to 10.70.70.70 on Serial0,
state 2WAY
00:51:13: OSPF: Send DBD to 10.70.70.70 on Serial0 seq 0x2486 opt 0x42
flag 0x7 len 32
00:51:13: OSPF: Rcv DBD from 10.70.70.70 on Serial0 seq 0x19A4 opt 0x42
flag 0x7 len 32 mtu 1500 state EXSTART
00:51:13: OSPF: First DBD and we are not SLAVE
00:51:13: OSPF: Rcv DBD from 10.70.70.70 on Serial0 seq 0x2486 opt 0x42
flag 0x2 len 72 mtu 1500 state EXSTART
00:51:13: OSPF: NBR Negotiation Done. We are the MASTER
00:51:13: OSPF: Send DBD to 10.70.70.70 on Serial0 seq 0x2487 opt 0x42
flag 0x3 len 72
00:51:13: OSPF: Database request to 10.70.70.70
00:51:13: OSPF: sent LS REQ packet to 192.168.64.10, length 12
00:51:13: OSPF: Rcv DBD from 10.70.70.70 on Serial0 seq 0x2487 opt 0x42
flag 0x0 len 32 mtu 1500 state EXCHANGE
00:51:13: OSPF: Send DBD to 10.70.70.70 on Serial0 seq 0x2488 opt 0x42
flag 0x1 len 32
00:51:13: OSPF: Rcv DBD from 10.70.70.70 on Serial0 seq 0x2488 opt 0x42
flag 0x0 len 32 mtu 1500 state EXCHANGE
00:51:13: OSPF: Exchange Done with 10.70.70.70 on Serial0
00:51:13: OSPF: Synchronized with 10.70.70.70 on Serial0, state FULL
!--- Indicates the neighbor adjacency is established.
00:51:13: %OSPF-5-ADJCHG: Process 10, Nbr 10.70.70.70 on Serial0 from LOADING
to FULL, Loading Done
00:51:14: OSPF: Build router LSA for area 0, router ID 172.16.10.36,
seq 0x8000000B
R1-2503#
次に示す debug ip ospf adj コマンドの出力は、ルータで設定した認証タイプに不一致がある場合を示しています。この出力は、ルータ R1-2503 が Type 1 認証を使用する一方、ルータ R2-2503 が Type 0 認証用に設定されていることを示しています。つまり、ルータR1-2503は平文認証(タイプ1)用に設定され、ルータR2-2503はヌル認証(タイプ0)用に設定されています。
R1-2503#debug ip ospf adj
00:51:23: OSPF: Rcv pkt from 192.168.64.10, Serial0 : Mismatch
Authentication type.
!--- Input packet specified type 0, you use type 1.
次に示す debug ip ospf adj コマンドの出力は、認証キー(パスワード)値に不一致がある場合を示しています。この場合、両方のルータがプレーン テキスト認証用(Type 1)に設定されていても、キー(パスワード)値に不一致があります。
R1-2503#debug ip ospf adj
00:51:33: OSPF: Rcv pkt from 192.168.64.10, Serial0 : Mismatch
Authentication Key - Clear Text
MD5 認証のトラブルシューティング
これはMD5認証が成功したときの、R1-2503のdebug ip ospf adjコマンドの出力です。
R1-2503#debug ip ospf adj
00:59:03: OSPF: Send with youngest Key 1
00:59:13: OSPF: Send with youngest Key 1
00:59:17: %LINK-3-UPDOWN: Interface Serial0, changed state to down
00:59:17: OSPF: Interface Serial0 going Down
00:59:17: OSPF: 172.16.10.36 address 192.168.0.10 on Serial0 is dead,
state DOWN
00:59:17: OSPF: 10.70.70.70 address 192.168.64.10 on Serial0 is dead,
state DOWN
00:59:17: %OSPF-5-ADJCHG: Process 10, Nbr 10.70.70.70 on Serial0 from
FULL to DOWN, Neighbor Down: Interface down or detached
00:59:17: OSPF: Build router LSA for area 0, router ID 172.16.10.36,
seq 0x8000000E
00:59:18: %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial0,
changed state to down
00:59:32: %LINK-3-UPDOWN: Interface Serial0, changed state to up
00:59:32: OSPF: Interface Serial0 going Up
00:59:32: OSPF: Send with youngest Key 1
00:59:33: OSPF: Build router LSA for area 0, router ID 172.16.10.36,
seq 0x8000000F
00:59:33: %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial0,
changed state to up
00:59:42: OSPF: Send with youngest Key 1
00:59:42: OSPF: 2 Way Communication to 10.70.70.70 on Serial0,
state 2WAY
!--- Both neighbors configured for Message !--- digest authentication with Key ID "1".
00:59:42: OSPF: Send DBD to 10.70.70.70 on Serial0 seq 0x2125 opt 0x42
flag 0x7len 32
00:59:42: OSPF: Send with youngest Key 1
00:59:42: OSPF: Rcv DBD from 10.70.70.70 on Serial0 seq 0x11F3 opt 0x42
flag 0x7 len 32 mtu 1500 state EXSTART
00:59:42: OSPF: First DBD and we are not SLAVE
00:59:42: OSPF: Rcv DBD from 10.70.70.70 on Serial0 seq 0x2125 opt 0x42
flag 0x2 len 72 mtu 1500 state EXSTART
00:59:42: OSPF: NBR Negotiation Done. We are the MASTER
00:59:42: OSPF: Send DBD to 10.70.70.70 on Serial0 seq 0x2126 opt 0x42
flag 0x3 len 72
00:59:42: OSPF: Send with youngest Key 1
00:59:42: OSPF: Send with youngest Key 1
00:59:42: OSPF: Database request to 10.70.70.70
00:59:42: OSPF: sent LS REQ packet to 192.168.64.10, length 12
00:59:42: OSPF: Rcv DBD from 10.70.70.70 on Serial0 seq 0x2126 opt 0x42
flag 0x0 len 32 mtu 1500 state EXCHANGE
00:59:42: OSPF: Send DBD to 10.70.70.70 on Serial0 seq 0x2127 opt 0x42
flag 0x1len 32
00:59:42: OSPF: Send with youngest Key 1
00:59:42: OSPF: Send with youngest Key 1
00:59:42: OSPF: Rcv DBD from 10.70.70.70 on Serial0 seq 0x2127 opt 0x42
flag 0x0 len 32 mtu 1500 state EXCHANGE
00:59:42: OSPF: Exchange Done with 10.70.70.70 on Serial0
00:59:42: OSPF: Synchronized with 10.70.70.70 on Serial0, state FULL
00:59:42: %OSPF-5-ADJCHG: Process 10, Nbr 10.70.70.70 on Serial0 from
LOADING to FULL, Loading Done
00:59:43: OSPF: Build router LSA for area 0, router ID 172.16.10.36,
seq 0x80000010
00:59:43: OSPF: Send with youngest Key 1
00:59:45: OSPF: Send with youngest Key 1
R1-2503#
次に示す debug ip ospf adj コマンドの出力は、ルータで設定した認証タイプに不一致がある場合を示しています。この出力は、ルータR1-2503がタイプ2(MD5)認証を使用するのに対し、ルータR2-2503はタイプ1認証(プレーンテキスト認証)を使用することを示しています。
R1-2503#debug ip ospf adj
00:59:33: OSPF: Rcv pkt from 192.168.64.10, Serial0 : Mismatch
Authentication type.
!--- Input packet specified type 1, you use type 2.
次に示す debug ip ospf adj コマンドの出力は、認証で使用するキー ID に不一致がある場合を示しています。この出力は、ルータ R1-2503 がキー ID 1 を使った MD5 認証を使用する一方、ルータ R2-2503 ではキー ID 2 を使った MD5 認証を使用していることを示しています。
R1-2503#debug ip ospf adj
00:59:33: OSPF: Send with youngest Key 1
00:59:43: OSPF: Rcv pkt from 192.168.64.10, Serial0 : Mismatch
Authentication Key - No message digest key 2 on interface
R1-2503に対するこのdebug ip ospf adjコマンドの出力は、MD5認証のキー1とキー2の両方が移行の一部として設定されていることを示しています。
R1-2503#debug ip ospf adj
00:59:43: OSPF: Send with youngest Key 1
00:59:53: OSPF: Send with youngest Key 2
!--- Informs that this router is also configured !--- for Key 2 and both routers now use Key 2.
01:00:53: OSPF: 2 Way Communication to 10.70.70.70
on Serial0, state 2WAY
R1-2503#
関連情報