OSPF Authentication 060

今回はOSPFの認証機能ついて解説します。

 

座学

OSPFの認証機能

例えば、下図の様に、ネットワークに不正なルータを配置し、ルート情報を広報することで、管理管轄のルータのLSDBの内容を改ざんし、ルーティングテーブルを書き換えることが可能です。

 

上記の問題を回避するために、OSPFではパケットに認証情報を付加して広報することが可能です。受信側はパケットに付加されている認証情報を検証し、管理管轄以外のルータが広報したパケットは破棄します。

OSPFでは認証にはSimple AuthenticationCryptographic Authenticationをサポートしています。以前はCryptographic AuthenticationではMD5のみサポートしていましたが、現在はHMAC-SHAもサポートしております。この記事は従来のMD5を基に記載しております。

Simple Authenticationの場合、OSPFパケットにパスワードをそのまま格納して送信します。OSPFパケットを受信したルータは、格納されているパスワードと自身に設定されたパスワードが等しい場合のみ、OSPFパケットを受け入れます。
注意点として、Clear Text認証の場合、OSPFパケットにそのままパスワードが格納されるため、第三者にパスワードが流出する可能性があります。

 

Cryptographic Authenticationの場合、OSPFパケットを送信する前に、送信するOSPFパケットと設定したパスワードを基にMD5のハッシュ値を計算します。そして、ハッシュ値と、ハッシュ値の計算に使用したパスワードに対応するKey IDをOSPFパケットに格納して送信します。
OSPFパケットを受信したルータは、受信したOSPFパケットに格納されているKey IDに対応したパスワードと受信したOSPFパケットを基に、MD5のハッシュ値を計算します。そして、計算したハッシュ値とOSPFパケットに格納されているハッシュ値を比較し、等しい場合、受信したOSPFパケットを受け入れます。

 

認証関連の情報はOSPFヘッダに格納されます。Authentication Typeには認証方式が格納されており、以下の3つの値がどれかが格納されます。

  • 0 : Null Authentication
  • 1 : Simple Authentication
  • 2 : Cryptographic authentication

 

OSPFの認証はArea単位、インタフェース単位で有効化可能です。

 

Area単位とインタフェース単位の両方で認証を有効化した場合、インタフェース単位の設定が優先されます。

 

LLSの認証

こちらの記事でOSPFパケットの末尾にはLLSと呼ばれる拡張情報が付加されることを解説しました。

Cryptographic AuthenticationはLLSが登場する前の機能なため、OSPFヘッダのAuthentication Dataフィールドに格納されているハッシュ値ではLLSの改ざんを検出できません。

 

LLSの改善を検出するために、新たにCryptographic Authentication TLVが追加されました。LLS用のハッシュ値はこのCryptographic Authentication TLVに格納されます。

 

実機での動作確認

検証内容

R1のg2、R2のg2でOSPF Area 0を有効にします。
Network TypeにはPoint-to-Pointを使用します。

R1とR2でOSPFの認証を有効にし、状態を確認します。

 

初期設定


interface GigabitEthernet2
 ip address 10.1.1.1 255.255.255.0
 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 network point-to-point
!
router ospf 1
 router-id 2.2.2.2
 network 10.1.1.0 0.0.0.255 area 0
            

 

認証設定前

OSPFプロセスの状態確認

R1のArea 0で認証が無効なことが確認できます。

R1

R1#show ip ospf
 Routing Process "ospf 1" with ID 1.1.1.1
 .
 <一部省略>
 .
 Reference bandwidth unit is 100 mbps
    Area BACKBONE(0)
        Number of interfaces in this area is 1
        Area has no authentication
        SPF algorithm last executed 00:02:09.656 ago
        SPF algorithm executed 17 times
        Area ranges are
        Number of LSA 2. Checksum Sum 0x012AA9
        Number of opaque link LSA 0. Checksum Sum 0x000000
        Number of DCbitless LSA 0
        Number of indication LSA 0
        Number of DoNotAge LSA 0
        Flood list length 0
            

 

OSPFが動作しているインタフェースの状態確認

R1のg2で認証が無効なことが確認できます。

R1

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:08
  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)
            

 

Helloパケットの確認

R1が送信したHelloパケットのAuthentication Typeが0(Null Authentication)であることが確認できます。

 

OSPFネイバーの状態確認

R1はR2とOSPFネイバーが確立できていることが確認できます。

R1

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
            

 

Area単位でSimple Authetnicationを有効

R1とR2のArea 0でSimple Authenticationを有効にします。認証のパスワードにはP@ssw0rdを使用します。

 

追加した設定

Area単位でのSimple Authenticationの有効化はarea <area-id> authenticationコマンドで可能です。認証用のパスワードはip ospf authentication-key <password>コマンドで設定可能です。

R1 , R2

interface GigabitEthernet2
 ip ospf authentication-key P@ssw0rd
!
router ospf 1
 area 0 authentication
            

 

OSPFプロセスの状態確認

R1のArea 0でSimple Authetnicationが有効なことが確認できます。

R1

R1#show ip ospf
 Routing Process "ospf 1" with ID 1.1.1.1
 .
 <一部省略>
 .
 Reference bandwidth unit is 100 mbps
    Area BACKBONE(0)
        Number of interfaces in this area is 1
        Area has simple password authentication
        SPF algorithm last executed 00:04:00.498 ago
        SPF algorithm executed 17 times
        Area ranges are
        Number of LSA 2. Checksum Sum 0x012AA9
        Number of opaque link LSA 0. Checksum Sum 0x000000
        Number of DCbitless LSA 0
        Number of indication LSA 0
        Number of DoNotAge LSA 0
        Flood list length 0
            

 

OSPFが動作しているインタフェースの状態確認

R1のg2でSimple Authetnicationが有効なことが確認できます。

R1

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:03
  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)
  Simple password authentication enabled
            

 

Helloパケットの確認

R1が送信したHelloパケットのAuthentication Typeが1(Simple Authentication)であることが確認できます。

 

OSPFネイバーの状態確認

R1はR2とOSPFネイバーが確立できていることが確認できます。

R1

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
            

 

Area単位でCryptographic Authetnicationを有効

R1とR2のArea 0でMD5を使用したCryptographic Authenticationを有効にします。認証のKey IDには1、パスワードにはP@ssw0rdを使用します。

 

追加した設定

Area単位でのMD5を使用したCryptographic Authenticationの有効化はarea <area-id> authentication message-digestコマンドで可能です。認証用のKey IDとパスワードはip ospf message-digest-key <key-id> md5  <password>コマンドで設定可能です。

R1 , R2

interface GigabitEthernet2
 ip ospf message-digest-key 1 md5 P@ssw0rd
!
router ospf 1
 area 0 authentication message-digest
            

 

OSPFプロセスの状態確認

R1のArea 0でCryptographic Authenticationが有効なことが確認できます。

R1

R1#show ip ospf
 Routing Process "ospf 1" with ID 1.1.1.1
 .
 <一部省略>
 .
 Reference bandwidth unit is 100 mbps
    Area BACKBONE(0)
        Number of interfaces in this area is 1
        Area has message digest authentication
        SPF algorithm last executed 00:02:31.222 ago
        SPF algorithm executed 6 times
        Area ranges are
        Number of LSA 2. Checksum Sum 0x011CB0
        Number of opaque link LSA 0. Checksum Sum 0x000000
        Number of DCbitless LSA 0
        Number of indication LSA 0
        Number of DoNotAge LSA 0
        Flood list length 0
            

 

OSPFが動作しているインタフェースの状態確認

R1のg2でCryptographic Authenticationが有効なことが確認できます。

R1

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が送信したHelloパケットのAuthentication Typeが2(Cryptographic Authentication)であることが確認できます。また、LLSにCrypto Authentication TLVが追加されていることが確認できます。

 

OSPFネイバーの状態確認

R1はR2とOSPFネイバーが確立できていることが確認できます。

R1

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
            

 

インタフェース単位でSimple Authetnicationを有効

R1とR2のg2でSimple Authenticationを有効にします。認証のパスワードにはP@ssw0rdを使用します。

 

追加した設定

インタフェース単位でのSimple Authenticationの有効化はip ospf authenticationコマンドで可能です。

R1 , R2

interface GigabitEthernet2
 ip ospf authentication
 ip ospf authentication-key P@ssw0rd
            

 

OSPFプロセスの状態確認

R1のArea 0で認証が無効なことが確認できます。

R1

R1#show ip ospf
 Routing Process "ospf 1" with ID 1.1.1.1
 .
 <一部省略>
 .
 Reference bandwidth unit is 100 mbps
    Area BACKBONE(0)
        Number of interfaces in this area is 1
        Area has no authentication
        SPF algorithm last executed 00:02:03.152 ago
        SPF algorithm executed 3 times
        Area ranges are
        Number of LSA 2. Checksum Sum 0x0124AC
        Number of opaque link LSA 0. Checksum Sum 0x000000
        Number of DCbitless LSA 0
        Number of indication LSA 0
        Number of DoNotAge LSA 0
        Flood list length 0
            

 

OSPFが動作しているインタフェースの状態確認

R1のg2でSimple Authetnicationが有効なことが確認できます。

R1

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:03
  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)
  Simple password authentication enabled
            

 

OSPFネイバーの状態確認

R1はR2とOSPFネイバーが確立できていることが確認できます。

R1

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
            

 

インタフェース単位でCryptographic Authetnicationを有効

R1とR2のg2でMD5を使用したCryptographic Authenticationを有効にします。認証のKey IDには1、パスワードにはP@ssw0rdを使用します。

 

追加した設定

インタフェース単位でのMD5を使用したCryptographic Authenticationの有効化はip ospf authentication message-digestコマンドで可能です。

R1 , R2

interface GigabitEthernet2
 ip ospf authentication message-digest
 ip ospf message-digest-key 1 md5 P@ssw0rd
            

 

OSPFプロセスの状態確認

R1のArea 0で認証が無効なことが確認できます。

R1

R1#show ip ospf
 Routing Process "ospf 1" with ID 1.1.1.1
 .
 <一部省略>
 .
 Reference bandwidth unit is 100 mbps
    Area BACKBONE(0)
        Number of interfaces in this area is 1
        Area has no authentication
        SPF algorithm last executed 00:02:03.152 ago
        SPF algorithm executed 3 times
        Area ranges are
        Number of LSA 2. Checksum Sum 0x0124AC
        Number of opaque link LSA 0. Checksum Sum 0x000000
        Number of DCbitless LSA 0
        Number of indication LSA 0
        Number of DoNotAge LSA 0
        Flood list length 0
            

 

OSPFが動作しているインタフェースの状態確認

R1のg2でCryptographic Authenticationが有効なことが確認できます。

R1

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
            

 

認証関連の設定ミスの際のデバックログ

ルータ間でAuthentication Typeが異なる場合

R1

R1#debug ip ospf adj
*Jun 19 04:06:35.297: OSPF-1 ADJ   Gi2: Rcv pkt from 10.1.1.2 : Mismatched Authentication type. Input packet specified type 1, we use type 2

            

 

ルータ間でSimple Authenticationのパスワードが異なる場合

R1

R1#debug ip ospf adj
*May 10 14:05:25.023: OSPF-1 ADJ   Gi2: Rcv pkt from 10.1.1.2,  : Mismatched Authentication Key - Clear Text
            

 

ルータ間でCryptographic Authenticationのパスワードが異なる場合

R1

R1#debug ip ospf adj
*May 10 14:16:59.228: OSPF-1 ADJ   Gi2: Rcv pkt from 10.1.1.2 : Mismatched Authentication key - ID 1
            

 

ルータ間でCryptographic AuthenticationのKey IDが異なる場合

R1

R1#debug ip ospf adj
*May 10 14:17:27.420: OSPF-1 ADJ   Gi2: Rcv pkt from 10.1.1.2 : Mismatched Authentication Key - Invalid cryptographic authentication Key ID 2 on interface
            

 

コメント

タイトルとURLをコピーしました