NVR700W と UNIVERGE IX を IKEv2/IPsec で拠点間接続
実家にひかり電話対応のルーターとしてNVR700Wを導入したので、自分のところにあるNEC UNI IX2215と異種ベンダー間で拠点間接続を行いました。
3日くらいハマってたので防備録として記事に残します。
やりたいこと・要件
- 拠点A - 拠点B間をIKEv2/IPsecで拠点間接続する。
- 通信経路はNTTのNGN網内折り返し(インターネットに出ない)で完結させる。
前提環境
拠点A(NEC UNIVERGE IX)側
機材
NEC UNIVERGE IX2215(Version 10.6.64 10.7.18 後日更新しました)
回線
- フレッツ 光ネクスト相当の光コラボモデル
拠点B(ヤマハ NVR700W)側
機材
ヤマハ LTEアクセスVoIPルーター NVR700W(Rev.15.00.24)
回線
- フレッツ 光ネクスト相当の光コラボモデル
事前準備
DDNS
NVR700W側はネットボランチDNSサービス
UNIVERGE IX側はNetMeisterのダイナミックDNS
それぞれ登録し、ドメインを取得します。
NVR700W 手順
IPoE環境ではGUIから登録設定が出来ない場合があるのでコマンドから登録します。
# ホスト名の登録
netvolante-dns hostname host lan2 [任意のホスト名] ipv6 address
# ネットボランチ DNS サービスの使用の可否
# 自動更新をONにします。
netvolante-dns use lan2 auto
# ネットボランチ DNS サーバーへの手動更新
netvolante-dns go lan2
これで [任意のホスト名].<サブドメイン>.netvolante.jp
ドメインが使用できるようになります。
UNIVERGE IX 手順
コマンドで作業する前にWebから会員登録を済ませておく必要があります。
! NetMeister クライアント機能の有効化
! IPv6で情報通知 / NGN閉域網指定 / NTT東日本指定 / MQTTの強制指定
nm ipv6 enable ngn-private east mqtt force
! アカウントの設定
nm account [グループID] password plain [グループパスワード]
! ダイナミックDNS 登録ホスト名の設定
nm ddns hostname [任意の登録ホスト名]
! 即時更新
nm update
これでNGN網で使える <ホスト名>.<グループID>.v6.nmddns.jp
形式のドメイン名を取得できます。
パラメータ検討
IKEv2/IPsecでトンネルを張るためのパラメータを決めます。
NVR700W, UNIVERGE IXの列はコマンドリファレンスの項番号、ページを示します。
項目 | パラメータ | NVR700W | UNIVERGE IX |
---|---|---|---|
認証方式 | pre-shared-key | 13.4 | 13-66 |
事前共有鍵 | [事前共有鍵] 例:EnD7TV6otuj8iPeRrWqNQx2Kkt2r3Z2v |
13.4 | 13-66 |
暗号アルゴリズム | AES256-CBC | 13.45.2 | 13-64 |
ハッシュアルゴリズム | HMAC-SHA2-256 | 13.45.2 | 13-64 |
PFSのon/off | off | 13.29 | 13-56 |
DH(Diffie-Hellman)グループ | DH Group 2 | 13.23 | 13-63 |
ISAKMP SAの寿命 | 28800 | 13.45.1 | 13-63 |
IPsec SAの寿命 | 28800 | 13.45.1 | 13-56 |
キープアライブ | 方式: RFC4306(IKEv2 標準) 送信間隔: 10秒 |
13.19 | 13-58 |
NVR700W側FQDN | [ホスト名].<サブドメイン>.netvolante.jp | 34 | - |
UNIVERGE IX側FQDN | <ホスト名>.<グループID>.v6.nmddns.jp | - | 22-2 ~ 22-10 |
コンフィグ投入
NVR700W側
tunnel select 2
ipsec tunnel 2
ipsec sa policy 2 2 esp aes256-cbc sha256-hmac
ipsec ike version 2 2
ipsec ike duration ipsec-sa 2 28800
ipsec ike duration isakmp-sa 2 28800
ipsec ike group 2 modp1024
ipsec ike keepalive log 2 off
ipsec ike keepalive use 2 on rfc4306 10 6
ipsec ike local name 2 [自装置FQDN(NVR700W側FQDN)] fqdn
ipsec ike pre-shared-key 2 text [事前共有鍵]
ipsec ike remote name 2 [相手装置FQDN(UNIVERGE IX側FQDN)] fqdn
ip tunnel tcp mss limit auto
tunnel enable 2
UNIVERGE IX側
ikev2 authentication psk id fqdn [相手装置FQDN(NVR700W側FQDN)] key char [事前共有鍵]
!
ikev2 profile nvr
child-lifetime 28800
child-pfs off
dpd interval 10
local-authentication psk id fqdn [自装置FQDN(UNIVERGE IX側FQDN)]
sa-lifetime 28800
sa-proposal enc aes-cbc-256
sa-proposal integrity sha2-256
sa-proposal dh 1024-bit
!
interface Tunnel10.0
tunnel mode ipsec-ikev2
ip unnumbered GigaEthernet2.2
ip tcp adjust-mss auto
ip rip enable
ikev2 binding nvr
ikev2 connect-type auto
ikev2 peer-fqdn-ipv6 [相手装置FQDN(NVR700W側FQDN)] authentication psk id fqdn [相手装置FQDN(NVR700W側FQDN)]
no shutdown
!
付録
フィルタ(ファイヤウォール)の設定
一例としてIKEv2/IPsecに必要なフィルタの設定を紹介します。
NVR700W側
# フィルタルールの定義
ipv6 filter 12000 pass * * udp * 500
ipv6 filter 12001 pass * * esp
ipv6 filter 12002 pass * * udp * 4500
# インターフェースに適用
ipv6 lan2 secure filter in [元からあったフィルタ] 12000 12001 12002
動的ルーティング(RIP)の設定
RIPで動的ルーティングする一例を紹介します。
NVR700W側
# 6.3.1 RIP を使用するか否かの設定
rip use on
# トンネルに対してRIPを送受信する設定
tunnel select 2
ip tunnel rip send on version 2
ip tunnel rip receive on version 2
UNIVERGE IX側
! RIP起動・RIPコンフィグモードへの移行
ip router rip
! トンネルインターフェースを指定し、RIP有効化
interface Tunnel10.0
ip rip enable
おわりに
最後まで読んでいただきありがとうございました。
NVR700Wが格安で売られていたときに「実家にはこれだ!」と言って導入したのですが、異種ベンダー間での拠点間接続のハードルを感じ、しばらく放置していました。
GWの機会に拠点間接続を完遂しようとして取りかかったのですが、デフォルト値の違いやパラメータ名の違いも多く、3日間もハマってしまったので接続に成功したタイミングでこの記事を書きました。散々ハマった割には最終的にシンプルなのが泣けます。
お役に立てれば嬉しいですし、間違いを見つけた際は優しく教えて頂けると幸いです。
参考
- NVR700W/NVR510 コマンドリファレンス
- IPsec 相互接続の手引き
- UNIVERGE IXシリーズ コマンドリファレンスマニュアル
- Special Thanks: パナくま
クレジット
- 機器画像
-
ヤマハ アイコン・外観写真
- ヤマハ株式会社 作『ネットワーク構成図 作成用アイコン』はクリエイティブ・コモンズ 表示 - 改変禁止 4.0 国際 ライセンスで提供されています。
- UNIVERGE IXシリーズ アイコン画像集
-
ヤマハ アイコン・外観写真
Discussion