FutureNet

NXR,WXRシリーズ

IPsec編

4. Virtual Private Cloud(VPC)設定

4-5. Google Cloud PlatformとのVPN接続(スタティックルートの利用)

Google Cloud Platform(GCP)とIPsec接続する設定例です。なおこの設定例では経路制御にスタティックルートを利用します。またこの設定例は弊社独自の検証結果を元に作成しております。よってGCPの仮想ネットワークとの接続および動作を保証するものではありません。また今後の仕様変更により接続できない可能性があります。

※GCPに関する情報は下記URLをご参照ください。

https://cloud.google.com/compute/docs/vpn/overview

 

コンテンツ
構成図 設定フロー 設定例 設定例解説 端末の設定例 付録

 

【 構成図 】

 

【 設定フロー 】

 

【 設定例 】

〔GCPの設定〕

GCP側の設定は下記資料を参考に設定します。

https://cloud.google.com/compute/docs/vpn/creating-vpns

 

〔NXRの設定〕

nxrg100#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
nxrg100(config)#interface ethernet 0
nxrg100(config-if)#ip address 192.168.10.1/24
nxrg100(config-if)#exit
nxrg100(config)#ip route 10.0.1.0/24 tunnel 1 1
nxrg100(config)#ip route 10.0.1.0/24 null 254
nxrg100(config)#ip route 0.0.0.0/0 ppp 0
nxrg100(config)#ip access-list ppp0_in permit 203.0.113.1 192.0.2.1 udp 500 500
nxrg100(config)#ip access-list ppp0_in permit 203.0.113.1 192.0.2.1 50
nxrg100(config)#ipsec access-list ipsec_acl ip any any
nxrg100(config)#ipsec local policy 1
nxrg100(config-ipsec-local)#address ip
nxrg100(config-ipsec-local)#exit
nxrg100(config)#ipsec isakmp policy 1
nxrg100(config-ipsec-isakmp)#description GCP
nxrg100(config-ipsec-isakmp)#version 2
nxrg100(config-ipsec-isakmp)#authentication pre-share ipseckey
nxrg100(config-ipsec-isakmp)#hash sha256
nxrg100(config-ipsec-isakmp)#encryption aes128
nxrg100(config-ipsec-isakmp)#group 5
nxrg100(config-ipsec-isakmp)#lifetime 10800
nxrg100(config-ipsec-isakmp)#remote address ip 203.0.113.1
nxrg100(config-ipsec-isakmp)#keepalive 30 3 periodic restart
nxrg100(config-ipsec-isakmp)#local policy 1
nxrg100(config-ipsec-isakmp)#exit
nxrg100(config)#interface tunnel 1
nxrg100(config-tunnel)#tunnel mode ipsec ipv4
nxrg100(config-tunnel)#tunnel protection ipsec policy 1
nxrg100(config-tunnel)#no tunnel path-mtu-discovery
nxrg100(config-tunnel)#mtu 1390
nxrg100(config-tunnel)#ip tcp adjust-mss auto
nxrg100(config-tunnel)#exit
nxrg100(config)#ipsec tunnel policy 1
nxrg100(config-ipsec-tunnel)#description GCP
nxrg100(config-ipsec-tunnel)#negotiation-mode auto
nxrg100(config-ipsec-tunnel)#set transform esp-aes128 esp-sha256-hmac
nxrg100(config-ipsec-tunnel)#set pfs group5
nxrg100(config-ipsec-tunnel)#set sa lifetime 3600
nxrg100(config-ipsec-tunnel)#set key-exchange isakmp 1
nxrg100(config-ipsec-tunnel)#match address ipsec_acl
nxrg100(config-ipsec-tunnel)#exit
nxrg100(config)#ppp account username [ユーザID] password [パスワード]
nxrg100(config)#interface ppp 0
nxrg100(config-ppp)#ip address 192.0.2.1/32
nxrg100(config-ppp)#ip masquerade
nxrg100(config-ppp)#ip spi-filter
nxrg100(config-ppp)#ip access-group in ppp0_in
nxrg100(config-ppp)#ip tcp adjust-mss auto
nxrg100(config-ppp)#ppp username [ユーザID]
nxrg100(config-ppp)#mobile apn [APN] cid [CID] pdp-type ip
nxrg100(config-ppp)#dial-up string *99***[CID]#
nxrg100(config-ppp)#dial-up timeout 30
nxrg100(config-ppp)#ipsec policy 1
nxrg100(config-ppp)#exit
nxrg100(config)#mobile error-recovery-reset
nxrg100(config)#mobile termination-recovery reset
nxrg100(config)#mobile 1 ppp 0
% Please execute ‘clear mobile 1′ command to take affect.
nxrg100(config)#mobile 1 carrier [キャリア]
% Please execute ‘clear mobile 1′ command to take affect.
nxrg100(config)#exit
nxrg100#clear mobile 1
Reset mobile device 1 … Please wait.
nxrg100#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
nxrg100(config)#dns
nxrg100(config-dns)#service enable
nxrg100(config-dns)#exit
nxrg100(config)#exit
nxrg100#save config

 

【 設定例解説 】

〔NXRの設定〕

1. <LAN側(ethernet0)インタフェース設定>
nxrg100(config)#interface ethernet 0
nxrg100(config-if)#ip address 192.168.10.1/24

ethernet0インタフェースのIPアドレスを設定します。

 

2. <スタティックルート設定>
nxrg100(config)#ip route 10.0.1.0/24 tunnel 1 1
nxrg100(config)#ip route 10.0.1.0/24 null 254

10.0.1.0/24向けのルートを設定します。なおIPsec SA確立時はトンネル1インタフェースを、未確立時はnullインタフェースのルートを利用するように設定します。

nxrg100(config)#ip route 0.0.0.0/0 ppp 0

デフォルトルートを設定します。

 

3. <IPアクセスリスト設定>
nxrg100(config)#ip access-list ppp0_in permit 203.0.113.1 192.0.2.1 udp 500 500
nxrg100(config)#ip access-list ppp0_in permit 203.0.113.1 192.0.2.1 50

IPアクセスリスト名をppp0_inとし、送信元がGCPのVPNゲートウェイIPアドレス203.0.113.1、宛先がWAN側IPアドレス192.0.2.1のIKEパケット(UDPポート500番)、ESPパケット(プロトコル番号50)を許可します。
なおこのIPアクセスリスト設定はppp0インタフェース設定で登録します。

 

4. <IPsecアクセスリスト設定>
nxrg100(config)#ipsec access-list ipsec_acl ip any any

ipsec_aclという名前のIPsecアクセスリストを設定します。なお送信元IPアドレス,宛先IPアドレスともにanyとします。

 

5. <IPsecローカルポリシー設定>
nxrg100(config)#ipsec local policy 1
nxrg100(config-ipsec-local)#address ip

IPsecトンネルの送信元IPアドレスにip(IPv4)を設定します。

 

6. <IPsec ISAKMPポリシー設定>
nxrg100(config)#ipsec isakmp policy 1
nxrg100(config-ipsec-isakmp)#description GCP
nxrg100(config-ipsec-isakmp)#version 2

ISAKMPポリシー1の説明としてGCP、IKEバージョンは2を設定します。

nxrg100(config-ipsec-isakmp)#authentication pre-share ipseckey

認証方式としてpre-share(事前共有鍵)を選択し、事前共有鍵ipseckeyを設定します。なおIKE 事前共有鍵はGCP側と共通の値を設定します。

nxrg100(config-ipsec-isakmp)#hash sha256
nxrg100(config-ipsec-isakmp)#encryption aes128
nxrg100(config-ipsec-isakmp)#group 5
nxrg100(config-ipsec-isakmp)#lifetime 10800

認証アルゴリズムとしてsha256、暗号化アルゴリズムとしてaes128,Diffie-Hellman(DH)グループとしてgroup 5、ISAKMP SAのライフタイムとして10800秒を設定します。

nxrg100(config-ipsec-isakmp)#remote address ip 203.0.113.1
nxrg100(config-ipsec-isakmp)#keepalive 30 3 periodic restart
nxrg100(config-ipsec-isakmp)#local policy 1

リモートアドレスにGCPのVPNゲートウェイIPアドレスを設定します。またIKE KeepAlive(DPD)を監視間隔30秒,リトライ回数3回とし、keepalive失敗時にSAを削除しIKEのネゴシエーションを開始するように設定します。そしてIPsecローカルポリシー1と関連づけを行います。

 

7. <トンネル1インタフェース設定>
nxrg100(config)#interface tunnel 1
nxrg100(config-tunnel)#tunnel mode ipsec ipv4
nxrg100(config-tunnel)#tunnel protection ipsec policy 1

トンネル1インタフェースでトンネルモードをipsec ipv4、使用するIPsecトンネルポリシーとして1を設定します。

nxrg100(config-tunnel)#no tunnel path-mtu-discovery

Path MTU Discoveryを無効に設定します。

nxrg100(config-tunnel)#mtu 1390

MTU値を1390に設定します。

nxrg100(config-tunnel)#ip tcp adjust-mss auto

TCP MSSの調整機能をオートに設定します。

 

8. <IPsecトンネルポリシー設定>
nxrg100(config)#ipsec tunnel policy 1
nxrg100(config-ipsec-tunnel)#description GCP
nxrg100(config-ipsec-tunnel)#negotiation-mode auto

IPsecトンネルポリシーの説明としてGCP、ネゴシエーションモードとしてautoを設定します。

nxrg100(config-ipsec-tunnel)#set transform esp-aes128 esp-sha256-hmac
nxrg100(config-ipsec-tunnel)#set pfs group5
nxrg100(config-ipsec-tunnel)#set sa lifetime 3600

暗号化アルゴリズムとしてaes128、認証アルゴリズムとしてsha256、PFSを有効にし、かつDHグループとしてgroup5、IPsec SAのライフタイムとして3600秒を設定します。

nxrg100(config-ipsec-tunnel)#set key-exchange isakmp 1
nxrg100(config-ipsec-tunnel)#match address ipsec_acl

ISAKMPポリシー1と関連づけを行い、IPsecアクセスリストipsec_aclを設定します。

 

9. <PPPアカウント設定>
nxrg100(config)#ppp account username [ユーザID] password [パスワード]

ppp0インタフェースで使用するモバイル接続用ユーザID,パスワードを設定します。
(☞) ここで設定したアカウントはppp0インタフェースの設定で指定します。

 

10. <WAN側(ppp0)インタフェース設定>
nxrg100(config)#interface ppp 0
nxrg100(config-ppp)#ip address 192.0.2.1/32

ppp0インタフェースのIPアドレスを設定します。

nxrg100(config-ppp)#ip masquerade
nxrg100(config-ppp)#ip spi-filter
nxrg100(config-ppp)#ip access-group in ppp0_in
nxrg100(config-ppp)#ip tcp adjust-mss auto

IPマスカレード、ステートフルパケットインスペクションを有効にします。またIPアクセスリストppp0_inをinフィルタに適用します。そしてTCP MSSの調整機能をオートに設定します。

nxrg100(config-ppp)#ppp username [ユーザID]
nxrg100(config-ppp)#mobile apn [APN] cid [CID] pdp-type ip

PPP接続用ユーザIDを設定します。またAPN,CID,PDPタイプを設定します。

nxrg100(config-ppp)#dial-up string *99***[CID]#
nxrg100(config-ppp)#dial-up timeout 30

発信用の電話番号およびダイアルタイムアウトを設定します。
(☞) ここで設定する電話番号はSIMカードの電話番号ではありません。

nxrg100(config-ppp)#ipsec policy 1

IPsecトンネルのエンドポイントとなるためIPsecローカルポリシー1を設定します。

 

11. <モバイルエラーリカバリー設定>
nxrg100(config)#mobile error-recovery-reset

通信モジュールとの通信に重大な問題が発生する可能性が高いと判断した場合、通信モジュールのリセットを行うように設定します。

 

12. <モバイルターミネーションリカバリー設定>
nxrg100(config)#mobile termination-recovery reset

PPP接続時に網側から切断された場合、通信モジュールのリセットを行うように設定します。

 

13. <モバイル割り当て設定>
nxrg100(config)#mobile 1 ppp 0

mobile1(内蔵通信モジュール)とppp0インタフェースの関連づけを行います。
通信モジュールをPPPインタフェースで使用する場合は、mobileコマンドによるPPPインタフェースへの関連付けが必要になります。

 

14. <モバイルキャリア設定>
nxrg100(config)#mobile 1 carrier [キャリア]

mobile1(内蔵通信モジュール)のキャリアを設定します。
(☞) キャリア設定は「clear mobile 1」コマンドによるモバイルリセットを行うことで反映されます。
(☞) モバイルキャリア設定はマルチキャリア対応機種NXR-G240/L,NXR-G260/L,NXR-G100/Lで設定することができます。

 

15. <DNS設定>
nxrg100(config)#dns
nxrg100(config-dns)#service enable

DNSサービスを有効にします。

 

【 端末の設定例 】

IPアドレス 192.168.10.100
サブネットマスク 255.255.255.0
デフォルトゲートウェイ 192.168.10.1
DNSサーバ

 

【 付録 】