静的ルーティング (Static Routing) の場合
静的ルーティングであれば、RTX公式ページの 「Windows AzureとのIPsec接続 設定例」 の設定例に従って記述すれば接続できます。
ここで問題なのは設定例中の以下の部分
ipsec ike remote id 1 172.16.0.1
図を見ると “Gateway Instance” と書いたネットワーク1番目になっています。2014年5月10日現在、日本語の AzurePortal では、「ゲートウェイサブネットの追加」により出来るネットワークです。
名称は 「ゲートウェイ 」になっています。
ipsec ike remote id の引数にするアドレスの末尾は 1 になります。Yamahaのページでは 172.16.0.1 になってますね。ポータル画面にある 使用可能なアドレス範囲で示されているアドレスではないところに注意。
手元の環境では RTX1200 および RTX3000 で接続することができました。
動的ルーティング (Dynamic Routing) の場合
結論としては現在接続できていません。
つながることに興味ある人は以降読んでも役に立たないです。
About VPN Devices for Virtual Network
Azure のサイト間接続には Dynamic routing もあります。そして、 Point-to-Site (P2S)を利用する場合には、 動的ルーティング しか選択できません。
RTX使いにとって、動的ルーティングという名称は全く混乱させる名称です。ここで重要なのは IKEv2 であることです。
改めて Yamaha RTシリーズ IKEv2 の解説ページ を参照します。
IKEv1からIKEv2への移行
これまでIPsec(IKEv1)を運用されてきた場合は、既存の設定を流用しながらIKEv2へ移行することができます。主な違いは、ipsec ike remote name コマンドと ipsec ike local name コマンドの設定が共に必須になっている点と、今回新設する ipsec ike version コマンドで明示的にIKEv2の使用を宣言(以下参照)する必要があるという点です。
実際に設定してみるとまさにこの通りで接続できました。
Windows AzureとのIPsec接続 設定例 の 【IPsec VPN設定】 部分を動的ルーティング向けに書き換えると以下のようになります。
ipsec ike local name / ipsec ike remote name の末尾に ipv4-addr を指定するのがポイント。その他ほとんどのパラメータは既定値でOK。
tunnel select 1 ipsec tunnel 1 # IKEv2 の指定 ipsec ike version 1 2 ipsec sa policy 1 1 esp anti-replay-check=off ipsec ike keepalive log 1 off # local name の指定 (local address, local id の指定は不要) ipsec ike local name 1 (自ルータのグローバルアドレス) ipv4-addr ipsec ike nat-traversal 1 on ipsec ike pre-shared-key 1 text (WindowsAzureで作成された共有キー) # remote name の指定 (remote address, local id の指定は不要) ipsec ike remote name 1 (WindowsAzureのゲートウェイIPアドレス) ipv4-addr ip tunnel tcp mss limit 1350 tunnel enable 1 ipsec auto refresh on
結果、RTX 側では tunnel インターフェースが有効になります。しかし Azure 側は有効になりません。
show ipsec sa gateway 1 detail でSAを確認してみる。
---------------------------------------------------- SA[58] Status: Establised Duration: 27694s Protocol: IKEv2 Local Host: (自ルータ側グローバルIP):37905 Remote Host: (Azure側グローバルIP):37905 Encryption Algorithm : 3DES PRF : HMAC_SHA1 Authentication Algorithm: HMAC_SHA1_96 DH Group: MODP_1024 SPI: ** ** ** ** ** (confidential) ** ** ** ** ** Key: ** ** ** ** ** (confidential) ** ** ** ** ** ---------------------------------------------------- SA[59] Status: Establised Duration: 27694s Direction: send Protocol: ESP (Mode: tunnel) Local ID : (自ルータ側グローバルIP) (IPv4_ADDR) Remote ID: (Azure側グローバルIP) (IPv4_ADDR) Encryption Algorithm : AES256_CBC Authentication Algorithm: HMAC_SHA1_96 ESN: DISABLE Source Traffic Selector (type / protocol / port / address) IPv6-range / any / 0-65535 / ::-ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff IPv4-range / any / 0-65535 / 0.0.0.0-255.255.255.255 Destination Traffic Selector (type / protocol / port / address) IPv6-range / any / 0-65535 / ::-ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff IPv4-range / any / 0-65535 / 0.0.0.0-255.255.255.255 SPI: ** ** ** ** Key: ** ** ** ** ** (confidential) ** ** ** ** ** ---------------------------------------------------- SA[60] Status: Establised Duration: 27694s Direction: receive Protocol: ESP (Mode: tunnel) Local ID : (自ルータ側グローバルIP) (IPv4_ADDR) Remote ID: (Azure側グローバルIP) (IPv4_ADDR) Encryption Algorithm : AES256_CBC Authentication Algorithm: HMAC_SHA1_96 ESN: DISABLE SPI: ** ** ** ** Key: ** ** ** ** ** (confidential) ** ** ** ** ** ----------------------------------------------------
Phase1はともかく繋がっている。(AES256のつもりだったのが 3DES になっていたけど)
Phase2 のSAは Traffic Selector が違う。 send 側 (RTXが作ったもの) はネットワーク全域。誰がこんな設定をしたかと調べると、Yamaha RTシリーズ IKEv2 の解説ページ の注意事項
メッセージ交換で使用されるTS (トラフィックセレクタ) ペイロードに関して、イニシエータとして動作する場合は、常にIPv4/IPv6すべてのアドレス、プロトコル番号、ポート番号を許可する内容を送信します。またレスポンダとして動作する場合は、常に提案されたTSペイロードを受理します。
なお、TSは既存のルーティング処理に影響を与えません。ルーティングの結果、トンネル経路へ向けられたパケットに対してTSは適用されます。
IKEv2 では相互接続性が向上するというのは未だ夢のようであった。 About VPN Devices for Virtual Network に Traffic Selector という単語は出てこないのだが、ここに至って
Dynamic routing とは Traffic Selector を意味していたようだ という事に気づくのだった。
送信側だけでよいので RTX810 に Traffic Selector の値設定する機能がつく日を期待したい。
[…] (2014/5/10 追記) https://kamiyn.wordpress.com/2014/05/10/yamaha-rtx810-rtx1200-rtx3000-windows-azure%E3%81%A8%E3%81%AE… […]
以下の設定で、Azure とは IKEv2 で Site to Site は繋がりました。
違いは、payload の設定と keepalive があるかないかだけだと思います。
使ってるのも下位機種の RTX810 ですけど…
tunnel select 1
tunnel name RTX810
ipsec tunnel 1
ipsec sa policy 1 1 esp anti-replay-check=off
ipsec ike version 1 2
ipsec ike keepalive log 1 off
ipsec ike keepalive use 1 on dpd
ipsec ike local name 1 YYY.YYY.YYY.YYY ipv4-addr
ipsec ike nat-traversal 1 on
ipsec ike payload type 1 2 2
ipsec ike pre-shared-key 1 text XXXXXXXXXXXXXXX
ipsec ike remote name 1 XXX.XXX.XXX.XXX ipv4-addr
ip tunnel tcp mss limit 1350
tunnel enable 1
接続報告ありがとうございます!
Azureに大幅に更新があったので試してみたいと思っていた最中で、やる気が3倍アップしました!
最後の1ピースは ipsec ike keepalive use 1 on dpd でした。
RTX810 は動作したのですが、
RTX3000, RTX1200 は動作せず…
RTX810 でも NAT を有効にしたら動作しなくなりました
NATの書き方にもしや秘密が
https://azure.microsoft.com/ja-jp/documentation/articles/vpn-gateway-about-vpn-devices/
用語変更あり 「静的ルーティング = ポリシーベース 動的ルーティング = ルートベース」