■検証概要
オンプレミスからクラウドへの移行にあたり、クライアント及び移行対象の変更を極力少なくするために
移行対象のIPアドレスを変更したくない場合があると思います。
但し、オラクルクラウドを含むほとんどのパブリッククラウドサービスでは
L2延伸をサポートしていないため、オンプレミスと異なるサブネットをクラウド上に割り当てて
それに合わせて送信元クライアントにおけるアクセス先IPアドレスと移行対象のIPアドレス設計を
変更するのが一般的だと思います。
IPアドレスを引き継ぐことだけが要件なのであればL2TP/IPSECで満たせるのでは?と思い、検証してみました。
■クラウド化のシナリオ
①通信要件
- 既存のOn-Premises上にある「Client#1」から「Server#1」へは同セグメント(192.168.100.0/24)間での通信を
行っているが、「Server#1」をクラウド(OCI)上に移行する計画である。
その際、「Client#1」における通信先のIPアドレス変更及び移行対象「Server#1」のIPアドレス変更が発生しない
ネットワーク構成にしたい。
②検証構成について
- 既存のOn-Premises環境にあるインターネット接続ルータ(RTX1200)のL2TP/IPSECを利用、VPNサーバ化する。
- OCI上にOn-Premisesと同じPublic Subnetを作成、「Server#1」の移行先となるインスタンスにも
On-Premisesと同じIPアドレスを割り当てる。また移行先インスタンスにはインターネット間通信時に利用するPublic IP(固定)を割り当てる。 - OCI上に作成したインスタンスはWindows標準機能(L2TP/IPSEC接続)を利用、VPNクライアントとする。
③動作について(「Server#1」移行後を想定)
- VPNサーバ(RTX1200)はサーバ上のL2TPサーバ設定情報をもとにクライアント認証を行う。
認証に成功したクライアントに対しては認証情報に基づき、決められた固定IPアドレスを払い出す。 - 認証成功後はVPNクライアントにはL2TP/IPSEC通信用の仮想NICが生成され、VPNサーバから払い出されたIPアドレスが設定される。
- VPN接続後のVPNクライアントは2つのルーティングポイント(Default Gateway)を持つようになり、Windowsでは仮想NIC側のDefault Gateway(VPNサーバ)が優先的に使われる(Metric値による制御)。
- VPNサーバ(RTX1200)を経由して「Client#1」⇔OCI上の「Server#1」間の通信が可能になる。
※「Client#1」のARP RequestにVPNサーバが代理応答(Proxy-ARP)する仕組み
■VPNサーバ(RTX1200)コンフィグ
以下のURL記載情報をもとに作成しています
https://network.yamaha.com/setting/router_firewall/vpn/vpn_client/vpn-smartphone-setup_rtx1200
[ゲートウェイの設定]
ip route default gateway pp 1
[LANインターフェースの設定]
ip lan1 address 192.168.100.251/24
ip lan1 proxyarp on
[L2TP接続を受け入れるための設定]
pp select 4
pp bind tunnel3
pp auth request chap-pap
pp auth username ocitest3 password3
ppp ipcp ipaddress on
ppp ipcp msext on
ip pp remote address 192.168.100.203
ip pp mtu 1258
pp enable 4
[L2TP接続で使用するトンネルの設定]
tunnel select 3
tunnel encapsulation l2tp
tunnel endpoint address x.x.x.x
ipsec tunnel 103
ipsec sa policy 103 3 esp aes-cbc sha-hmac
ipsec ike keepalive use 3 off
ipsec ike local address 3 192.168.100.251
ipsec ike nat-traversal 3 on
ipsec ike pre-shared-key 3 text vpn3
ipsec ike remote address 3 x.x.x.x
l2tp tunnel disconnect time off
l2tp keepalive use on 10 3
l2tp keepalive log on
l2tp syslog on
ip tunnel tcp mss limit auto
tunnel enable 3
[NATの設定]
nat descriptor type 1 masquerade
nat descriptor address outer 1 ipcp
nat descriptor address inner 1 auto
nat descriptor masquerade static 1 1 192.168.100.251 esp
nat descriptor masquerade static 1 2 192.168.100.251 udp 500
nat descriptor masquerade static 1 3 192.168.100.251 udp 4500
[IPsecのトランスポートモード設定]
ipsec auto refresh on
ipsec transport 3 103 udp 1701
[DNSの設定]
dns server 8.8.8.8
dns private address spoof on
[L2TPの設定]
l2tp service on
■VPNクライアント「Server#1」VPN設定
以下のURL記載情報をもとに作成しています
https://support.microsoft.com/ja-jp/help/20510/windows-10-connect-to-vpn
-
[Type of VPN]及び[Authentication]の設定を以下の通りに変更後、[Advanced settings]をクリック
-
L2TPの認証方法を選択後、[Key]にPreShared keyを入力したらVPN設定が完了します
設定完了後は[Control Panel] - [Network and Internet] - [Network Connections]の画面に戻り仮想NICを右クリック、
[Connect/Disconnect]を選択して認証を行いVPN接続。
■VPNクライアント「Server#1」確認ログ
- ipconfig/all(VPN接続前)※一部編集
Ethernet adapter Ethernet 3: ★VPNクライアントの標準VNIC
Connection-specific DNS Suffix . : -
Description . . . . . . . . . . . : Oracle VirtIO Ethernet Adapter #2
Physical Address. . . . . . . . . : -
DHCP Enabled. . . . . . . . . . . : Yes
Autoconfiguration Enabled . . . . : Yes
Link-local IPv6 Address . . . . . : -
IPv4 Address. . . . . . . . . . . : 192.168.100.201(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Lease Obtained. . . . . . . . . . : Thursday, October 31, 2019 1:13:07 AM
Lease Expires . . . . . . . . . . : Friday, November 1, 2019 1:13:07 AM
Default Gateway . . . . . . . . . : 192.168.100.1 ★VPNクライアントが配置されているSubnetのDefaultGW(Oracle管理)
DHCP Server . . . . . . . . . . . : 169.254.169.254
DHCPv6 IAID . . . . . . . . . . . : -
DHCPv6 Client DUID. . . . . . . . : -
DNS Servers . . . . . . . . . . . : 169.254.169.254
NetBIOS over Tcpip. . . . . . . . : Enabled
C:\Users\opc>
- ipconfig/all(VPN接続後)※一部編集
PPP adapter oci: ★VPN接続後に生成された仮想NIC
Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : oci
Physical Address. . . . . . . . . :
DHCP Enabled. . . . . . . . . . . : No
Autoconfiguration Enabled . . . . : Yes
Link-local IPv6 Address . . . . . : -
IPv4 Address. . . . . . . . . . . : 192.168.100.203(Preferred) ★認証情報をもとにVPNサーバから払い出されたIPアドレス
Subnet Mask . . . . . . . . . . . : 255.255.255.255
Default Gateway . . . . . . . . . : 0.0.0.0
DHCPv6 IAID . . . . . . . . . . . : 469893143
DHCPv6 Client DUID. . . . . . . . : -
DNS Servers . . . . . . . . . . . : 192.168.100.251
8.8.8.8
NetBIOS over Tcpip. . . . . . . . : Enabled
Ethernet adapter Ethernet 3:
Connection-specific DNS Suffix . : -
Description . . . . . . . . . . . : Oracle VirtIO Ethernet Adapter #2
Physical Address. . . . . . . . . : -
DHCP Enabled. . . . . . . . . . . : Yes
Autoconfiguration Enabled . . . . : Yes
Link-local IPv6 Address . . . . . : -
IPv4 Address. . . . . . . . . . . : 192.168.100.201(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Lease Obtained. . . . . . . . . . : Thursday, October 31, 2019 1:13:07 AM
Lease Expires . . . . . . . . . . : Friday, November 1, 2019 1:13:07 AM
Default Gateway . . . . . . . . . : 192.168.100.1
DHCP Server . . . . . . . . . . . : 169.254.169.254
DHCPv6 IAID . . . . . . . . . . . : 151126039
DHCPv6 Client DUID. . . . . . . . : 00-01-00-01-25-4B-ED-1D-02-00-17-06-FC-AC
DNS Servers . . . . . . . . . . . : 169.254.169.254
NetBIOS over Tcpip. . . . . . . . : Enabled
C:\Users\opc>
- route print(VPN接続前)※一部編集
IPv4 Route Table
===========================================================================
Active Routes:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 192.168.100.1 192.168.100.201 15 ★Oracle管理のDefaultGWが使われている
127.0.0.0 255.0.0.0 On-link 127.0.0.1 331
127.0.0.1 255.255.255.255 On-link 127.0.0.1 331
127.255.255.255 255.255.255.255 On-link 127.0.0.1 331
169.254.0.0 255.255.0.0 On-link 192.168.100.201 16
169.254.169.254 255.255.255.255 192.168.100.1 192.168.100.201 16
169.254.255.255 255.255.255.255 On-link 192.168.100.201 271
192.168.100.0 255.255.255.0 On-link 192.168.100.201 271
192.168.100.201 255.255.255.255 On-link 192.168.100.201 271
192.168.100.255 255.255.255.255 On-link 192.168.100.201 271
202.45.0.0 255.255.0.0 192.168.100.1 192.168.100.201 16
224.0.0.0 240.0.0.0 On-link 127.0.0.1 331
224.0.0.0 240.0.0.0 On-link 192.168.100.201 271
255.255.255.255 255.255.255.255 On-link 127.0.0.1 331
255.255.255.255 255.255.255.255 On-link 192.168.100.201 271
===========================================================================
Persistent Routes:
None
C:\Users\opc>
- route print(VPN接続後)※一部編集
IPv4 Route Table
===========================================================================
Active Routes:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 192.168.100.1 192.168.100.201 4240
0.0.0.0 0.0.0.0 On-link 192.168.100.203 26 ★VPNサーバがDefaultGWとして追加されている
127.0.0.0 255.0.0.0 On-link 127.0.0.1 4556 Oracle管理GW向けのDefault Routeより
127.0.0.1 255.255.255.255 On-link 127.0.0.1 4556 小さいMetric値になっているため、外部NWとの
127.255.255.255 255.255.255.255 On-link 127.0.0.1 4556 通信時はこちらのルーティングが優先的に
169.254.0.0 255.255.0.0 On-link 192.168.100.201 4241 使われることになる
169.254.169.254 255.255.255.255 192.168.100.1 192.168.100.201 4241
169.254.255.255 255.255.255.255 On-link 192.168.100.201 4496
192.168.100.0 255.255.255.0 On-link 192.168.100.201 4496
192.168.100.201 255.255.255.255 On-link 192.168.100.201 4496
192.168.100.203 255.255.255.255 On-link 192.168.100.203 281
192.168.100.255 255.255.255.255 On-link 192.168.100.201 4496
202.45.0.0 255.255.0.0 192.168.100.1 192.168.100.201 4241
210.156.169.138 255.255.255.255 192.168.100.1 192.168.100.201 4241
224.0.0.0 240.0.0.0 On-link 127.0.0.1 4556
224.0.0.0 240.0.0.0 On-link 192.168.100.201 4496
224.0.0.0 240.0.0.0 On-link 192.168.100.203 26
255.255.255.255 255.255.255.255 On-link 127.0.0.1 4556
255.255.255.255 255.255.255.255 On-link 192.168.100.201 4496
255.255.255.255 255.255.255.255 On-link 192.168.100.203 281
===========================================================================
Persistent Routes:
None
C:\Users\opc>
■「Client#1」疎通確認ログ
- pingによる疎通確認
※インターネット環境にLTEを使用したため応答速度が遅いです。
ping 192.168.100.203
192.168.100.203 に ping を送信しています 32 バイトのデータ:
192.168.100.203 からの応答: バイト数 =32 時間 =92ms TTL=127
192.168.100.203 からの応答: バイト数 =32 時間 =148ms TTL=127
192.168.100.203 からの応答: バイト数 =32 時間 =53ms TTL=127
192.168.100.203 からの応答: バイト数 =32 時間 =54ms TTL=127
192.168.100.203 の ping 統計:
パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
最小 = 53ms、最大 = 148ms、平均 = 86ms
- arp確認
arp -a
インターフェイス: 192.168.100.253 --- 0xc
インターネット アドレス 物理アドレス 種類
192.168.100.203 00-a0-de-6b-37-b6 動的 ★VPNサーバ(192.168.100.251)が「Server#1」へのARPリクエストに
192.168.100.251 00-a0-de-6b-37-b6 動的 代理応答(Proxy ARP)しているため「Server#1」のARPアドレスが
192.168.100.255 ff-ff-ff-ff-ff-ff 静的 VPNサーバのものと同じになっている
224.0.0.22 01-00-5e-00-00-16 静的
224.0.0.251 01-00-5e-00-00-fb 静的
224.0.0.252 01-00-5e-00-00-fc 静的
239.255.255.250 01-00-5e-7f-ff-fa 静的
- Remote Desktop接続
■VPNサーバ「RTX1200」確認ログ(Client接続後)
※一部編集あり
# show ipsec sa
Total: isakmp:1 send:1 recv:1
sa sgw isakmp connection dir life[s] remote-id
-----------------------------------------------------------------------------
1 3 - isakmp - 28696 x.x.x.x
2 3 1 tra[003]esp send 3496 x.x.x.x
3 3 1 tra[003]esp recv 3496 x.x.x.x
#
# show status l2tp
------------------- L2TP INFORMATION -------------------
L2TP情報テーブル
L2TPトンネル数: 1, L2TPセッション数: 1
TUNNEL[3]:
トンネルの状態: established
バージョン: L2TPv2
自機側トンネルID: 6424
相手側トンネルID: 4
自機側IPアドレス: 192.168.100.251
相手側IPアドレス: x.x.x.x
自機側送信元ポート: 1701
相手側送信元ポート: 1701
PPインタフェース: PP[04]
ベンダ名: Microsoft
ホスト名: tokyo-vcn3-pub1
Next Transmit sequence(Ns): 13
Next Receive sequence(Nr) : 4
トンネル内のセッション数: 1 session
セッション情報:
セッションの状態: established
自機側セッションID: 45522
相手側セッションID: 1
通信時間: 1分51秒
受信: 272 パケット [92904 オクテット]
送信: 231 パケット [72474 オクテット]
#
# show ip route
宛先ネットワーク ゲートウェイ インタフェース 種別 付加情報
default - PP[01] static
192.168.100.203/32 - PP[04] implicit
y.y.y.y/32 - PP[01] implicit
#
###■その他
- OCI上に移行するサーバの台数が多い場合は一台ずつVPNクライアントの設定が必要になるため設定・運用が面倒になりそう。
- 基本動作として、VPN接続後は全ての外部との通信(0.0.0.0/0)についてVPNサーバがDefaultGWになるため
OCI上のインスタンス間の通信もVPNサーバ折り返しになってしまう。
対策としてクラウド内の通信に関してはOCIのGW(Subnetのネットワークアドレス+1)をDefaultGWにするルーティングを追加。 - OCI上のインスタンスの実IPアドレスとVPNクライアントとして割り当てられるIPアドレスが同じ設計になっており
1台の仮想サーバが持つ2つのNICに同じIPアドレスが設定可能かという不安もあったが、ルーティングを注意すれば特に問題なさそう。
###■最後に
- 本文章は個人で検証した内容の記録であり、検証方法及び結果を保証するものではないことを
あらかじめご了承・ご理解いただけますようお願い致します。