EdgeRouterLiteを使ってSite-to-Site VPNを張る

Last-modified: Sun, 24 Sep 2017 15:44:22 JST (27d)

AzureとSite-to-Site VPNをEdgeRouterLightで張ってみました。
ネットワーク的にはこんな感じです。

network.png

一般家庭なので光ルータの背後にEdgeRouterを設置します。
このままだとVPNを張ることができないので、EdgeRouterにポートフォワードする設定をしておきます。

Azureの仮想ネットワーク構築

  1. Azureポータルより、仮想ネットワークを構築します。この時かならず(クラシック)を選択します。
    azure03.jpg
  2. アドレス空間、サブネットアドレス範囲は対向先と被らなければ適当でいいです。
    ここではデフォルトのままにしました。
    azure04.jpg
  3. 仮想ネットワークが構築されましたら、概要タブの中にあるVPN接続よりVPNを作成します。
    azure05.jpg
  4. 新しいVPN接続より、サイト対サイトを選択。ローカルサイトをクリックし、EdgeRouter側のネットワーク情報を設定します。
    VPNゲートウエイのIPアドレスのところには、光ルータのグローバルIP(XXX.XXX.XX.XX)を設定。
    クライアントアドレスはEdgeRouterのLAN側サブネット(192.168.100.0/24)を設定します。
    azure06.jpg
  5. ゲートウエイをすぐに作成するにチェックを入れ、ルーティングの種類を動的に設定します。
    azure07.jpg
  6. サブネットをクリックし、ゲートウエイ用サブネットを切ります。ここでもデフォルト設定にしました。
    azure08.jpg
  7. しばらくすると(40分くらい?)ゲートウエイが作成されます。
    作成されると、グローバルIPが割り当てられますので、メモっておきます。
    azure09.jpg

Site-To-Site VPNの作成

  1. 作成されたVPN接続をクリックします。
    azure10.jpg
  2. VPNデバイススクリプトをクリックし、設定ファイルをダウンロードします。
    azure11.jpg
  3. 設定ファイルを開き、中に書いてある「SharedSecret」の文字列がVPN接続に必要な共通パスワードです。EdgeRouterの設定で必要になりますのでメモっておきます。
    azure12.jpg
  4. なお、旧ポータルでは、そんな面倒なことをしなくても、ちゃんと「キーの管理」というボタンで見れます。
    azure13.jpg

EdgeRouterLiteの設定

基本設定

ここでは、EdgeRouterLiteの初期設定状態から設定します。
EdgeOS 1.9.7で検証してあります。

  1. インターフェースを設定します。ここではeth0に192.168.24.5(WAN)、eth1に192.168.100.1(LAN)を割り当てます
    # set interfaces ethernet eth0 address 192.168.24.5/24
    # delete interfaces ethernet eth0 address 192.168.1.1/24
    # set system gateway-address 192.168.24.1
    # set interfaces ethernet eth1 address 192.168.100.1/24
  2. DNSセット
    # set system name-server 8.8.8.8
    # set service dns forwarding listen-on eth1
    # set service dns forwarding system
  3. NATをセット
    # set service nat rule 5000 outbound-interface eth0
    # set service nat rule 5000 type masquerade
  4. 面倒なのでDHCPでLAN側アドレスを配布
    # set service dhcp-server shared-network-name dhcp-eth1 subnet 192.168.100.0/24 start 192.168.100.100 stop 192.168.100.200
    # set service dhcp-server shared-network-name dhcp-eth1 subnet 192.168.100.0/24 default-router 192.168.100.1
    # set service dhcp-server shared-network-name dhcp-eth1 subnet 192.168.100.0/24 dns-server 192.168.100.1
    # set service dhcp-server shared-network-name dhcp-eth1 subnet 192.168.100.0/24 lease 86400
  5. タイムゾーン
    # set system time-zone 'Asia/Tokyo'
  6. ファイアーウォール
    # set firewall all-ping 'enable'
    # set firewall broadcast-ping 'disable'
    # set firewall ipv6-receive-redirects 'disable'
    # set firewall ipv6-src-route 'disable'
    # set firewall ip-src-route 'disable'
    # set firewall log-martians 'enable'
    # set firewall name WAN_IN default-action 'drop'
    # set firewall name WAN_IN description 'WAN to internal'
    # set firewall name WAN_IN rule 10 action 'accept'
    # set firewall name WAN_IN rule 10 state established 'enable'
    # set firewall name WAN_IN rule 10 state related 'enable'
    # set firewall name WAN_IN rule 10 description 'Allow established/related'
    # set firewall name WAN_IN rule 20 action 'drop'
    # set firewall name WAN_IN rule 20 state invalid 'enable'
    # set firewall name WAN_IN rule 20 description 'Drop invalid state'
    
    # set firewall name WAN_OUT default-action 'drop'
    # set firewall name WAN_OUT description 'internal to WAN'
    # set firewall name WAN_OUT rule 10 action 'accept'
    # set firewall name WAN_OUT rule 10 description 'Allow internal to WAN'
    
    # set firewall name WAN_LOCAL default-action 'drop'
    # set firewall name WAN_LOCAL description 'WAN to router'
    # set firewall name WAN_LOCAL rule 10 action 'accept'
    # set firewall name WAN_LOCAL rule 10 state established 'enable'
    # set firewall name WAN_LOCAL rule 10 state related 'enable'
    # set firewall name WAN_LOCAL rule 10 description 'Allow established/related'
    # set firewall name WAN_LOCAL rule 20 action 'drop'
    # set firewall name WAN_LOCAL rule 20 state invalid 'enable'
    # set firewall name WAN_LOCAL rule 20 description 'Drop invalid state'
    
    # set firewall receive-redirects 'disable'
    # set firewall send-redirects 'enable'
    # set firewall source-validation 'disable'
    # set firewall syn-cookies 'enable'
    
    # set interfaces ethernet eth0 firewall in name 'WAN_IN'
    # set interfaces ethernet eth0 firewall local name 'WAN_LOCAL'
    # set interfaces ethernet eth0 firewall out name 'WAN_OUT'
  7. Azure Site-To-Site VPN用の設定をします。104.215.62.230の箇所は、AzureのゲートウエイIPに合わせてください。
    # set vpn ipsec ipsec-interfaces interface eth0
    # set vpn ipsec auto-firewall-nat-exclude enable
    # set vpn ipsec nat-traversal enable
    
    # set vpn ipsec esp-group esp-azure compression disable
    # set vpn ipsec esp-group esp-azure lifetime 3600
    # set vpn ipsec esp-group esp-azure mode tunnel
    # set vpn ipsec esp-group esp-azure pfs disable
    # set vpn ipsec esp-group esp-azure proposal 1 encryption aes256
    # set vpn ipsec esp-group esp-azure proposal 1 hash sha1
    
    # set vpn ipsec ike-group ike-azure key-exchange ikev2
    # set vpn ipsec ike-group ike-azure ikev2-reauth no
    # set vpn ipsec ike-group ike-azure lifetime 28800
    # set vpn ipsec ike-group ike-azure proposal 1 dh-group 2
    # set vpn ipsec ike-group ike-azure proposal 1 encryption aes256
    # set vpn ipsec ike-group ike-azure proposal 1 hash sha1
    
    # set vpn ipsec site-to-site peer 104.215.62.230  description Azure
    # set vpn ipsec site-to-site peer 104.215.62.230  authentication mode pre-shared-secret
    # set vpn ipsec site-to-site peer 104.215.62.230  authentication pre-shared-secret <共通パスワード>
    # set vpn ipsec site-to-site peer 104.215.62.230  connection-type initiate
    # set vpn ipsec site-to-site peer 104.215.62.230  default-esp-group esp-azure
    # set vpn ipsec site-to-site peer 104.215.62.230  ike-group ike-azure
    # set vpn ipsec site-to-site peer 104.215.62.230  ikev2-reauth inherit
    # set vpn ipsec site-to-site peer 104.215.62.230  local-address any
    # set vpn ipsec site-to-site peer 104.215.62.230  tunnel 1 allow-nat-networks disable
    # set vpn ipsec site-to-site peer 104.215.62.230  tunnel 1 allow-public-networks disable
    # set vpn ipsec site-to-site peer 104.215.62.230  tunnel 1 esp-group esp-azure
    # set vpn ipsec site-to-site peer 104.215.62.230  tunnel 1 local prefix 192.168.100.0/24 # EdgeRouteのLAN側サブネット
    # set vpn ipsec site-to-site peer 104.215.62.230  tunnel 1 remote prefix 10.0.0.0/16     # Azure側のサブネット
    設定が終わったら、忘れす
    # commit
    # save
    しましょう。

Azureとの接続設定

  1. 作成されたVPN接続をクリックします。
    azure14.jpg
  2. VPN接続をクリックします。
    azure15.jpg
  3. 上にある接続をクリックします。
    azure16.jpg
  4. EdgeRouterを再起動します。
    接続ができたかを確認します。
    ubnt@ubnt:~$ show vpn ipsec status
      IPSec Process Running PID: 1358
    
    1 Active IPsec Tunnels
    
    IPsec Interfaces :
            eth0    (192.168.24.5/24)
    こんな感じで出てば接続できています。
    Azureコンパネ上ではこのようになります。
    azure17.jpg
    旧ポータルだとわかりやすく表示されます。
    azure18.jpg
    EdgeRouterからAzure内にある仮想マシンにPINGを飛ばしてみます。
    ubnt@ubnt:~$ ping 10.0.0.4
    PING 10.0.0.4 (10.0.0.4) 56(84) bytes of data.
    64 bytes from 10.0.0.4: icmp_req=1 ttl=63 time=19.5 ms
    64 bytes from 10.0.0.4: icmp_req=2 ttl=63 time=20.4 ms
    64 bytes from 10.0.0.4: icmp_req=3 ttl=63 time=20.2 ms
    64 bytes from 10.0.0.4: icmp_req=4 ttl=63 time=19.4 ms
    64 bytes from 10.0.0.4: icmp_req=5 ttl=63 time=19.9 ms
    ただし、この仮想マシンは上で作成した仮想ネットワークに所属していないとVPN経由で疎通ができませんので注意です。

Counter: 24, today: 1, yesterday: 0

このページの参照回数は、24です。