Yamaha RTX810 / RTX1200 / RTX3000 Windows AzureとのIPsec接続

静的ルーティング (Static Routing) の場合

静的ルーティングであれば、RTX公式ページの 「Windows AzureとのIPsec接続 設定例」 の設定例に従って記述すれば接続できます。

ここで問題なのは設定例中の以下の部分

ipsec ike remote id 1 172.16.0.1

図を見ると “Gateway Instance” と書いたネットワーク1番目になっています。2014年5月10日現在、日本語の AzurePortal では、「ゲートウェイサブネットの追加」により出来るネットワークです。
名称は 「ゲートウェイ 」になっています。

QS_20140510-190655

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 の値設定する機能がつく日を期待したい。

Yamaha RTX810 / RTX1200 / RTX3000 Windows AzureとのIPsec接続」への7件のフィードバック

  1. いろいろ役に立つ情報をありがとう より:

    以下の設定で、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

  2. kamiyn より:

    接続報告ありがとうございます!

    Azureに大幅に更新があったので試してみたいと思っていた最中で、やる気が3倍アップしました!

  3. kamiyn より:

    最後の1ピースは ipsec ike keepalive use 1 on dpd でした。

  4. kamiyn より:

    RTX810 は動作したのですが、
    RTX3000, RTX1200 は動作せず…

  5. kamiyn より:

    RTX810 でも NAT を有効にしたら動作しなくなりました
    NATの書き方にもしや秘密が

  6. kamiyn より:

    https://azure.microsoft.com/ja-jp/documentation/articles/vpn-gateway-about-vpn-devices/

    用語変更あり 「静的ルーティング = ポリシーベース 動的ルーティング = ルートベース」

コメントを残す