今回はOSPFの認証のKey Rolloverついて解説します。
座学
Key Rolloverについて
企業によっては、セキュリティ要件によって、定期的にパスワードを変更する必要な場合もあります。もしルータにおいて、OSPFの認証用のパスワードを変更した場合、一時的にルータ間で認証用のパスワードが異なる時間帯が発生してしまい、OSPFネイバーがダウンし、通信断が発生してしまう可能性もあります。
Cryptographic Authenticationでは複数のパスワードを設定可能なため、認証用のパスワードの変更をスムーズに行うことが可能です。
まず、下図のように、R1に新しいパスワードを追加します。この際、Key IDには異なる値を使用します。この状況で、R2は古いKey IDとパスワードを使用していますが、R1には古いKey IDとパスワードの情報も残っているので、OSPFネイバーを維持することが可能です。
その後、R2に新しいKey IDとパスワードを設定し、かつ、古いKey IDとパスワードを削除します。この時点で、R1とR2は新しいKey IDとパスワードを使用してお互いを認証します。
最後にR1から古いKey IDとパスワードを削除することで、パスワードの変更作業が完了します。
パスワードの変更作業中、古いパスワードを使用しているルータが存在する場合、新旧のKey IDとパスワードが設定されているルータは新しいKey IDとパスワードを基に計算したハッシュ値を格納したOSPFパケットと古いKey IDとパスワードを基に計算したハッシュ値を格納したOSPFパケットの両方を送信します。
実機での動作確認
検証内容
R1のg2、R2のg2でOSPF Area 0を有効にします。
Network TypeにはPoint-to-Pointを使用します。
R1とR2でMD5を使用したCryptographic Authenticationを有効します。
R1とR2で認証用のKey IDとパスワードを変更した際の状態を確認します。
初期設定
interface GigabitEthernet2
ip address 10.1.1.1 255.255.255.0
ip ospf authentication message-digest
ip ospf message-digest-key 1 md5 P@ssw0rd
ip ospf network point-to-point
!
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
ip ospf authentication message-digest
ip ospf message-digest-key 1 md5 P@ssw0rd
ip ospf network point-to-point
!
router ospf 1
router-id 2.2.2.2
network 10.1.1.0 0.0.0.255 area 0
Key IDとパスワード変更前
OSPFが動作しているインタフェースの状態確認
R1のg2で、Key IDが1のパスワードを使用していることが確認できます。
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 POINT_TO_POINT, Cost: 1
Topology-MTID Cost Disabled Shutdown Topology Name
0 1 no no Base
Transmit Delay is 1 sec, State POINT_TO_POINT
Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
oob-resync timeout 40
Hello due in 00:00:02
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 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 2.2.2.2
Suppress hello for 0 neighbor(s)
Cryptographic authentication enabled
Youngest key id is 1
Helloパケット送信時の様子
R1はKey ID 1の認証鍵を使用して、Helloパケットを送信していることが確認できます。
R1#debug ip ospf hello
R1#debug ip ospf adj
*May 29 10:28:00.727: OSPF-1 ADJ Gi2: Send with youngest Key 1
*May 29 10:28:00.727: OSPF-1 HELLO Gi2: Send hello to 224.0.0.5 area 0 from 10.1.1.1
OSPFネイバーの状態確認
R1はR2とOSPFネイバーが確立できていることが確認できます。
R1#show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
2.2.2.2 0 FULL/ - 00:00:37 10.1.1.2 GigabitEthernet2
R1に新しいKey IDとパスワードを追加
R1にKey IDが2、パスワードがP@55wordの認証鍵を追加します。
追加した設定
interface GigabitEthernet2
ip ospf message-digest-key 2 P@55word
OSPFが動作しているインタフェースの状態確認
R1のg2において、最新の認証鍵はKey ID 2であるが、ネイバーがKey ID 1の古い認証鍵を使用していることが確認できます。
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 POINT_TO_POINT, Cost: 1
Topology-MTID Cost Disabled Shutdown Topology Name
0 1 no no Base
Transmit Delay is 1 sec, State POINT_TO_POINT
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 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 2.2.2.2
Suppress hello for 0 neighbor(s)
Cryptographic authentication enabled
Youngest key id is 2
Rollover in progress, 1 neighbor(s) using the old key(s):
key id 1 algorithm MD5
Helloパケット送信時の様子
R1はKey ID 1とKey ID 2の認証鍵を使用して、Helloパケットを送信していることが確認できます。
R1#debug ip ospf hello
R1#debug ip ospf adj
*May 29 10:34:01.565: OSPF-1 ADJ Gi2: Send with key 1
*May 29 10:34:01.565: OSPF-1 HELLO Gi2: Send hello to 224.0.0.5 area 0 from 10.1.1.1
*May 29 10:34:01.565: OSPF-1 ADJ Gi2: Send with key 2
*May 29 10:34:01.565: OSPF-1 HELLO Gi2: Send hello to 224.0.0.5 area 0 from 10.1.1.1
OSPFネイバーの状態確認
R1はR2とOSPFネイバーが確立できていることが確認できます。
R1#show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
2.2.2.2 0 FULL/ - 00:00:37 10.1.1.2 GigabitEthernet2
R2に新しいKey IDとパスワードを追加し、古いKey IDとパスワードを削除
R2にKey IDが2、パスワードがP@55wordの認証鍵を追加します。同時に、R2からKey IDが1、パスワードがP@sswordの認証鍵を削除します。
追加した設定
interface GigabitEthernet2
ip ospf message-digest-key 2 md5 P@55word
no ip ospf message-digest-key 1 md5 P@ss0ord
OSPFが動作しているインタフェースの状態確認
R1の出力から、古いKey IDを使用しているネイバーの情報が消失したことが確認できます。
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 POINT_TO_POINT, Cost: 1
Topology-MTID Cost Disabled Shutdown Topology Name
0 1 no no Base
Transmit Delay is 1 sec, State POINT_TO_POINT
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 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 2.2.2.2
Suppress hello for 0 neighbor(s)
Cryptographic authentication enabled
Youngest key id is 2
Helloパケット送信時の様子
R1はKey ID 1とKey ID 2の認証鍵を使用して、Helloパケットを送信していることが確認できます。
R1#debug ip ospf hello
R1#debug ip ospf adj
*May 29 10:36:22.818: OSPF-1 ADJ Gi2: Send with youngest Key 2
*May 29 10:36:22.818: OSPF-1 HELLO Gi2: Send hello to 224.0.0.5 area 0 from 10.1.1.1
OSPFネイバーの状態確認
R1はR2とOSPFネイバーが確立できていることが確認できます。
R1#show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
2.2.2.2 0 FULL/ - 00:00:37 10.1.1.2 GigabitEthernet2
コメント