今回はOSPFのTTL Securityについて解説します。
座学
TTL Security
例えば、下図のように、悪意のあるユーザが、R2に成りすまして、R1に対して不正なLSAを格納したいOSPFパケットを送信すると、R1のLSDBを改ざん可能です。この結果、R1はパケットを正しくルーティングできなくなります。
上記の様な問題を回避する機能がTTL Securityになります。TTL SecurityはGTSM(Generalized TTL Security Mechanism)と呼ばれ、受信したOSPFパケットのIPヘッダのTTLを確認し、TTLが255ではないOSPFパケット、すなわち、遠隔地から送信され一度でもルータを経由したことのあるOSPFパケットを破棄します。
TTL Securityが無効な場合、ルータはTTL 1でOSPFパケットを送信します。一方、TTL Securityが有効な場合、ルータはTTL 255でOSPFパケットを送信します。
実機での動作確認
検証内容
R1のg2、R2のg2でOSPF Area 0を有効にします。
Network TypeにはPoint-to-Pointを使用します。
TTL Securityの有効にした際の状態を確認します。
初期設定
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
TTL Securityが無効な場合
OSPFプロセスの状態確認
R1のOSPFプロセスでTTL Securityが無効なことが確認できます。
R1#show ip ospf
Routing Process "ospf 1" with ID 1.1.1.1
.
<一部省略>
.
Cisco NSF helper support enabled
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:00:10.397 ago
SPF algorithm executed 9 times
Area ranges are
Number of LSA 2. Checksum Sum 0x01469B
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でTTL Securityが無効なことが確認できます。
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:00
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)
OSPFパケットの確認
R1が送信したOSPFパケットのTTLが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:39 10.1.1.2 GigabitEthernet2
TTL Securityをプロセス単位で有効化
R1とR2において、OSPFプロセス単位でTTL Securityを有効化します。
追加した設定
OSPFプロセス単位でのTTL Securityの有効化はttl-security all-interfacesコマンドで可能です。
router ospf 1
ttl-security all-interfaces
OSPFプロセスの状態確認
R1のOSPFプロセスでTTL Securityが有効なことが確認できます。
R1#show ip ospf
Routing Process "ospf 1" with ID 1.1.1.1
.
<一部省略>
.
Cisco NSF helper support enabled
Reference bandwidth unit is 100 mbps
Strict TTL checking enabled
Area BACKBONE(0)
Number of interfaces in this area is 1
Area has no authentication
SPF algorithm last executed 00:00:48.504 ago
SPF algorithm executed 9 times
Area ranges are
Number of LSA 2. Checksum Sum 0x01469B
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でTTL Securityが有効なことが確認できます。
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:07
Supports Link-local Signaling (LLS)
Cisco NSF helper support enabled
IETF NSF helper support enabled
Strict TTL checking 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 0, Adjacent neighbor count is 0
Suppress hello for 0 neighbor(s)
OSPFパケットの確認
R1が送信したOSPFパケットのTTLが255に変化したことが確認できます。
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:39 10.1.1.2 GigabitEthernet2
補足(TTL SecurityによりOSPFパケットが破棄された際のログ)
R1はR2とOSPFネイバーが確立できていることが確認できます。
R1#debug ip ospf adj
*May 29 11:54:11.776: OSPF-1 ADJ Gi2: Drop packet from 10.1.1.2 with TTL: 1
TTL Securityをインタフェース単位で有効化
R1とR2において、g2でTTL Securityを有効化します。
追加した設定
インタフェース単位でのTTL Securityの有効化はip ospf ttl-securityコマンドで可能です。
interface GigabitEthernet2
ip ospf ttl-security
OSPFプロセスの状態確認
R1のOSPFプロセスでTTL Securityが無効なことが確認できます。
R1#show ip ospf
Routing Process "ospf 1" with ID 1.1.1.1
.
<一部省略>
.
Cisco NSF helper support enabled
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:00:48.504 ago
SPF algorithm executed 9 times
Area ranges are
Number of LSA 2. Checksum Sum 0x01469B
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でTTL Securityが有効なことが確認できます。
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:07
Supports Link-local Signaling (LLS)
Cisco NSF helper support enabled
IETF NSF helper support enabled
Strict TTL checking 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 0, Adjacent neighbor count is 0
Suppress hello for 0 neighbor(s)
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:39 10.1.1.2 GigabitEthernet2
TTL Securityをプロセス単位で有効化 & インタフェース単位で無効化
R1とR2において、OSPFプロセス単位でTTL Securityを有効化し、同時に、g2でTTL Securityを無効化します。
追加した設定
インタフェース単位でのTTL Securityの無効化はip ospf ttl-security disableコマンドで可能です。
interface GigabitEthernet2
ip ospf ttl-security disable
!
router ospf 1
ttl-security all-interfaces
OSPFプロセスの状態確認
R1のOSPFプロセスでTTL Securityが有効なことが確認できます。
R1#show ip ospf
Routing Process "ospf 1" with ID 1.1.1.1
.
<一部省略>
.
Cisco NSF helper support enabled
Reference bandwidth unit is 100 mbps
Strict TTL checking enabled
Area BACKBONE(0)
Number of interfaces in this area is 1
Area has no authentication
SPF algorithm last executed 00:00:48.504 ago
SPF algorithm executed 9 times
Area ranges are
Number of LSA 2. Checksum Sum 0x01469B
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でTTL Securityが無効なことが確認できます。
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:07
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 0, Adjacent neighbor count is 0
Suppress hello for 0 neighbor(s)
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:39 10.1.1.2 GigabitEthernet2
コメント