【EIGRP】ネイバー認証(SHA-256)

EIGRP のネイバー認証は、MD5 のほかに HMAC-SHA-256 でも行えます。MD5 の設定は ネイバー認証(MD5) で扱いました。SHA-256 は MD5 より強いハッシュ関数ですが、EIGRP では名前付きモード(Named Mode)でしか設定できません。名前付きモードの基本は 名前付きモード(Named Mode)の設定 を参照してください。

この記事でわかること
  1. 名前付きモードでの EIGRP の基本設定
  2. af-interface で HMAC-SHA-256 認証を有効にする方法
  3. 片側だけ設定したときのエラーと、パケットに付く認証情報

HMAC-SHA-256 認証のしくみ

送信側のルータは、EIGRP パケットとパスワードから HMAC-SHA-256 でダイジェスト(ハッシュ値)を計算し、パケットに付けて送ります。受信側も、受け取ったパケットと自分のパスワードで同じ計算をして、ダイジェストが一致したときだけパケットを受け入れます。パスワードそのものはネットワークに流れません。

Cisco の実装では、この計算にパスワードだけでなく送信元インタフェースの IP アドレスも組み合わせます。そのため、送信元アドレスやパケットの中身が途中で書き換えられた場合も、ダイジェストが合わずに破棄されます。

R2(送信側)R3(受信側) HMAC-SHA-256パケット+パスワード EIGRP パケット+ ダイジェスト(32バイト) HMAC-SHA-256受信パケット+パスワード ダイジェストを比較 一致 → 受け入れ 不一致 → 破棄
図1 HMAC-SHA-256 認証の流れ
項目MD5 認証HMAC-SHA-256 認証
設定できるモードクラシックモード、名前付きモード名前付きモードのみ
ダイジェストの長さ16バイト(128ビット)32バイト(256ビット)
設定する場所インタフェース(クラシック)/af-interface(名前付き)af-interface

検証構成と基本設定

R2 と R3 の間で、HMAC-SHA-256 によるネイバー認証を行います。

EIGRP AS 100 Lo02.2.2.2/32Lo03.3.3.3/32 R2R3 .2.3 192.168.23.0/24 Fa0/0.23 Fa0/0.23
図2 検証構成

名前付きモードで 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 が付いていて、パスワードから計算したダイジェストが入っています。

画面イメージについて

この記事の画面は、実際の画面ではなく、検証時の画面から見るポイントを抜き出して描いたイメージです。バージョンによって、項目の並びや表記は変わります。

パケットキャプチャ(Wireshark):認証付きの Hello画面イメージ
▸ 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
図3 認証付きの Hello(実際の画面ではなく、表示内容のポイントを示したイメージです)
No.表示意味
1Authentication SHA256認証の TLV(Type 0x0002)。Hello の中、Parameters の前に入る
2Type: SHA256 (3)認証の種類が SHA-256 であること(MD5 は 2)
3Length: 32ダイジェストの長さ。SHA-256 なので 32 バイト(256 ビット)
4Digest: …パスワードとパケットから計算したダイジェスト。パスワードそのものは入っていない
キーを切り替えたいとき

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 バイトのダイジェストが付く
必要な設定ネイバーになる両側で同じ種類・同じパスワードにする

コメント