OpenVPNとVPC(RouteTable)の設定だけで特定ドメインのみAlibabaCloudにルーティングさせるNW構成を作る

作成日:2020/03/05この記事は最終更新日から2年以上が経過しています。

ルーティングさせるNW構成

はじめに

本記事では、特定のドメインやG-IP向けの通信経路だけAlibaba Cloud網を通したいときの手段として検証した結果をご紹介します。
VPC間にCENを通して2つのVPCをつなげたうえで試してみました。 VPN接続後、NATサーバ(ECS)を通ってアクセスするようになります。

リソース構成図とNWフロー

下図のとおりです。 img

手順

OpenVPN:ECSの作成

GUIコンソールから作成しました。

  • サーバー情報
機能HostnameZoneInstanceTypeSpecP-IP
NATサーバnat01日本東京(ゾーンB)ecs.t5-lc1m1.small1vCPU 1GiB10.68.30.153
VPNサーバopenvpn01日本東京(ゾーンA)ecs.t5-lc1m1.small1vCPU 1GiB10.68.10.238

img

  • セキュリティグループ(OpenVPN) 便宜上一旦anyしてます img

  • セキュリティグループ(NATサーバ) 便宜上一旦anyにしてます img

  • VPCのルートテーブル情報(OpenVPN) img

  • VPCのルートテーブル情報(NATサーバ) img

OpenVPN:Configure

CAは腹持ちで建てました。

  • ポイント
    • push "route 13.112.0.0 255.252.0.0" ※qiitaのipアドレスをVPN接続したクライアントにpushする
[root@openvpn]# grep '^[^#]' 'server_r.conf
port 1194
proto udp
dev tun
ca /etc/openvpn/easy-rsa/pki/ca.crt
cert /etc/openvpn/easy-rsa/pki/issued/server_r.crt
key /etc/openvpn/easy-rsa/pki/private/server_r.key # This file should be kept secret
dh /etc/openvpn/easy-rsa/pki/dh.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "route 13.112.0.0 255.252.0.0"

ECS(NATサーバ):Configure

eth0 の firewalld zone を external に変更

# firewall-cmd --zone=external --change-interface=eth0 --permanent
success

externalゾーン に IPマスカレード設定

# firewall-cmd --zone=external --add-masquerade --permanent
success

変更の反映

# firewall-cmd --reload
success

Firewalldを常に起動

# systemctl enable firewalld

Firewalldを起動

# systemctl start firewalld

Firewalldのステータスを確認(RunningになっていればOK)

# systemctl status firewalld
irewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: active (running) since 木 2019-11-28 08:00:13 CST; 10h ago
Docs: man:firewalld(1)
Main PID: 542 (firewalld)
CGroup: /system.slice/firewalld.service
└─542 /usr/bin/python2 -Es /usr/sbin/firewalld --nofork --nopid
1128 08:00:13 nginx02 systemd[1]: Starting firewalld - dynamic firewall daemon...
1128 08:00:13 nginx02 systemd[1]: Started firewalld - dynamic firewall daemon.
1128 18:02:38 nginx02 firewalld[542]: WARNING: ALREADY_ENABLED: masquerade

検証

VPN接続

vpnuxやtunnelblickなどのGUIアプリでVPN接続します。

接続後にNW設定を確認

OpenVPNに設定しいてたクライアントサブネットが割り当てられていることを確認します。

User:~$ ifconfig | grep 10.8
inet 10.8.0.6 --> 10.8.0.5 netmask 0xffffffff

Qiita向けの経路が適切にpublishされているか確認します。

User:~$ netstat -rn | grep 13.112/14
13.112/14 10.8.0.5 UGSc utun8

特定ドメイン向けの経路を確認

img

これでVPN接続時はAlibaba CloudのVPC網を通ってNATサーバからQiitaにアクセスするようになりました 注意点としてIPアドレスが複数ある場合は、丸めて記載するか単体でそれぞれ記載するなど工夫が必要です。 OpenVPNがドメインで経路をpushできれば良さそうなんですけど、今のところはできなさそう...🤔

しかし、特定IP範囲であれば、クライアントのProxy設定不要でVPN接続さえすればローカルスプリットします。 そして、特定経路だけVPCにルーティングしてくれるので、ユーザーにルーティングを意識させたくないとき有効的に使える構成だと思います。

最後に

以上、特定のドメインやG-IP向けの通信経路だけAlibaba Cloud網を通したいときの手段として検証した結果になります。ご参考に頂ければ幸いです。

長岡周
この記事を書いた人
長岡周
2018年からAlibabaCloudサービスに携わる。現在プリセールスエンジニア。元営業マン。初心を忘れず日々精進。AlibabaCloud Professional(Cloud computing/Security)所持。
Close

Alibaba Cloudを始めてみましょう

ソフトバンクは、Alibaba Cloudのアカウント開設から、サービス展開までをお手伝いします。
Hatena
このページは参考になりましたか?