はじめに
仕事でAWSの「Site-to-Site VPN接続」を使用することがあり、勉強を兼ねて自宅ネットワークとVPCを接続してみました。備忘録を兼ねて手順をまとめておきます。
環境
Wi-Fi ルータは、BUFFALOのWXR-2533DHP2を使っています。
vyosはvyos-1.3.0-rc6を使っています。
https://vyos.net/get/snapshots/
作業の流れ
作業は大きく2つあります。
AWSの設定と自宅にある仮想ルータの設定です。仮想ルータはvyosを使います。
AWSの設定
VPCの作成
サブネットの作成
ルートテーブルの作成
仮想プライベートゲートウェイの作成
カスタマーゲートウェイの作成
vyosの設定
VyOSは、オープンソースで開発されているネットワークOSです。主にソフトウェアルータとして使われることが多いです。vyosにVPNの設定を追加することでAWSと接続させます。
操作手順
AWSの設定
VPCの作成
名前タグ:Test-VPC01
IPv4 CIDR:10.1.0.0/16
サブネットの作成
VPC ID:Test-VPC01
サブネット名:Test-Subnet01
アベイラビリティゾーン:アジアパシフィック(東京)/ap-northeast-1a
IPv4 CIDR ブロック:10.1.0.0/24
サブネット名:Test-Subnet02
アベイラビリティゾーン:アジアパシフィック(東京)/ap-northeast-1c
IPv4 CIDR ブロック:10.1.1.0/24
仮想プライベートゲートウェイの作成
名前タグ:Test-VGW
自律システム番号(ASN):Amazon デフォルト ASN
作成した仮想プライベートゲートウェイを選択し、アクションボタンから「VPCへアタッチ」を選択します。
作成したVPC(Test-VPC01)へアタッチします。
状態が数秒で「Attaching」から「Attached」になれば完了です。
カスタマーゲートウェイの作成
名前タグ:Test-CGW
BGP ASN:65000
IPアドレス:自宅のグローバルIP(CMANなどで確認して下さい)
VPN接続の作成
名前タグ:Test-VPN01
ターゲットゲートウェイのタイプ:仮想プライベートゲートウェイ
仮想プライベートゲートウェイ:Test-VGW
カスタマーゲートウェイ:既存
カスタマーゲートウェイ ID:Test-CGW
ルーティングオプション:動的 (BGP が必要)
設定ファイルのダウンロード
VPN接続画面から「設定をダウンロードする」ボタンをクリックします。
ベンダー:Vyatta
プラットフォーム:Vyatta Network OS
ソフトウェア:Vyatta Network OS 6.5+
IKEバージョン:ikev1
自宅の仮想ルータの設定
ダウンロードした設定ファイルを元に仮想ルータに設定を入れていきます。グローバルIPやトンネルIPなどは環境に合わせて修正して下さい。
IKEの設定
# --------------------------------------------------------------------------------
# IPSec Tunnel #1
# --------------------------------------------------------------------------------
set vpn ipsec ike-group AWS lifetime '28800'
set vpn ipsec ike-group AWS proposal 1 dh-group '2'
set vpn ipsec ike-group AWS proposal 1 encryption 'aes128'
set vpn ipsec ike-group AWS proposal 1 hash 'sha1'
set vpn ipsec site-to-site peer 54.178.177.98 authentication mode 'pre-shared-secret'
set vpn ipsec site-to-site peer 54.178.177.98 authentication pre-shared-secret '●事前共有キー●'
set vpn ipsec site-to-site peer 54.178.177.98 description 'VPC tunnel 1'
set vpn ipsec site-to-site peer 54.178.177.98 ike-group 'AWS'
set vpn ipsec site-to-site peer 54.178.177.98 local-address '●vyosのWAN側インタフェースのプライベートIP●'
set vpn ipsec site-to-site peer 54.178.177.98 vti bind 'vti0'
set vpn ipsec site-to-site peer 54.178.177.98 vti esp-group 'AWS'
# --------------------------------------------------------------------------------
# IPSec Tunnel #2
# --------------------------------------------------------------------------------
set vpn ipsec ike-group AWS lifetime '28800'
set vpn ipsec ike-group AWS proposal 1 dh-group '2'
set vpn ipsec ike-group AWS proposal 1 encryption 'aes128'
set vpn ipsec ike-group AWS proposal 1 hash 'sha1'
set vpn ipsec site-to-site peer 35.73.28.153 authentication mode 'pre-shared-secret'
set vpn ipsec site-to-site peer 35.73.28.153 authentication pre-shared-secret '●事前共有キー●'
set vpn ipsec site-to-site peer 35.73.28.153 description 'VPC tunnel 2'
set vpn ipsec site-to-site peer 35.73.28.153 ike-group 'AWS'
set vpn ipsec site-to-site peer 35.73.28.153 local-address '●vyosのWAN側インタフェースのプライベートIP●'
set vpn ipsec site-to-site peer 35.73.28.153 vti bind 'vti1'
set vpn ipsec site-to-site peer 35.73.28.153 vti esp-group 'AWS'
IPSecの設定
set vpn ipsec ipsec-interfaces interface 'eth0' ●使用するインターフェースを確認
set vpn ipsec esp-group AWS compression 'disable'
set vpn ipsec esp-group AWS lifetime '3600'
set vpn ipsec esp-group AWS mode 'tunnel'
set vpn ipsec esp-group AWS pfs 'enable'
set vpn ipsec esp-group AWS proposal 1 encryption 'aes128'
set vpn ipsec esp-group AWS proposal 1 hash 'sha1'
トンネルの設定
# --------------------------------------------------------------------------------
# IPSec Tunnel #1
# --------------------------------------------------------------------------------
set interfaces vti vti0 address '169.254.211.118/30'
set interfaces vti vti0 description 'VPC tunnel 1'
set interfaces vti vti0 mtu '1436'
# --------------------------------------------------------------------------------
# IPSec Tunnel #2
# --------------------------------------------------------------------------------
set interfaces vti vti1 address '169.254.45.214/30'
set interfaces vti vti1 description 'VPC tunnel 2'
set interfaces vti vti1 mtu '1436'
BGPの設定
# --------------------------------------------------------------------------------
# IPSec Tunnel #1
# --------------------------------------------------------------------------------
set protocols bgp 65000 neighbor 169.254.211.117 remote-as '64512'
set protocols bgp 65000 neighbor 169.254.211.117 address-family ipv4-unicast soft-reconfiguration 'inbound'
set protocols bgp 65000 neighbor 169.254.211.117 timers holdtime '30'
set protocols bgp 65000 neighbor 169.254.211.117 timers keepalive '10'
set protocols bgp 65000 address-family ipv4-unicast network 0.0.0.0/0
# --------------------------------------------------------------------------------
# IPSec Tunnel #2
# --------------------------------------------------------------------------------
set protocols bgp 65000 neighbor 169.254.45.213 remote-as '64512'
set protocols bgp 65000 neighbor 169.254.45.213 address-family ipv4-unicast soft-reconfiguration 'inbound'
set protocols bgp 65000 neighbor 169.254.45.213 timers holdtime '30'
set protocols bgp 65000 neighbor 169.254.45.213 timers keepalive '10'
set protocols bgp 65000 address-family ipv4-unicast network 0.0.0.0/0
NATトラバーサルの設定
自宅の環境によっては必要ですが、管理人の環境では不要でした。
set vpn ipsec nat-traversal enable
set vpn ipsec nat-networks allowed-network 0.0.0.0/0
動作確認
仮想ルータの設定が完了するとトンネルのステータスがアップします。
仮想ルータ側でも基本的な動作確認をしておきます。
# --------------------------------------------------------------------------------
# IPSec Tunnel #1
# --------------------------------------------------------------------------------
#仮想ルータ側のトンネルIPにPing
vyos@Router# ping 169.254.211.118
PING 169.254.211.118 (169.254.211.118) 56(84) bytes of data.
64 bytes from 169.254.211.118: icmp_seq=1 ttl=64 time=0.014 ms
64 bytes from 169.254.211.118: icmp_seq=2 ttl=64 time=0.083 ms
64 bytes from 169.254.211.118: icmp_seq=3 ttl=64 time=0.082 ms
# AWS側のトンネルIPにPing
vyos@Router# ping 169.254.211.117
PING 169.254.211.117 (169.254.211.117) 56(84) bytes of data.
64 bytes from 169.254.211.117: icmp_seq=1 ttl=254 time=18.6 ms
64 bytes from 169.254.211.117: icmp_seq=2 ttl=254 time=19.5 ms
64 bytes from 169.254.211.117: icmp_seq=3 ttl=254 time=22.6 ms
# --------------------------------------------------------------------------------
# IPSec Tunnel #2
# --------------------------------------------------------------------------------
# 仮想ルータ側のトンネルIPにPing
vyos@Router# ping 169.254.45.214
PING 169.254.45.214 (169.254.45.214) 56(84) bytes of data.
64 bytes from 169.254.45.214: icmp_seq=1 ttl=64 time=0.021 ms
64 bytes from 169.254.45.214: icmp_seq=2 ttl=64 time=0.086 ms
64 bytes from 169.254.45.214: icmp_seq=3 ttl=64 time=0.037 ms
# AWS側のトンネルIPにPing
vyos@Router# ping 169.254.45.213
PING 169.254.45.213 (169.254.45.213) 56(84) bytes of data.
64 bytes from 169.254.45.213: icmp_seq=1 ttl=254 time=20.8 ms
64 bytes from 169.254.45.213: icmp_seq=2 ttl=254 time=20.5 ms
64 bytes from 169.254.45.213: icmp_seq=3 ttl=254 time=20.7 ms
# インターフェースの状態を確認
vyos@Router:~$ show interfaces
Codes: S - State, L - Link, u - Up, D - Down, A - Admin Down
Interface IP Address S/L Description
--------- ---------- --- -----------
eth1 192.168.188.154/24 u/u
lo 127.0.0.1/8 u/u
::1/128
vti0 169.254.211.118/30 u/u VPC tunnel 1
vti1 169.254.45.214/30 u/u VPC tunnel 2
# ISAKMP SAの生成状態を確認する
vyos@Router:~$ show vpn ike sa
Peer ID / IP Local ID / IP
------------ -------------
35.73.28.153 192.168.188.154
Description: VPC tunnel 1
State IKEVer Encrypt Hash D-H Group NAT-T A-Time L-Time
----- ------ ------- ---- --------- ----- ------ ------
up IKEv1 aes128 sha1_96 2(MODP_1024) no 3600 28800
Peer ID / IP Local ID / IP
------------ -------------
54.178.177.98 192.168.188.154
Description: VPC tunnel 2
State IKEVer Encrypt Hash D-H Group NAT-T A-Time L-Time
----- ------ ------- ---- --------- ----- ------ ------
up IKEv1 aes128 sha1_96 2(MODP_1024) no 3600 28800
# IPSecの状態を確認する
vyos@Router:~$ show vpn ipsec sa
Connection State Uptime Bytes In/Out Packets In/Out Remote address Remote ID Proposal
----------------------------- ------- -------- -------------- ---------------- ---------------- ----------- ----------------------------------
peer-54.178.177.98-tunnel-vti up 2m32s 2K/2K 38/40 54.178.177.98 N/A AES_CBC_128/HMAC_SHA1_96/MODP_1024
peer-35.73.28.153-tunnel-vti up 2m32s 2K/2K 44/45 35.73.28.153 N/A AES_CBC_128/HMAC_SHA1_96/MODP_1024
# ルートテーブルを確認する
vyos@Router:~$ route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default _gateway 0.0.0.0 UG 20 0 0 eth1
10.1.0.0 169.254.45.213 255.255.0.0 UG 20 0 0 vti1
169.254.45.212 0.0.0.0 255.255.255.252 U 0 0 0 vti1
169.254.211.116 0.0.0.0 255.255.255.252 U 0 0 0 vti0
192.168.188.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
コメント