NEC IX ルータを用いて、AzureとVPN(IPsec IKEv2)接続をする方法を説明します。このページではネットワーク機器にグローバルIPアドレスではなくプライベートIPアドレスが付与されるNAT配下の環境の注意事項をまとめます。ネットワーク機器にグローバルIPアドレスが付与される場合は「NEC IXとAzureの接続(グローバルIPアドレス編)」を参照ください。
動作確認環境
以下の構成で動作確認を行います。
+----------------+ | Debian 10.11 | | linux004 | +-------+--------+ eth0 | .4 | | 172.16.1.0/24 | (VnetNec/Subnet01) | | .1 +-------+--------+ | Azure | | | +-------+--------+ | | | 172.16.0.0/29 | (VnetNec/GatewaySubnet) | | +-------+--------+ | Azure | | | +-------+--------+ | 40.115.208.2 | | (実インターネット) | | | | 203.165.204.94 +-------+--------+ | Home Router | | (NAT) | +-------+--------+ | .1 | | 192.168.2.0/24 | g0.0 | .2 +-------+--------+ | NEC IX 2015 | | Router | +-------+--------+ g1.0 | .1 | | 192.168.1.0/24 |
最終的な設定の全文は以下の通りです
static routeの場合
Azure側の設定
「NEC IXとAzureの接続(グローバルIPアドレス編)」と同様の設定をします。
オンプレミス側の設定
サンプル設定のダウンロード
Azureのポータルからサンプル設定をダウンロードします。操作方法は「NEC IXとAzureの接続(グローバルIPアドレス編)」と同様の設定をします。を参照ください。
NEC IXのIPsecの設定
「NEC IXとAzureの接続(グローバルIPアドレス編)」と同様の設定を投入します。
[実設定 : NEC IX] ikev2 authentication psk id ipv4 40.115.201.146 key char P@ssw0rd1234 ! ikev2 default-profile sa-proposal enc aes-cbc-256 sa-proposal integrity sha1 sa-proposal dh 1024-bit child-proposal enc aes-cbc-256 child-proposal integrity sha2-256 child-lifetime 3600 ! interface Tunnel0.0 tunnel mode ipsec-ikev2 ip address 169.254.0.1/30 ip tcp adjust-mss auto ikev2 connect-type auto ikev2 ipsec pre-fragment ikev2 peer 40.115.201.146 authentication psk id ipv4 40.115.201.146 no shutdown ! ip route 172.16.0.0/16 Tunnel0.0
プライベートIPアドレスが付与される場合は、IPsecを確立する時のlocal idとremote idのパラメタに注意します。Azureと接続する場合は、Azure側のlocal idとremote idを変更する事はできませんので、Azure側の仕様に合わせる必要があります。
Azureが提示するサンプル設定を見ると、パブリックIPアドレスのIPv4をidとして使用している事が推定できます。NEC IXはlocal idを明示指定しない場合は自信の送信元IPアドレスをlocal idとして使用しますので、デフォルトの状態ではIPsecを確立できません。local idを明示指定する事で接続可能になります。
local idはprofileまたはinterfaceに指定できます。profileに指定する設定例は以下の通りです。
[実設定 : NEC IX] ikev2 default-profile local-authentication id ipv4 203.165.204.94
IPsec確立の確認
local id設定前にIPsecの確立を試みていますので、一度、IKE saとIKE child-saをクリアします。
[実設定 : NEC IX] clear ikev2 child-sa
NEC IXにてIKE saとIKE child-saが確立された事を確認します。プライベートIPアドレスを使用する環境では、「Local Addr」と「Local ID」が異なる値が設定されます。この辺りのパラメタが想定通りになるかを注意深く観察しましょう。
[実設定 : NEC IX] NEC001(config)# show ikev2 sa IKEv2 SA - 1 created Interface Tunnel0.0 SPI (I)0xc366f15b26246acb (R)0x44636c00f69c4bc6 Remain lifetime[sec] : 86399 Serial : 8 Direction : initiator Local Addr : 192.168.2.2:500 Peer Addr : 40.115.201.146:500 Local ID : IPV4-ADDR 203.165.204.94 Peer ID : IPV4-ADDR 40.115.201.146 Status : establish Local message ID : 2 Peer message ID : 0 <omitted> NEC001(config)# show ikev2 child-sa Child SA - 1 connected Interface Tunnel0.0 IKE Peer ID : IPV4-ADDR 40.115.201.146 IKE SPI (I)0xc366f15b26246acb (R)0x44636c00f69c4bc6 IKE SA serial : 8 Child SA Protocol : ESP Local Addr : 192.168.2.2 Peer Addr : 40.115.201.146 Enc alg : AES-CBC-256 Hash alg : HMAC-SHA2-256-128 Remain lifetime[sec] : 3545 Anti-replay : on <omitted>
疎通確認
仮想マシン作成
疎通確認用に仮想マシンを作成します。作成例は以下の通りです。
az vm create \ --resource-group ResourceGroupNec \ --name linux004 \ --image Debian \ --admin-username azureuser \ --ssh-key-values ~/.ssh/authorized_keys \ --vnet-name VnetNec \ --subnet Subnet01
実行時のログは以下の通りです。仮想マシンに割り当てられたプライベートIPアドレスは疎通確認で使用しますのでメモに控えましょう。
$ az vm create \ --resource-group ResourceGroupNec \ --name linux004 \ --image Debian \ --admin-username azureuser \ --ssh-key-values ~/.ssh/authorized_keys \ --vnet-name VnetNec \ --subnet Subnet01 It is recommended to use parameter "--public-ip-sku Standard" to create new VM with Standard public IP. Please note that the default public IP used for VM creation will be changed from Basic to Standard in the future. { "fqdns": "", "id": "/subscriptions/2e2f81a9-b030-410f-9784-c582580c932e/resourceGroups/ResourceGroupNec/providers/Microsoft.Compute/virtualMachines/linux004", "location": "japaneast", "macAddress": "00-22-48-E7-34-5F", "powerState": "VM running", "privateIpAddress": "172.16.1.4", "publicIpAddress": "40.115.208.2", "resourceGroup": "ResourceGroupNec", "zones": "" }
ping疎通確認
NEC IXからAzureへの疎通を確認します。この時、送信元IPアドレスはLANに付与されたものを指定するように注意しましょう。なぜならば、送信元を明示指定しない場合は169.254.0.1から送信される事になり、このIPアドレスはAzureには広報されないからです。
NEC001(config)# ping 172.16.1.4 source 192.168.1.1 count 3 PING 192.168.1.2 > 172.16.1.4 56 data bytes 64 bytes from 172.16.1.4: icmp_seq=1 ttl=64 time=7.672 ms 64 bytes from 172.16.1.4: icmp_seq=2 ttl=64 time=7.067 ms --- 172.16.1.4 ping statistics --- 3 packets transmitted, 2 packets received, 33% packet loss round-trip (ms) min/avg/max = 7.067/7.369/7.672
BGPの場合
基本的に「NEC IXとAzureの接続(グローバルIPアドレス編)」で示した通りです。local idの指定に注意を払えば、BGPによる接続も可能です。