AWSリージョン間接続
AWSでリージョン間(例えば東京とオレゴン)で通信を行いたい場合、
AWSではVPCピアリングという機能があるが同一リージョンでしか使用できないため、VPNを構築する必要があります。
今回はVyOSを使用して、インスタンスにENIを付与する。
また、AWSのVPC/RouteTablesを追加しない方法で実現する。
構成図
前準備
- AmazonLinux 最新版のAMI
- →ENIを付与する
- VyOS コミュニティAMIの最新版(Version 1.1.0)
- →source dest checkを無効にする
- →EIPを付与する
設定方法
Tokyo AmazonLinux
- ルーティング設定
ip route add 10.110.0.0/16 dev eth1 via 10.102.0.200 table 100 ip rule add from 10.110.0.0/16 table 100 ip rule add to 10.110.0.0/16 table 100
Tokyo VyOS
Config
set vpn ipsec ipsec-interfaces interface eth0 set vpn ipsec ike-group ike lifetime 3600 set vpn ipsec ike-group ike proposal 1 encryption aes128 set vpn ipsec ike-group ike proposal 1 hash sha1 set vpn ipsec esp-group esp lifetime 1800 set vpn ipsec esp-group esp proposal 1 encryption aes128 set vpn ipsec esp-group esp proposal 1 hash sha1 set vpn ipsec site-to-site peer [EIP] authentication mode pre-shared-secret set vpn ipsec site-to-site peer [EIP] authentication pre-shared-secret XXXXXXXXXXXXXXXXX set vpn ipsec site-to-site peer [EIP] authentication id @tokyo-vyos set vpn ipsec site-to-site peer [EIP] authentication remote-id @oregon-vyos set vpn ipsec site-to-site peer [EIP] default-esp-group esp set vpn ipsec site-to-site peer [EIP] ike-group ike set vpn ipsec site-to-site peer [EIP] local-address [LocalIP] set vpn ipsec site-to-site peer [EIP] tunnel 1 local prefix 10.102.0.0/16 set vpn ipsec site-to-site peer [EIP] tunnel 1 remote prefix 10.110.0.0/16
Oregon AmazonLinux
- ルーティング設定
ip route add 10.102.0.0/16 dev eth1 via 10.110.0.100 table 100 ip rule add from 10.102.0.0/16 table 100 ip rule add to 10.102.0.0/16 table 100
Oregon VyOS
Config
set vpn ipsec ipsec-interfaces interface eth0 set vpn ipsec ike-group ike lifetime 3600 set vpn ipsec ike-group ike proposal 1 encryption aes128 set vpn ipsec ike-group ike proposal 1 hash sha1 set vpn ipsec esp-group esp lifetime 1800 set vpn ipsec esp-group esp proposal 1 encryption aes128 set vpn ipsec esp-group esp proposal 1 hash sha1 set vpn ipsec site-to-site peer [EIP] authentication mode pre-shared-secret set vpn ipsec site-to-site peer [EIP] authentication pre-shared-secret XXXXXXXXXXXXXXXXX set vpn ipsec site-to-site peer [EIP] authentication id @oregon-vyos set vpn ipsec site-to-site peer [EIP] authentication remote-id @tokyo-vyos set vpn ipsec site-to-site peer [EIP] default-esp-group esp set vpn ipsec site-to-site peer [EIP] ike-group ike set vpn ipsec site-to-site peer [EIP] local-address [LocalIP] set vpn ipsec site-to-site peer [EIP] tunnel 1 local prefix 10.110.0.0/16 set vpn ipsec site-to-site peer [EIP] tunnel 1 remote prefix 10.102.0.0/16
etc…
インスタンスにENIを付与することで、
インターネットへ向ける通信と分離ができたほうが良いかと思い実装してみました。
冗長構成などを考えた時に、AWSCLIでRouteTableを書き換える以外の選択肢もありそうです。
元記事はこちらです。
「AWSでのリージョン間接続(VPN/VyOS)」