概要
IP EIGRP Route Authenticationの検証でいろいろ試した記録です。
認証設定がうまくいかない場合のshowコマンドやdebugコマンドの出力をまとめました。
サンプル
下記の設定でeigrpネイバが確立できていることを前提とします。
参考にした設定
https://www.cisco.com/c/en/us/td/docs/ios-xml/ios/iproute_eigrp/configuration/15-mt/ire-15-mt-book/ire-rte-auth.html
→How to Configure IP EIGRP Route Authentication
Defining an Autonomous System for EIGRP Route Authentication
RA#
RA#sh run int g0/0
Building configuration...
Current configuration : 198 bytes
!
interface GigabitEthernet0/0
ip address 10.10.10.1 255.255.255.0
ip authentication mode eigrp 1 md5
ip authentication key-chain eigrp 1 keychain1
duplex auto
speed auto
media-type rj45
end
RA#sh run | sec router eigrp
router eigrp 1
network 10.0.0.0
RA#
RA#sh run | sec key chain
key chain keychain1
key 1
key-string 0987654321
RA#
RB#
RB#sh run int g0/0
Building configuration...
Current configuration : 198 bytes
!
interface GigabitEthernet0/0
ip address 10.10.10.2 255.255.255.0
ip authentication mode eigrp 1 md5
ip authentication key-chain eigrp 1 keychain1
duplex auto
speed auto
media-type rj45
end
RB#sh run | sec router eigrp
router eigrp 1
network 10.0.0.0
RB#
RB#sh run | sec key chain
key chain keychain1
key 1
key-string 0987654321
RB#
検証コマンド
使用するコマンドと確認観点
[1]show ip eigrp neighbors →ネイバは確立できている?
[2]show ip eigrp interfaces detail →IFはどのkey chainを参照?
[3]show key chain →どのkey chain/key idを使用?keyは有効?
[4]debug eigrp packets →helloパケットは送受信できてる?エラーの原因は何?
ネイバ確立OKの出力例
壊してみる① RBのkey chainを消去してみる
RBにコマンドを追加してkey chainを消去
【追加するコマンド】
RB(config)#no key chain keychain1
【検証コマンド結果】
[1]RA/RBともにネイバ表示なし
[2]peerがいない
けど、authenticationの設定は正常に表示されるので、ネイバ確立しない原因が認証かはわからない
[3]RAのkeyは有効
[2]もそうだけどあくまで設定の確認 正常にやりとりしているかはわからない
RBは表示なし
[4]RA/RBともにignored(=無視された) 原因はRAがmissing、RBがinvalid
RA/RB両方のkey chainを消去した場合の[4]
missingの意味は
「(相手が)無視した原因は(相手のIFに設定されている)認証がみつからなかったため」ということ?
missingはルータ同士(RA-RB)のことではないみたい
壊してみる② key-stringを間違えてみる
壊してみる①修正後、RBのkey-stringを変更
【追加するコマンド】
RB(config-keychain)#key chain keychain1
RB(config-keychain)#key 1
RB(config-keychain-key)#key-s 1234567890
RB(config-keychain-key)#
【検証コマンド結果】
[1][2]は壊してみる①と同じなので割愛
[3]RA/RBともにkeyは有効 textが違う
[4]RA/RBともにinvalidで表示
補足
key-stringの設定は大文字小文字の区別あり
壊してみる③ key idをバラバラにしてみる
同じkey-stringをRAのkey 1とRBのkey 2に設定
【追加するコマンド】
RB(config)#
RB(config)#key chain keychain1
RB(config-keychain)#key 1
RB(config-keychain-key)#key-string 123456789
RB(config-keychain-key)#accept-lifetime 00:00:00 1 aug 2023 infinite
RB(config-keychain-key)#send-lifetime 00:00:00 1 aug 2023 infinite
RB(config-keychain-key)#
RB(config-keychain-key)#key 2
RB(config-keychain-key)#key-string 0987654321
RB(config-keychain-key)#end
【検証コマンド結果】
[1][2]は壊してみる①と同じなので割愛
[3]RAはkey 1、RBはkey 2が有効
[4]
debugのkey idは相手のidみたい
壊してみる④? 有効期間(life time)を変更してみる
壊してみる③修正後
RBの有効期限を設定
【追加するコマンド】
RB(config)#key chain keychain1
RB(config-keychain)#key 1
RB(config-keychain-key)#accept-lifetime 00:00:00 1 july 2023 inf
RB(config-keychain-key)#send-lifetime 00:00:00 1 july 2023 inf
【検証コマンド結果】
[1]壊れない
[2]
[3]開始時間をそろえる必要はないみたい
[4]
その他壊れなかった検証
・RBと違う開始日(有効)をRAに設定してみる
・acceptのみ or sendのみ設定してみる
まとめ
壊してみる①~④でわかることは
・eigrp認証設定で対向ルータとあわせる必要があるのは「key id」「key-string」
・有効期間内であればlife timeはお互いに合わせる必要はない
おまけ じつは一番残しておきたかったこと
じゃあ、片方が有効期間切れの場合(上図の青)の場合の動作はどうなるの?
RAは有効期間のまま
RBの開始を未来日に設定してみると
RB(config-keychain-key)#accept 00:00:00 1 july 2030 inf
有効期間外のRBはdownのまま
有効期間内のRAはup/downを繰り返す
[4]debug eigrp packets (RAの最終行はsyslogメッセージ)
このことから、認証がおかしいかな?と思ったら
down継続なら「key id」「key-string」が怪しい
up/downを繰り返すなら「life time」が怪しい
とあたりを付けられそうです。
eigrp自体の問題でup/downを繰り返す場合もあります