GTSM(Generalized TTL Security Mechanism)とは、リモートからの接続を拒否するセキュリティ機能で、IPパケットのTTLが255のOSPFパケットを送信してくるルータとのみネイバー関係になります。
TTLが255を下回ると、複数ホップを経由してきたリモートからの攻撃と見なし、接続は拒否されます。
OSPFパケットのTTL値(デフォルト)
OSPFパケットのTTL値はデフォルトで1です。
GTSMの設定
OSPFプロセス内のttl-securityコマンドでGTSM(TTL-Security)を有効にします。まず、R1でGTSM(TTL-Security)を有効にします。
R1(config)# router ospf 1
R1(config-router)# ttl-security all-interfaces
R1のOSPFパケットのTTLが255に変更されていることがわかります。
しばらくすると、R2とのネイバーがダウンします。
R1# *Jul 19 04:48:56.615: %OSPF-5-ADJCHG: Process 1, Nbr 2.2.2.2 on FastEthernet0/0.12 from FULL to DOWN, Neighbor Down: Dead timer expired
R1、R2の隣接状態を確認します。
R1# show ip ospf neighbor R1#
R2# show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
1.1.1.1 1 INIT/DROTHER 00:00:38 192.168.12.1 FastEthernet0/0.12
INITとは、ネイバーからのHelloパケットを認識しているが、two-wayになっていない状態のことです。つまり、ネイバーからのHelloパケットに自身のルータIDが含まれていない状態であり、R1はR2からのHelloパケットを認識していません。
R1でデバックを有効にすると、R2からのTTLが1のOSPFパケットをドロップしていることがわかります。
R1# debug ip ospf adj
OSPF adjacency debugging is on
R1#
*Jul 19 04:58:49.919: OSPF-1 ADJ Fa0/0.12: Drop packet from 192.168.12.2 with TTL: 1
R1で、GTSM(TTL-Security)を有効にしたことで、TTLが255のOSPFパケットのみ受信されるため、この動きは正しいです。R2もGTSM(TTL-Security)を有効にする必要があります。
R2(config)# router ospf 1
R2(config-router)# ttl-security all-interfaces
R2(config-router)#
*Jul 19 05:03:15.123: %OSPF-5-ADJCHG: Process 1, Nbr 1.1.1.1 on FastEthernet0/0.12
from LOADING to FULL, Loading Done
これで、1ホップ以上先からのOSPF接続は拒否され、リモートからの攻撃を防ぐことができます。
コメント