Vyatta ピアへの接続

IBM Cloud VPN for VPC を使用すると、VPN トンネルを介して VPC をオンプレミス・ネットワークに安全に接続できます。 このトピックでは、Vyatta の VPN ゲートウェイを、VPN for VPC に接続するように構成する方法について説明します。

これらの手順は、Vyatta バージョン AT&T vRouter 5600 1801d に基づいています。

オンプレミスのピアに接続を続ける前に、 VPNゲートウェイの既知の 問題をお読みください。

Vyatta VPN が VPN for VPC から接続要求を受け取ると、Vyatta は IPsec フェーズ 1 のパラメーターを使用してセキュア接続を確立し、VPN for VPC ゲートウェイを認証します。 その後、セキュリティー・ポリシーで接続が許可されると、Vyatta の VPN は、IPsec フェーズ 2 のパラメーターを使用して、トンネルを確立し、IPsec セキュリティー・ポリシーを適用します。 鍵管理サービス、認証サービス、およびセキュリティー・サービスは、IKE プロトコルを使用して動的にネゴシエーションされます。

これらの機能をサポートするために、Vyatta の VPN に対して以下の一般的な構成手順を実行する必要があります。

  • フェーズ 1 のパラメーターを定義します。これは、Vyatta が VPN for VPC を認証してセキュア接続を確立するために必要なパラメーターです。
  • フェーズ 2 のパラメーターを定義します。これは、Vyatta が VPN for VPC への VPN トンネルを作成するために必要なパラメーターです。

Vyatta ピアへの IBM ポリシー・ベースの VPN の接続

以下の構成を使用します。

  1. 認証で IKEv2 を選択します。
  2. フェーズ1の提案で DH-group 19。
  3. フェーズ 1 プロポーザルで lifetime = 36000 を設定します。
  4. フェーズ 2 プロポーザルで PFS を無効にします。
  5. フェーズ 2 プロポーザルで lifetime = 10800 を設定します。
  6. フェーズ 2 プロポーザルでピアとサブネットの情報を入力します。

下記のコマンドでは、以下の変数を使用しています。

  • {{ peer_address }} は VPN ゲートウェイのパブリック IP アドレス
  • {{ ibm_vpc_cidr }} は IBM VPC サブネットです。
  • {{ vyatta_address }} は Vyatta のパブリック IP アドレス
  • {{ vyatta_cidr }} は Vyatta のサブネット

開始前に

リモート Vyatta ピアをセットアップするには、必ず以下の前提条件を作成してください。

  • VPC

  • VPC のサブネット

  • 接続を設定していない VPC の VPN ゲートウェイ

    VPN ゲートウェイがプロビジョンされたら、そのパブリック IP アドレスをメモしてください。

  • Vyatta のパブリック IP アドレス

  • VPN を使用して接続する Vyatta サブネット

Vyatta の構成

Vyatta で構成を実行するには、以下の 2 つの方法があります。

  1. Vyatta にログインし、下記のコマンドを使用して create_vpn.vcli ファイルを実行します。
  2. Vyatta コンソールで、下記のコマンドを実行します。

次の点に注意してください。

  • 認証で IKEv2 を選択します。
  • DH-group 19を有効にします。
  • lifetime = 36000を設定します。
  • PFS を無効にします。
  • lifetime = 10800を設定します。

以下のコマンドは、以下の変数を使用します。

  • {{ peer_address }} は VPN ゲートウェイのパブリック IP アドレス
  • {{ ibm_vpc_cidr }} は IBM VPC サブネットです。
  • {{ vyatta_address }} は Vyatta のパブリック IP アドレス
  • {{ vyatta_cidr }} は Vyatta のサブネット
vim vyatta_temp/create_vpn.vcli
#!/bin/vcli -f
configure

set security vpn ipsec ike-group {{ peer_address }}_{{ ike["name"] }}
set security vpn ipsec ike-group {{ peer_address }}_{{ ike["name"] }} dead-peer-detection timeout 120
set security vpn ipsec ike-group {{ peer_address }}_{{ ike["name"] }} lifetime {{ ike["lifetime"] }}
set security vpn ipsec ike-group {{ peer_address }}_{{ ike["name"] }} ike-version {{ ike["version"] }}

set security vpn ipsec ike-group {{ peer_address }}_{{ ike["name"] }} proposal {{ loop.index }}
set security vpn ipsec ike-group {{ peer_address }}_{{ ike["name"] }} proposal {{ loop.index }} dh-group {{ proposal["dhgroup"] }}
set security vpn ipsec ike-group {{ peer_address }}_{{ ike["name"] }} proposal {{ loop.index }} encryption {{ proposal["encryption"] }}
set security vpn ipsec ike-group {{ peer_address }}_{{ ike["name"] }} proposal {{ loop.index }} hash {{ proposal["integrity"] }}


set security vpn ipsec esp-group {{ peer_address }}_{{ ipsec["name"] }} compression disable
set security vpn ipsec esp-group {{ peer_address }}_{{ ipsec["name"] }} lifetime {{ ipsec["lifetime"] }}
set security vpn ipsec esp-group {{ peer_address }}_{{ ipsec["name"] }} mode tunnel
set security vpn ipsec esp-group {{ peer_address }}_{{ ipsec["name"] }} pfs {{ ipsec["proposals"][0]["dhgroup"] }}

set security vpn ipsec esp-group {{ peer_address }}_{{ ipsec["name"] }} proposal {{ loop.index }} encryption {{ proposal["encryption"] }}
set security vpn ipsec esp-group {{ peer_address }}_{{ ipsec["name"] }} proposal {{ loop.index }} hash {{ proposal["integrity"] }}

set security vpn ipsec site-to-site peer {{ peer_address }} authentication mode pre-shared-secret
set security vpn ipsec site-to-site peer {{ peer_address }} authentication pre-shared-secret {{ psk }}
set security vpn ipsec site-to-site peer {{ peer_address }} ike-group {{ peer_address }}_{{ ike["name"] }}
set security vpn ipsec site-to-site peer {{ peer_address }} default-esp-group {{ peer_address }}_{{ ipsec["name"] }}
set security vpn ipsec site-to-site peer {{ peer_address }} description "automation test"
set security vpn ipsec site-to-site peer {{ peer_address }} local-address {{ vyatta_address }}
set security vpn ipsec site-to-site peer {{ peer_address }} connection-type {{ connection_type }}
set security vpn ipsec site-to-site peer {{ peer_address }} authentication remote-id {{ peer_address }}

set security vpn ipsec site-to-site peer {{ peer_address }} tunnel {{ ns.tunnel_index }} local prefix {{ vyatta_cidr }}
set security vpn ipsec site-to-site peer {{ peer_address }} tunnel {{ ns.tunnel_index }} remote prefix {{ ibm_vpc_cidr }}

commit
end_configure

例えば、以下のコマンドを実行できます。

#!/bin/vcli -f
configure

set security vpn ipsec ike-group 169.61.247.167_test_ike
set security vpn ipsec ike-group 169.61.247.167_test_ike dead-peer-detection timeout 120
set security vpn ipsec ike-group 169.61.247.167_test_ike lifetime 36000
set security vpn ipsec ike-group 169.61.247.167_test_ike ike-version 2

set security vpn ipsec ike-group 169.61.247.167_test_ike proposal 1
set security vpn ipsec ike-group 169.61.247.167_test_ike proposal 1 dh-group 19
set security vpn ipsec ike-group 169.61.247.167_test_ike proposal 1 encryption aes256
set security vpn ipsec ike-group 169.61.247.167_test_ike proposal 1 hash sha2_256
set security vpn ipsec esp-group 169.61.247.167_test_ipsec compression disable
set security vpn ipsec esp-group 169.61.247.167_test_ipsec lifetime 10800
set security vpn ipsec esp-group 169.61.247.167_test_ipsec mode tunnel
set security vpn ipsec esp-group 169.61.247.167_test_ipsec pfs disable


set security vpn ipsec esp-group 169.61.247.167_test_ipsec proposal 1 encryption aes256
set security vpn ipsec esp-group 169.61.247.167_test_ipsec proposal 1 hash sha2_256
set security vpn ipsec site-to-site peer 169.61.247.167 authentication mode pre-shared-secret
set security vpn ipsec site-to-site peer 169.61.247.167 authentication pre-shared-secret ***YOUR-PSK***
set security vpn ipsec site-to-site peer 169.61.247.167 ike-group 169.61.247.167_test_ike
set security vpn ipsec site-to-site peer 169.61.247.167 default-esp-group 169.61.247.167_test_ipsec
set security vpn ipsec site-to-site peer 169.61.247.167 description "automation test"
set security vpn ipsec site-to-site peer 169.61.247.167 local-address 169.63.66.53
set security vpn ipsec site-to-site peer 169.61.247.167 connection-type initiate
set security vpn ipsec site-to-site peer 169.61.247.167 authentication remote-id 169.61.247.167


set security vpn ipsec site-to-site peer 169.61.247.167 tunnel 1 local prefix 10.65.15.104/29
set security vpn ipsec site-to-site peer 169.61.247.167 tunnel 1 remote prefix 10.240.0.0/24


commit
end_configure

最後に、{{ psk }} 値をメモします。 これは、次のステップで VPN 接続をセットアップするために必要です。

Vyatta ピアへの IBM 経路ベース VPN の接続

以下の IKE および IPsec ポリシーを使用して、Vyatta への VPN 接続を作成します。

  1. 認証で IKEv2 を選択します。
  2. フェーズ 1 プロポーザルで DH-group 19、aes256、sha256 を有効にします。
  3. フェーズ 1 プロポーザルで lifetime = 86400 を設定します。
  4. フェーズ 2 プロポーザルで PFS、aes256、および sha256 を有効にします。
  5. フェーズ 2 プロポーザルで lifetime = 10800 を設定します。

このポリシーは単なる例です。 Vyatta プロポーザルと一致するその他の値を使用できます。

開始前に

リモート Vyatta ピアをセットアップするには、以下の前提条件を作成する必要があります。

  • VPC

  • VPC のサブネット

  • 接続を設定していない VPC の VPN ゲートウェイ

    VPN ゲートウェイがプロビジョンされたら、そのパブリック IP アドレスをメモしてください。 小さい IP アドレスは 1 次 IP で、大きい IP アドレスは 2 次 IP です。

  • Vyatta のパブリック IP アドレス

  • VPN を使用して接続する Vyatta サブネット

Vyatta の構成

下記のコマンドでは、以下の変数を使用しています。

  • {{ primary_peer_address }} は、経路ベースの VPN ゲートウェイのスモール・パブリック IP アドレスです。
  • {{ ibm_vpc_cidr }} は IBM VPC サブネットです。
  • {{ secondary_peer_address }} は、経路ベースの VPN ゲートウェイの大容量パブリック IP アドレスです。
  • {{ vyatta_address }} は Vyatta のパブリック IP アドレス

Vyatta の構成例を以下に示します。

  1. 一致する IKE プロポーザルを定義します。

    set security vpn ipsec ike-group ibm-vpc-ike-group
    set security vpn ipsec ike-group ibm-vpc-ike-group dead-peer-detection interval 2
    set security vpn ipsec ike-group ibm-vpc-ike-group dead-peer-detection action clear
    set security vpn ipsec ike-group ibm-vpc-ike-group lifetime 86400
    set security vpn ipsec ike-group ibm-vpc-ike-group ike-version 2
    set security vpn ipsec ike-group ibm-vpc-ike-group proposal 1
    set security vpn ipsec ike-group ibm-vpc-ike-group proposal 1 dh-group 19
    set security vpn ipsec ike-group ibm-vpc-ike-group proposal 1 encryption aes256
    set security vpn ipsec ike-group ibm-vpc-ike-group proposal 1 hash sha2_256
    
  2. 一致する IPsec プロポーザルを定義します。

    set security vpn ipsec esp-group ibm-vpc-ipsec-group compression disable
    set security vpn ipsec esp-group ibm-vpc-ipsec-group lifetime 10800
    set security vpn ipsec esp-group ibm-vpc-ipsec-group mode tunnel
    set security vpn ipsec esp-group ibm-vpc-ipsec-group pfs dh-group19
    set security vpn ipsec esp-group ibm-vpc-ipsec-group proposal 1 encryption aes256
    set security vpn ipsec esp-group ibm-vpc-ipsec-group proposal 1 hash sha2_256
    
  3. IBM 1 次トンネルへの VTI および VPN 接続を作成します。

    仮想トンネル・インターフェースを作成し、インターフェース上でリンク・ローカル・アドレス (169.254.0.2/30) を構成します。 リンク・ローカル・アドレスを選択し、それが装置上の他のアドレスと重複しないように注意してください。 30 ビット・ネットマスクのサブネットには、2 つの使用可能な IP アドレス (169.254.0.1 および 169.254.0.2) があります。 最初の IP アドレス 169.254.0.1 は IBM VPN ゲートウェイ VTI アドレスとして使用され、2 番目の IP アドレス 169.254.0.2は Vyatta VTI アドレスとして使用されます。 Vyatta 上に複数の VTI がある場合は、別のリンク・ローカル・サブネット (169.254.0.4/30、169.254.0.8/30など) を選択できます。

    IBM VPN ゲートウェイで 169.254.0.1 を構成する必要はありません。 これは、Vyatta で経路を構成した場合にのみ参照されます。

    set interfaces vti vti1 description "to-IBM-VPN-primary"
    set interfaces vti vti1 address 169.254.0.2/30
    set interfaces vti vti1 ip tcp-mss limit 1360
    set security vpn ipsec site-to-site peer {{ primary_peer_address }} authentication mode pre-shared-secret
    set security vpn ipsec site-to-site peer {{ primary_peer_address }} authentication pre-shared-secret {{your_pre_shared_key}}
    set security vpn ipsec site-to-site peer {{ primary_peer_address }} ike-group ibm-vpc-ike-group
    set security vpn ipsec site-to-site peer {{ primary_peer_address }} default-esp-group ibm-vpc-ipsec-group
    set security vpn ipsec site-to-site peer {{ primary_peer_address }} description "to-IBM-VPN-primary"
    set security vpn ipsec site-to-site peer {{ primary_peer_address }} local-address {{ vyatta_address }}
    set security vpn ipsec site-to-site peer {{ primary_peer_address }} connection-type initiate
    set security vpn ipsec site-to-site peer {{ primary_peer_address }} authentication remote-id {{ primary_peer_address }}
    set security vpn ipsec site-to-site peer {{ primary_peer_address }} vti bind vti1
    
  4. 1 次経路を作成します。

    set protocols static route {{ ibm_vpc_cidr }} next-hop 169.254.0.1 distance 10
    set protocols static route {{ ibm_vpc_cidr }} next-hop 169.254.0.1 interface vti1
    
  5. IBM 2 次トンネルへの VTI および VPN 接続を作成します。

    set interfaces vti vti2 description "to-IBM-VPN-secondary"
    set interfaces vti vti2 address 169.254.0.6/30
    set interfaces vti vti2 ip tcp-mss limit 1360
    set security vpn ipsec site-to-site peer {{ secondary_peer_address }} authentication mode pre-shared-secret
    set security vpn ipsec site-to-site peer {{ secondary_peer_address }} authentication pre-shared-secret {{your_pre_shared_key}}
    set security vpn ipsec site-to-site peer {{ secondary_peer_address }} ike-group ibm-vpc-ike-group
    set security vpn ipsec site-to-site peer {{ secondary_peer_address }} default-esp-group ibm-vpc-ipsec-group
    set security vpn ipsec site-to-site peer {{ secondary_peer_address }} description "to-IBM-VPN-secondary"
    set security vpn ipsec site-to-site peer {{ secondary_peer_address }} local-address {{ vyatta_address }}
    set security vpn ipsec site-to-site peer {{ secondary_peer_address }} connection-type initiate
    set security vpn ipsec site-to-site peer {{ secondary_peer_address }} authentication remote-id {{ secondary_peer_address }}
    set security vpn ipsec site-to-site peer {{ secondary_peer_address }} vti bind vti2
    

    VVTI IP アドレス 169.254.0.6 は一例です。 他の任意の未使用 IP アドレスを使用できます。

  6. 1 次経路を作成します。

    set protocols static route {{ ibm_vpc_cidr }} next-hop 169.254.0.5 distance 20
    set protocols static route {{ ibm_vpc_cidr }} next-hop 169.254.0.5 interface vti2
    

トラブルシューティング

  • Vyatta で CPP ファイアウォールを有効にする場合は、IBM ゲートウェイからのトラフィックを許可するルールを構成する必要があります。 例えば、CPP ファイアウォール名が GATEWAY_CPP である場合は、以下のルールをファイアウォールに追加してください。

    # set security firewall name GATEWAY_CPP rule 250 source address 169.61.247.167
    # set security firewall name GATEWAY_CPP rule 250 action accept
    
  • ファイアウォールをインターフェースに適用する場合は、IBM VPC からのトラフィックを許可する必要があります。 以下に例を示します。

    # set security firewall name to-vpc rule 20 destination address 10.240.0.0/24
    # set security firewall name to-vpc rule 20 action accept
    # set security firewall name from-vpc rule 20 source address 10.240.0.0/24
    # set security firewall name from-vpc rule 20 action accept
    # set interfaces bonding dp0bond0 vif 862 firewall out to-vpc
    # set interfaces bonding dp0bond0 vif 862 firewall in from-vpc
    

    他のトラフィックを許可するには、ネットワーク要件に応じて他のルールを追加する必要がある場合があります。

  • ゾーン・ファイアウォールを IPsec とともに使用する場合は、ゾーン・ファイアウォールで機能する IPsec トンネルのセットアップを参照してください。