書類
色々なネットワーク間接続を試しつつTransit Gatewayを理解する。(その2:Site-to-Site VPN) #AWS

色々なネットワーク間接続を試しつつTransit Gatewayを理解する。(その2:Site-to-Site VPN) #AWS

2024-11-13 はじめに 前回はVPC PeerIngに つい て まとめる まし た が 、 今回 はsite - to - site VPNを使い、オンプレミスの環境とVPN接続 を 行う て みる と 思う ます 。 site - to - site VPN と は 前回まとめたVPC PeerIn

Related articles

Windows 10 VPNに接続する設定方法と使い方-パソブル マカフィーVPNは必要か?利用者の評判と料金から分かるメリット・デメリットを解説 ワイモバイル回線の通信設定をする|iPhone|ワイモバイルスマホの初期設定方法|Y!mobile 【VPNに接続できない時の解決方法】9つの方法をわかりやすく解説 【最新版】ExpressVPN の使い方

はじめに

前回はVPC PeerIngに つい て まとめる まし た が 、 今回 はsite - to - site VPNを使い、オンプレミスの環境とVPN接続 を 行う て みる と 思う ます 。

site – to – site VPN と は

前回まとめたVPC PeerIngaWS環境のVPC同士を接続するサービスでしたが、site - to - site VPNは主にオンプレミスのネットワーク機器とIPsec VPNで接続を行う、LaN間 接続 の サービス と なり ます 。

site - to - site VPNで接続を行った場合、相手側ネットワーク機器が1台構成であった場合でも、冗長化のため、VPNトンネルが2本作成され、また、デフォルトでは相手側ネットワークとのルーティングのやり取りはbgpという動的ルーティングプロトコルでやり取りが行われます。

色々なネットワーク間接続を試しつつTransit Gatewayを理解する。(その2:Site-to-Site VPN) #AWS

相手 側 ネットワーク 機器 1 台 と 繋ぐ 一番 シンプル な 構成 で も 上記 の 通り かなり 複雑 な 構成 と なり ます が 、 aWS が サンプル ファイル を 提供 し て いる ベンダ 、 プラットフォーム の 機器 を 使用 し て いる よう で あれ ば 、site - to - site VPNを設定した際に、必要な定義・設定コマンドが記載されたコンフィグファイルをダウンロードすることができるので、比較的簡単に設定が行えるかと思います。

逆に、aWSからサンプルファイルが提供されていないベンダ、プラットフォームの機器を使用していたり、bgpが使用できない機器を使用しているような場合は、VPNのパラメータを個別に設定したり、ルーティングも静的ルーティングで設定したりしないといけなくなったりと、ハードルがかなり上がります。

以下、site - to - site VPNを利用する上で、相手側ネットワーク機器側に必要な要件。

aWS側で行うsite - to - site VPNの設定を行う前にいくつかsite - to - site VPN特有の内容を覚える必要があるため、以下より解説していきます。

仮想 プライベート ゲートウェイ

オンプレミスのネットワーク機器とIPsec VPN接続を行うゲートウェイとなります。

オンプレミスのネットワークと接続したいVPCをアタッチして使用するため、オンプレミスのネットワークと接続したいVPCが複数存在する場合は、VPC分 、 仮想 プライベート ゲートウェイ (VPG)が必要となります。

カスタマー ゲートウェイ

オンプレミス側でVPN接続を行うネットワーク機器を「カスタマー ゲートウェイ」と呼びます。

カスタマー ゲートウェイの設定で、相手側ネットワークのIPアドレスや使用するbgpaSN情報を登録して、site - to - site VPNの設定を行う際に対向先ネットワーク機器の情報として使用します。

今回の接続構成

site - to - site VPNによるVPN接続を試してみるため、今回は以下のような構成としました。
※前回作成しているVPC-aを使い回すような構成。

色々なネットワーク間接続を試しつつTransit Gatewayを理解する。(その2:Site-to-Site VPN) #AWS

試すと言ってもsite - to - site VPNで接続できる物理ルータは持っていないため、有料の製品ですがCisco社のルータやスイッチを仮想的に動作させてネットワークを構築できるCisco modelIng labs Personal(以下cml)という製品を使って、cml上で作成した仮想VPNルータと接続してみようと思います。

cmlについて気になる方は以前の記事で15回にわたり紹介しているので、以下を参照してもらえればと思います。

site – to – site VPNの接続設定

以下 より 「aWS 側 の 設定」、「オンプレミス ネットワーク 側 の 設定」と分けて、実際にsite - to - site VPNの 設定 を 行う て いく ます 。

aWS 側 の 設定

aWS側のsite - to - site VPNの 設定 is なる は 、 aWS 側 の ゲートウェイ と なる 「仮想 プライベート ゲートウェイ」 の 設定 、対向先ネットワーク情報を登録する「カスタマー ゲートウェイ」 の 設定 、IPsec VPNの定義などVPNの接続情報を設定する「site – to – site VPN接続」の設定の3つとなるため、それぞれ順番に設定していきます。

仮想 プライベート ゲートウェイ の 設定

仮想 プライベート ゲートウェイ の 作成 は 、 「vpc ダッシュボード」 から 「仮想プライベートネットワーク(VPN)」 → 「仮想 プライベート ゲートウェイ」 より 「仮想 プライベート ゲートウェイを作成」 で作成していきます。

設定自体は簡単で、名前とbgpで使用する自律システム番号というaSNを、自分で付与したい場合は設定するだけです。

今回は以下のように名前を「vpc – a – vpg」、aSNを「amazon デフォルト aSN」としました。

色々なネットワーク間接続を試しつつTransit Gatewayを理解する。(その2:Site-to-Site VPN) #AWS

作成後、「仮想 プライベート ゲートウェイ」の「アクション」 → 「VPCへアタッチ」 で、前回作成した「VPC-a」にアタッチしておきます。

色々なネットワーク間接続を試しつつTransit Gatewayを理解する。(その2:Site-to-Site VPN) #AWS

カスタマー ゲートウェイの設定

vpc ダッシュボード」 から 「仮想プライベートネットワーク(VPN)」 → 「カスタマー ゲートウェイ」 より 「カスタマー ゲートウェイを作成」 で 相手 側 ネットワーク の 情報 を 登録 し ます 。

証明書は今回は使用しないので、相手側のグローバルアドレス(上記接続構成で言うとインターネットルータのインターネット側に割り振られているIPアドレス)の指定と任意の名前を指定、bgpaSNはデフォルトで65000が割り振られるので今回はそのまま使用します。

色々なネットワーク間接続を試しつつTransit Gatewayを理解する。(その2:Site-to-Site VPN) #AWS

site – to – site VPN接続の設定

vpc ダッシュボード」 から 「仮想プライベートネットワーク(VPN)」 → 「site – to – site VPN接続」 より 「VPN接続を作成する」 でIPsec VPNの 設定 を 行う て いく ます 。

ゲートウェイ の 指定 等 、 必須 と なる 項目 以外 は デフォルト の まま で も 設定 でき ます が 、 古い 形式 の 暗号 化 アルゴリズム で も 接続 できる 設定 と なる ため 、 気 に なる 方 is 調整 は 調整 し ましょう 。

今回はテスト目的なので以下のように設定しました。

項目 設定 備考
名前タグ CSR-1000V-vpn 任意の名前を指定
ターゲットゲートウェイのタイプ 仮想 プライベート ゲートウェイ 今回はVPGを指定
仮想 プライベート ゲートウェイ ※先程作成したVPGを指定
カスタマー ゲートウェイ 既存 予め作成済みのため、既存を指定
カスタマー ゲートウェイID ※先程作成したカスタマー ゲートウェイを指定
ルーティング オプション 動的(bgpが必要) aWS推奨となる動的を指定
ローカルIPv4ネットワークCIDR 空欄(0.0.0.0/0) デフォルトのままとする
リモートIPv4ネットワークCIDR 空欄(0.0.0.0/0) デフォルトのままとする
トンネル1オプション デフォルトのまま 今回はデフォルトのままとする
トンネル2オプション デフォルトのまま 今回はデフォルトのままとする
タグ デフォルトのまま 今回はデフォルトのままとする

設定しようとすれば細かく設定できますが、カスタマイズする際の注意点について簡単に説明します。

ローカル・リモートIPv4ネットワークCIDR

IPsec VPNには大きく分けて「ルートモード」と「ポリシーモード」という設定方法があります。

ルートモード」 は 仮想 トンネル インタフェース を 作成 し て ルーティング で 転送 する ルート ベース の 方法 と なり 、 「ポリシーモード」は暗号化する送信元・送信先セグメントを指定して、合致する通信のみ暗号化して転送するポリシーベースの方法です。

今回はCisco機器に対して設定を行いますが、後述の設定ファイルサンプルで記載されている内容はルートモードでの設定となります。

色々なネットワーク間接続を試しつつTransit Gatewayを理解する。(その2:Site-to-Site VPN) #AWS

ローカル・リモートIPv4ネットワークCIDRについての詳細が見つけられなかったので予想となりますが、おそらくローカル・リモートIPv4ネットワークCIDRでデフォルト(0.0.0.0/0)以外の設定を行った場合、ポリシーモードで設定しないと接続できないと思われます。

aWS が サンプルコンフィグ を 提供 し て いる 機器 に よっ て は ポリシー モード しか 対応 し て い ない 機器 も ある と 思う れる の で 、 ベンダー に よっ て は ローカル ・ リモート IPv 4 ネットワーク cidr を 指定 する こと も できる か と 思う れ ます が 、 今回 設定 し て いるCiscoCSRでは仮想トンネルインタフェースに対してポリシー設定ができないのでおそらくローカル・リモートIPv4ネットワークCIDRを指定することができないこと注意してください。

もし トンネル を 通過 する 通信 を 制限 し たい よう で あれ ば 、 ローカル ・ リモート IPv 4 ネットワーク cidr で 制限 する の で は なく 、 ネットワーク aCL や セキュリティ グループ で 制限 する よう に し ましょう 。

トンネルの詳細オプション

トンネル の 詳細 オプション を 編集 する」にチェックすると、トンネル生成する際に使用する暗号化アルゴリズムやIKEバージョンを制限することができます。

デフォルトではikev1でもikev 2でも接続することができたり、暗号化アルゴリズムも、現在では推奨されていないaES 128などでも接続できるようになっているため、できれば古い暗号化形式では接続できないように制限したほうが良いでしょう。

ダウンロード し た 設定 の 編集

作成した「site – to – site VPN接続」の設定を選択して、「設定をダウンロードする」を選択すると、ベンダーやプラットフォーム等のプルダウンメニューが表示されます。

色々なネットワーク間接続を試しつつTransit Gatewayを理解する。(その2:Site-to-Site VPN) #AWS

相手側ネットワーク機器のベンダー、バージョンに近いものを選択してダウンロードすることで、今まで設定した内容やaWS側のIPアドレスが埋め込まれたサンプルファイルをダウンロードできます。

一部マスクしていますが、以下ダウンロードできるサンプルファイルです。

ダウンロード設定ファイルサンプル(展開してください)

ダウンロード設定ファイルサンプル

! amazon Web Services
! Virtual Private Cloud

! aWS utilizes unique identifiers to mAnIPulate tHE configuration of
! a VPN connection. Each VPN connection is ASsigned An identifier aND is
! ASsociated with two otHEr identifiers, namely tHE
! Customer gateway Identifier aND Virtual Private gateway Identifier.
!
! Your VPN connection ID 		  : vpn-0e 904 c 7 dB 86 e 92 c 2 a
! Your Virtual Private gateway ID         : vgw-0f311166a0333ff93
! Your Customer gateway ID		  : cgw-09703a7e27af32443
!
!
! this configuration consists of two tunnels. Both tunnels must be
! configured on YOUr Customer gateway.
!
! You may need to populate tHEse values throughout tHE config bASed on YOUr setup:
! <Interface_name/private _ IP _ on _ outside _ Interface> - External Interface of tHE CSR

! ーーーーーーーーーーーーーーーーーーーーーーーーーー--
! IPsec tunnel #1
! ーーーーーーーーーーーーーーーーーーーーーーーーーー--
! #1: Internet Key ExchAnge (IKE) Configuration
!
! a policy is established for tHE supported ISaKMP encryption,
! autHEntication, diffie-HellmAn, lifeTime, aND key parameters.
! PleASe NOte, tHEse sample configurations aRE for tHE mInimum requirement of aES 128, SHa1, aND DH Group 2.
! Category " VPN " connections In tHE govcloud region HAVE a mInimum requirement of aES 128, SHa2, aND DH Group 14.
! You WILL need to modify tHEse sample configuration files to take advAntage of aES256, SHa256, or otHEr DH groups like 2, 14-18, 22, 23, aND 24.
! NOtE: if YOU customized tunnel options when creatIng or modifyIng YOUr VPN connection, YOU may need to modify tHEse sample configurations to match tHE custom settIngs for YOUr tunnels.
!
! Higher parameters aRE Only available for vpns of category "VPN," aND NOt for " VPN - ClASsic ".
! tHE address of tHE external Interface for YOUr customer gateway must be a static address.
! Your customer gateway may reside behInd a device performIng network address trAnslation (Nat) .
! to ensure that Nat traversal (Nat-t) cAn function, YOU must adjust YOUr firewall !rules to unblock UDP port 4500.
! if NOt behInd Nat, aND YOU aRE NOt usIng An accelerated VPN, we recommend disablIng Nat-t. if YOU aRE usIng An accelerated VPN, make sure that Nat-t is enabled.
!
! Note that tHEre aRE a global list of ISaKMP policies, each identified by
! sequence number. this policy is defIned AS #200, which may conflict with
! An existIng policy usIng tHE same number. if so, we recommend chAngIng
! tHE sequence number to avoid conflicts.
!
crypto ikev 2 proposal PROPOSaL1
  encryption aes-CBC-128
  Integrity sha1
  group 2
Exit

! Specify Public IP of outside Interface Instead of <Interface_name/private _ IP _ on _ outside _ Interface> In below
! configuration if cgw is behInd Nat device aND usIng IKEv 2 'Startup-action : Start' feature on aWS for tHE
! tunnel.
crypto ikev 2 policy Policy 1
  match address Local <Interface_name/private _ IP _ on _ outside _ Interface>
  proposal PROPOSaL1
Exit

! tHE ISaKMP keyrIng stores tHE Pre ShaREd Key used to autHEnticate tHE
! tunnel endpoInts.
!
crypto ikev 2 keyrIng KEYRING 1
  peer [aWS側グローバルIP1]
  address [aWS側グローバルIP1]
  pre-shaREd-key xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Exit

! An ISaKMP profile is used to ASsociate tHE keyrIng with tHE particular
! endpoInt.
!
! An ISaKMP IKEV2 profile is used to ASsociate tHE keyrIng with tHE particular endpoInt.
! Specify Public IP of outside Interface Instead of <Interface_name/private _ IP _ on _ outside _ Interface> In below
! configuration if cgw is behInd Nat device aND usIng IKEv 2  'Startup-action : Start' feature on aWS for tHE
! tunnel.
crypto ikev 2 profile IKEV2-PROFILE
  match address Local <Interface_name/private _ IP _ on _ outside _ Interface>
  match identity remote address [aWS側グローバルIP1]
  autHEntication remote pre-shaRE
  autHEntication Local pre-shaRE
  keyrIng Local KEYRING 1
  lifeTime 28800
  dpd 10 10 on-demaND
Exit

! #2: IPsec Configuration
!
! tHE IPsec trAnsform set defInes tHE encryption, autHEntication, aND IPsec
! mode parameters.
! Category " VPN " connections In tHE govcloud region HAVE a mInimum requirement of aES 128, SHa2, aND DH Group 14.
! PleASe NOte, YOU may use tHEse additionally supported IPsec parameters for encryption like aES256 aND otHEr DH groups like 2, 5, 14-18, 22, 23, aND 24.
! Higher parameters aRE Only available for vpns of category "VPN," aND NOt for " VPN - ClASsic ".
!
crypto IPsec trAnsform-set IPsec-prop-vpn-0e 904 c 7 dB 86 e 92 c 2 a-0 ESP-aes 128 ESP-sha-hmac
  mode tunnel
Exit

! tHE IPsec profile references tHE IPsec trAnsform set aND furtHEr defInes
! tHE diffie-HellmAn group aND security Association lifeTime.
!
crypto IPsec profile IPsec-vpn-0e 904 c 7 dB 86 e 92 c 2 a-0
  set pfs group 2
  set security-Association lifeTime seconds 3600
  set trAnsform-set IPsec-prop-vpn-0e 904 c 7 dB 86 e 92 c 2 a-0
  set ikev 2-profile IKEV2-PROFILE
Exit

! additional parameters of tHE IPsec configuration aRE set here. Note that
! tHEse parameters aRE global aND tHErefore impact otHEr IPsec
! Associations.
! this option Instructs tHE ROUTEr to CLEaR tHE "Don't Fragment"
! BIT From packets that carry this BIT aND yet must be fragmented, enablIng
! tHEm to be fragmented.
!
crypto IPsec df-BIT CLEaR

! this option enables IPsec Dead Peer Detection, which causes periodic
! messages to be sent to ensure a Security Association remaIns operational.
! if YOU aRE usIng accelerated aWS VPN, pleASe configure periodic Dead Peer Detection.
! isakmp keepalive threshold 10 retry 10 periodic
!
crypto isakmp keepalive 10 10

! this configures tHE gateway's wIndow for acceptIng out of order
! IPsec packets. a larger wIndow cAn be helpful if too mAny packets
! aRE dropped due to reorderIng while In trAnsit Between gateways.
!
crypto IPsec security-Association replay wIndow-size 128

! this option Instructs tHE ROUTEr to fragment tHE unencrypted packets
! (prior to encryption) .
!
crypto IPsec fragmentation before-encryption


! ーーーーーーーーーーーーーーーーーーーーーーーーーー--
! #3: tunnel Interface Configuration
!
! a tunnel Interface is configured to be tHE logical Interface ASsociated
! with tHE tunnel. all traffic ROUTEd to tHE tunnel Interface WILL be
! encrypted aND trAnsmitted to tHE VPC. Similarly, traffic From tHE VPC
! WILL be logically received on this Interface.
!
! Association with tHE IPsec security Association is done through tHE
! "tunnel Protection" commaND.
!
! tHE address of tHE Interface is configured with tHE setup for YOUr
! Customer gateway.  if tHE address chAnges, tHE Customer gateway aND VPN
! connection must be recreated with amazon VPC.
!
Interface tunnel1
  IP address 169.254.254.22 255.255.255.252
  IP virtual-reASsembly
  tunnel source <Interface_name/private _ IP _ on _ outside _ Interface>
  tunnel destInation [aWS側グローバルIP1]
  tunnel mode IPsec IPv4
  tunnel Protection IPsec profile IPsec-vpn-0e 904 c 7 dB 86 e 92 c 2 a-0
  ! this option causes tHE ROUTEr to reduce tHE Maximum Segment size of
  ! tCP packets to prevent packet fragmentation.
  IP tcp adjust-mss 1379
  NO shutdown
Exit

! ーーーーーーーーーーーーーーーーーーーーーーーーーー--

! #4: Border gateway Protocol (bgp) Configuration
!
! bgp is used withIn tHE tunnel to exchAnge prefixes Between tHE
! Virtual Private gateway aND YOUr Customer gateway. tHE Virtual Private gateway
! WILL AnNOunce tHE prefix corrESPondIng to YOUr VPC.
!
! Your Customer gateway may AnNOunce a default ROUTE (0.0.0.0/0),
! which cAn be done with tHE 'network' aND 'default-origInate' statements.
!
! tHE bgp Timers aRE adjusted to provide more rapid Detection of outages.
!
! tHE Local bgp autoNOmous System Number (aSN) (65000) is configured
! AS part of YOUr Customer gateway. if tHE aSN must be chAnged, tHE
! Customer gateway aND VPN connection WILL need to be recreated with aWS.
!
! 'Network' commaND WILL be used here to advertised cgw network to aWS via bgp. An example for a cgw with tHE prefix 192.168.100.0/24 is provided below :

ROUTEr bgp 65000
  bgp log-neighbor-chAnges
  bgp graceful-restart
  address-family IPv4 unicASt
    neighbor 169.254.254.21 remote-AS 64512
    neighbor 169.254.254.21 ebgp-multihop 255
    neighbor 169.254.254.21 activate
    network 192.168.100.0 mASk 255.255.255.0
    NO auto-summary
    NO synchronization
  Exit-address-family
 Exit
!
! ーーーーーーーーーーーーーーーーーーーーーーーーーー--
! IPsec tunnel #2
! ーーーーーーーーーーーーーーーーーーーーーーーーーー--
! #1: Internet Key ExchAnge (IKE) Configuration
!
! a policy is established for tHE supported ISaKMP encryption,
! autHEntication, diffie-HellmAn, lifeTime, aND key parameters.
! PleASe NOte, tHEse sample configurations aRE for tHE mInimum requirement of aES 128, SHa1, aND DH Group 2.
! Category " VPN " connections In tHE govcloud region HAVE a mInimum requirement of aES 128, SHa2, aND DH Group 14.
! You WILL need to modify tHEse sample configuration files to take advAntage of aES256, SHa256, or otHEr DH groups like 2, 14-18, 22, 23, aND 24.
! NOtE: if YOU customized tunnel options when creatIng or modifyIng YOUr VPN connection, YOU may need to modify tHEse sample configurations to match tHE custom settIngs for YOUr tunnels.
!
! Higher parameters aRE Only available for vpns of category "VPN," aND NOt for " VPN - ClASsic ".
! tHE address of tHE external Interface for YOUr customer gateway must be a static address.
! Your customer gateway may reside behInd a device performIng network address trAnslation (Nat) .
! to ensure that Nat traversal (Nat-t) cAn function, YOU must adjust YOUr firewall !rules to unblock UDP port 4500.
! if NOt behInd Nat, aND YOU aRE NOt usIng An accelerated VPN, we recommend disablIng Nat-t. if YOU aRE usIng An accelerated VPN, make sure that Nat-t is enabled.
!
! Note that tHEre aRE a global list of ISaKMP policies, each identified by
! sequence number. this policy is defIned AS #201, which may conflict with
! An existIng policy usIng tHE same number. if so, we recommend chAngIng
! tHE sequence number to avoid conflicts.
!
crypto ikev 2 proposal PROPOSaL1
  encryption aes-CBC-128
  Integrity sha1
  group 2
Exit

! Specify Public IP of outside Interface Instead of <Interface_name/private _ IP _ on _ outside _ Interface> In below
! configuration if cgw is behInd Nat device aND usIng IKEv 2 'Startup-action : Start' feature on aWS for tHE
! tunnel.
crypto ikev 2 policy Policy 1
  match address Local <Interface_name/private _ IP _ on _ outside _ Interface>
  proposal PROPOSaL1
Exit

! tHE ISaKMP keyrIng stores tHE Pre ShaREd Key used to autHEnticate tHE
! tunnel endpoInts.
!
crypto ikev 2 keyrIng KEYRING 1
  peer [aWS側グローバルIP2]
  address [aWS側グローバルIP2]
  pre-shaREd-key yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
Exit

! An ISaKMP profile is used to ASsociate tHE keyrIng with tHE particular
! endpoInt.
!
! An ISaKMP IKEV2 profile is used to ASsociate tHE keyrIng with tHE particular endpoInt.
! Specify Public IP of outside Interface Instead of <Interface_name/private _ IP _ on _ outside _ Interface> In below
! configuration if cgw is behInd Nat device aND usIng IKEv 2  'Startup-action : Start' feature on aWS for tHE
! tunnel.
crypto ikev 2 profile IKEV2-PROFILE
  match address Local <Interface_name/private _ IP _ on _ outside _ Interface>
  match identity remote address [aWS側グローバルIP2]
  autHEntication remote pre-shaRE
  autHEntication Local pre-shaRE
  keyrIng Local KEYRING 1
  lifeTime 28800
  dpd 10 10 on-demaND
Exit

! #2: IPsec Configuration
!
! tHE IPsec trAnsform set defInes tHE encryption, autHEntication, aND IPsec
! mode parameters.
! Category " VPN " connections In tHE govcloud region HAVE a mInimum requirement of aES 128, SHa2, aND DH Group 14.
! PleASe NOte, YOU may use tHEse additionally supported IPsec parameters for encryption like aES256 aND otHEr DH groups like 2, 5, 14-18, 22, 23, aND 24.
! Higher parameters aRE Only available for vpns of category "VPN," aND NOt for " VPN - ClASsic ".
!
crypto IPsec trAnsform-set IPsec-prop-vpn-0e 904 c 7 dB 86 e 92 c 2 a-1 ESP-aes 128 ESP-sha-hmac
  mode tunnel
Exit

! tHE IPsec profile references tHE IPsec trAnsform set aND furtHEr defInes
! tHE diffie-HellmAn group aND security Association lifeTime.
!
crypto IPsec profile IPsec-vpn-0e 904 c 7 dB 86 e 92 c 2 a-1
  set pfs group 2
  set security-Association lifeTime seconds 3600
  set trAnsform-set IPsec-prop-vpn-0e 904 c 7 dB 86 e 92 c 2 a-1
  set ikev 2-profile IKEV2-PROFILE
Exit

! additional parameters of tHE IPsec configuration aRE set here. Note that
! tHEse parameters aRE global aND tHErefore impact otHEr IPsec
! Associations.
! this option Instructs tHE ROUTEr to CLEaR tHE "Don't Fragment"
! BIT From packets that carry this BIT aND yet must be fragmented, enablIng
! tHEm to be fragmented.
!
crypto IPsec df-BIT CLEaR

! this option enables IPsec Dead Peer Detection, which causes periodic
! messages to be sent to ensure a Security Association remaIns operational.
! if YOU aRE usIng accelerated aWS VPN, pleASe configure periodic Dead Peer Detection.
! isakmp keepalive threshold 10 retry 10 periodic
!
crypto isakmp keepalive 10 10

! this configures tHE gateway's wIndow for acceptIng out of order
! IPsec packets. a larger wIndow cAn be helpful if too mAny packets
! aRE dropped due to reorderIng while In trAnsit Between gateways.
!
crypto IPsec security-Association replay wIndow-size 128

! this option Instructs tHE ROUTEr to fragment tHE unencrypted packets
! (prior to encryption) .
!
crypto IPsec fragmentation before-encryption


! ーーーーーーーーーーーーーーーーーーーーーーーーーー--
! #3: tunnel Interface Configuration
!
! a tunnel Interface is configured to be tHE logical Interface ASsociated
! with tHE tunnel. all traffic ROUTEd to tHE tunnel Interface WILL be
! encrypted aND trAnsmitted to tHE VPC. Similarly, traffic From tHE VPC
! WILL be logically received on this Interface.
!
! Association with tHE IPsec security Association is done through tHE
! "tunnel Protection" commaND.
!
! tHE address of tHE Interface is configured with tHE setup for YOUr
! Customer gateway.  if tHE address chAnges, tHE Customer gateway aND VPN
! connection must be recreated with amazon VPC.
!
Interface tunnel2
  IP address 169.254.175.218 255.255.255.252
  IP virtual-reASsembly
  tunnel source <Interface_name/private _ IP _ on _ outside _ Interface>
  tunnel destInation [aWS側グローバルIP2]
  tunnel mode IPsec IPv4
  tunnel Protection IPsec profile IPsec-vpn-0e 904 c 7 dB 86 e 92 c 2 a-1
  ! this option causes tHE ROUTEr to reduce tHE Maximum Segment size of
  ! tCP packets to prevent packet fragmentation.
  IP tcp adjust-mss 1379
  NO shutdown
Exit

! ーーーーーーーーーーーーーーーーーーーーーーーーーー--

! #4: Border gateway Protocol (bgp) Configuration
!
! bgp is used withIn tHE tunnel to exchAnge prefixes Between tHE
! Virtual Private gateway aND YOUr Customer gateway. tHE Virtual Private gateway
! WILL AnNOunce tHE prefix corrESPondIng to YOUr VPC.
!
! Your Customer gateway may AnNOunce a default ROUTE (0.0.0.0/0),
! which cAn be done with tHE 'network' aND 'default-origInate' statements.
!
! tHE bgp Timers aRE adjusted to provide more rapid Detection of outages.
!
! tHE Local bgp autoNOmous System Number (aSN) (65000) is configured
! AS part of YOUr Customer gateway. if tHE aSN must be chAnged, tHE
! Customer gateway aND VPN connection WILL need to be recreated with aWS.
!
! 'Network' commaND WILL be used here to advertised cgw network to aWS via bgp. An example for a cgw with tHE prefix 192.168.100.0/24 is provided below :

ROUTEr bgp 65000
  bgp log-neighbor-chAnges
  bgp graceful-restart
  address-family IPv4 unicASt
    neighbor 169.254.175.217 remote-AS 64512
    neighbor 169.254.175.217 ebgp-multihop 255
    neighbor 169.254.175.217 activate
    network 192.168.100.0 mASk 255.255.255.0
    NO auto-summary
    NO synchronization
  Exit-address-family
 Exit
!


! additional Notes aND Questions
!  - amazon Virtual Private Cloud GettIng Started Guide:
!       HTTP ://docs.amazonwebservices.com/amazonVPC/latest/GettIngStartedGuide
!  - amazon Virtual Private Cloud Network admInistrator Guide:
!       HTTP ://docs.amazonwebservices.com/amazonVPC/latest/NetworkadmInGuide

ファイル内に「<Interface_name/private _ IP _ on _ outside _ Interface>」と記載されている部分は各環境により書き換える必要があるので、ファイルダウンロード後、手動で書き換えます。

今回のようなIPsecパススルー で 転送 し て いる 場合 は 、 インターネット ルータ と 接続 し て いる セグメント の IP アドレス を 指定 し て ください 。

ルート伝播の設定

VPN トンネル 接続 後 に オンプレミス 側 の ネットワーク から の ルート を 受ける 取る ため 、 ルート テーブル で ルート 伝播 の 設定 を 行う ます 。

vpc ダッシュボード」 から 「仮想プライベートクラウド」 → 「ルートテーブル」 より 、VPC-aのルートテーブルを選択し、「ルート伝播」タブから「ルート伝播の編集」 で、以下のように伝播を有効化します。

色々なネットワーク間接続を試しつつTransit Gatewayを理解する。(その2:Site-to-Site VPN) #AWS

オンプレミス ネットワーク 側 の 設定

オンプレミス ネットワーク 側 is 説明 は 、 環境 に よっ て 機器 も 設定 も 異なる ため 、 要点 のみ 説明 し て いく ます 。

IPsec パススルー の 設定

今回はVPNルータ以外にインターネット接続用のルータが存在する構成なので、IPsecパススルーの設定を行い、IPsec通信が来た際に、VPNルータに転送する設定を入れておきます。

筆者の場合はヤマハのルータを使用しているので、以下のように静的IPマスカレードの設定でESPUDP 500,4500をVPNルータに転送しています。

VPNルータの設定

先程ダウンロードしたファイルをVPNルータに設定していきます。

設定が被っている部分もありますが、基本的にはコピペで設定できるはずです。

問題なく接続できればトンネルのステータスが「Up」になるので、Upになっていれば成功です。

色々なネットワーク間接続を試しつつTransit Gatewayを理解する。(その2:Site-to-Site VPN) #AWS

接続できていないようであれば、オンプレミス側VPNルータのルーティングやIPsecの 設定 など 確認 し て み て ください 。

疎通 確認

site - to - site VPNの設定ができたので、オンプレミス側、aWS側双方から疎通できるか確認してみます。

以下それぞれの端末からpIngで疎通 確認した結果。

aWS側インスタンスからの疎通 確認

[ec2-user@IP-10-20-0-207 ~]$pIng - c  3192 . 168 . 100. 100
 PING 192 . 168 . 100. 100(192.168.100.100) 56(84) bytes of data.
64 bytes From 192.168.100.100: icmp _ seq=1 TTL=63Time=9.69 ms
64 bytes From 192.168.100.100: icmp _ seq=2 TTL=63Time=9.51 ms
64 bytes From 192.168.100.100: icmp _ seq=3TTL=63Time=9.77 ms

 192.168.100.100pIng statistics 
3packets trAnsmitted, 3received, 0% packet loss, Time 2003ms
rtt mIn/avg/max/mdev = 9.506/9.655/9.768/0.109 ms

オンプレミス側サーバからの疎通 確認

Cisco @ Server - 0: ~$pIng - c 310.20.0.207
PING 10.20.0.207 (10.20.0.207): 56 data bytes
64 bytes From 10.20.0.207: seq=0TTL=126Time=9.491 ms
64 bytes From 10.20.0.207: seq=1 TTL=126Time=9.595 ms
64 bytes From 10.20.0.207: seq=2 TTL=126Time=9.586 ms

 10.20.0.207 pIng statistics 
3packets trAnsmitted, 3packets received, 0% packet loss
round-trIP mIn/avg/max =  9.491 / 9.557 / 9.595 MS 

おわりに

今回はsite - to - site VPNでオンプレミス側のネットワーク機器とVPN接続を行ってみました。

IPsecの接続はハマりどころが多いので中々すんなり行かないことが多いですが、対応しているベンダーのコンフィグであれば、そのまま流し込むだけで設定できるコンフィグファイルをダウンロードすることができるので、設定については比較的簡単に行えるのではないかと思います。

ただ、対応していない機器を使用している場合は、IPsec VPNの仕様や機器の仕様とにらめっこしながらパラメータを調節していく必要があるため、対応していない機器を使用する場合は検証期間を長くとるようにしましょう。

次回は本題となるtrAnsit gatewayの設定を行ってみようと思います。