EIGRP のネイバー認証は、MD5 のほかに HMAC-SHA-256 でも行えます。MD5 の設定は ネイバー認証(MD5) で扱いました。SHA-256 は MD5 より強いハッシュ関数ですが、EIGRP では名前付きモード(Named Mode)でしか設定できません。名前付きモードの基本は 名前付きモード(Named Mode)の設定 を参照してください。
- 名前付きモードでの EIGRP の基本設定
af-interfaceで HMAC-SHA-256 認証を有効にする方法- 片側だけ設定したときのエラーと、パケットに付く認証情報
HMAC-SHA-256 認証のしくみ
送信側のルータは、EIGRP パケットとパスワードから HMAC-SHA-256 でダイジェスト(ハッシュ値)を計算し、パケットに付けて送ります。受信側も、受け取ったパケットと自分のパスワードで同じ計算をして、ダイジェストが一致したときだけパケットを受け入れます。パスワードそのものはネットワークに流れません。
Cisco の実装では、この計算にパスワードだけでなく送信元インタフェースの IP アドレスも組み合わせます。そのため、送信元アドレスやパケットの中身が途中で書き換えられた場合も、ダイジェストが合わずに破棄されます。
| 項目 | MD5 認証 | HMAC-SHA-256 認証 |
|---|---|---|
| 設定できるモード | クラシックモード、名前付きモード | 名前付きモードのみ |
| ダイジェストの長さ | 16バイト(128ビット) | 32バイト(256ビット) |
| 設定する場所 | インタフェース(クラシック)/af-interface(名前付き) | af-interface |
検証構成と基本設定
R2 と R3 の間で、HMAC-SHA-256 によるネイバー認証を行います。
名前付きモードで EIGRP を設定する
R2 と R3 で、名前付きモードの EIGRP を設定します。名前(ここでは Named-EIGRP)は各ルータの中だけで使うもので、ネイバー同士で一致させる必要があるのは AS 番号(100)です。
R2
R2(config)# router eigrp Named-EIGRP R2(config-router)# address-family ipv4 unicast autonomous-system 100 R2(config-router-af)# network 2.2.2.2 0.0.0.0 R2(config-router-af)# network 192.168.23.0 R2(config-router-af)# exit R2(config-router)# exit R2(config)#
R3
R3(config)# router eigrp Named-EIGRP
R3(config-router)# address-family ipv4 unicast autonomous-system 100
R3(config-router-af)# network 3.3.3.3 0.0.0.0
R3(config-router-af)# network 192.168.23.0
R3(config-router-af)# exit
R3(config-router)# exit
R3(config)#
%DUAL-5-NBRCHANGE: EIGRP-IPv4 100: Neighbor 192.168.23.2 (FastEthernet0/0.23)
is up: new adjacency
認証なしの状態で、R2 と R3 はネイバーになりました。
R2 で HMAC-SHA-256 認証を有効にする
認証はインタフェースごとに設定します。名前付きモードでは、address-family の中で af-interface に入ってインタフェース単位の設定をします。ヘルプを見ると、Hello 間隔やホールドタイム、passive-interface なども、ここで設定することがわかります。
R2
R2(config)# router eigrp Named-EIGRP R2(config-router)# address-family ipv4 unicast autonomous-system 100 R2(config-router-af)# af-interface fastEthernet 0/0.23 R2(config-router-af-interface)# ? Address Family Interfaces configuration commands: authentication authentication subcommands bandwidth-percent Set percentage of bandwidth percentage limit bfd Enable Bidirectional Forwarding Detection dampening-change Percent interface metric must change to cause update dampening-interval Time in seconds to check interface metrics default Set a command to its defaults exit-af-interface Exit from Address Family Interface configuration mode hello-interval Configures hello interval hold-time Configures hold time next-hop-self Configures EIGRP next-hop-self no Negate a command or set its defaults passive-interface Suppress address updates on an interface shutdown Disable Address-Family on interface split-horizon Perform split horizon summary-address Perform address summarization
authentication mode のヘルプを見ると、hmac-sha-256 と md5 を選べます。
R2
R2(config-router-af)# af-interface fastEthernet 0/0.23
R2(config-router-af-interface)# authentication mode ?
hmac-sha-256 HMAC-SHA-256 Authentication
md5 Keyed message digest
hmac-sha-256 の後には、パスワードを入力します。前に付ける 0〜7 は、入力するパスワードの形式です(0 は暗号化していない文字列、7 は Cisco 独自の形式で暗号化した文字列)。省略すると、そのまま文字列として扱います。
R2
R2(config-router-af-interface)# authentication mode hmac-sha-256 ? <0-7> Encryption type (0 to disable encryption, 7 for proprietary) LINE password
ここでは、パスワードを SHA256KEY にします。
R2
R2(config-router-af)# af-interface fastEthernet 0/0.23
R2(config-router-af-interface)# authentication mode hmac-sha-256 SHA256KEY
R3 はまだ認証を設定していないので、R2 では R3 からの Hello の認証に失敗し、ネイバーがダウンします。
R2
%DUAL-5-NBRCHANGE: EIGRP-IPv4 100: Neighbor 192.168.23.3 (FastEthernet0/0.23)
is down: Auth failure
R3 でも認証を有効にする
R3 にも同じパスワードで HMAC-SHA-256 認証を設定すると、ネイバーが確立します。
R3
R3(config)# router eigrp Named-EIGRP R3(config-router)# address-family ipv4 unicast autonomous-system 100 R3(config-router-af)# af-interface FastEthernet0/0.23 R3(config-router-af-interface)# authentication mode hmac-sha-256 SHA256KEY %DUAL-5-NBRCHANGE: EIGRP-IPv4 100: Neighbor 192.168.23.2 (FastEthernet0/0.23) is up: new adjacency
パケットキャプチャ:Hello に付いた認証情報
R2 が送る Hello をキャプチャすると、Authentication SHA256 の TLV が付いていて、パスワードから計算したダイジェストが入っています。
この記事の画面は、実際の画面ではなく、検証時の画面から見るポイントを抜き出して描いたイメージです。バージョンによって、項目の並びや表記は変わります。
▸ Internet Protocol Version 4, Src: 192.168.23.2, Dst: 224.0.0.10▾ Cisco EIGRP Version: 2 Opcode: Hello (5) Checksum: 0x545a [correct] [Checksum Status: Good] ▸ Flags: 0x00000000 Sequence: 0 Acknowledge: 0 Virtual Router ID: 0 (Address-Family) Autonomous System: 1001 ▾ Authentication SHA256 Type: Authentication (0x0002) Length: 562 Type: SHA256 (3)3 Length: 32 Key ID: 0 Key Sequence: 0 Nullpad: 00000000000000004 Digest: 0ab39fe6be05eac82dfedd562b910fcc20cde53e5146ddf4… ▸ Parameters ▸ Software Version: EIGRP=10.0, TLV=2.0
| No. | 表示 | 意味 |
|---|---|---|
| 1 | Authentication SHA256 | 認証の TLV(Type 0x0002)。Hello の中、Parameters の前に入る |
| 2 | Type: SHA256 (3) | 認証の種類が SHA-256 であること(MD5 は 2) |
| 3 | Length: 32 | ダイジェストの長さ。SHA-256 なので 32 バイト(256 ビット) |
| 4 | Digest: … | パスワードとパケットから計算したダイジェスト。パスワードそのものは入っていない |
HMAC-SHA-256 認証でも、key chain を作って authentication key-chain で指定できます。キーチェーンを使うと、有効期間を設定したキーを順に切り替えられるので、ネイバーを切らずにパスワードを変更できます。
うまくいかないときの確認
| 状態 | よくある原因 | 確認すること |
|---|---|---|
| Auth failure でネイバーがダウンする | 片側だけ認証を設定している、またはパスワードが違う | 両側の af-interface に同じパスワードで authentication mode hmac-sha-256 が入っているか |
| authentication mode に hmac-sha-256 が出ない | クラシックモード(router eigrp 100)で設定している | 名前付きモードの af-interface の中で設定しているか |
| 片側だけネイバーが上がらない | 認証の種類(MD5 と SHA-256)が違う | 両側の authentication mode の種類がそろっているか |
まとめ
| 項目 | 内容 |
|---|---|
| 使えるモード | 名前付きモードのみ |
| 設定場所 | router eigrp <名前> → address-family → af-interface |
| コマンド | authentication mode hmac-sha-256 <パスワード> |
| パケット | Authentication TLV(Type SHA256)に 32 バイトのダイジェストが付く |
| 必要な設定 | ネイバーになる両側で同じ種類・同じパスワードにする |
コメント