はじめに
YAMAHA RTX シリーズのルーター と Azure を サイト間 (S2S) で接続する方法は、ネット上にも ある程度 情報があります。
ですが、BGP を使った接続は、あまり見かけません。
そのため、今回は、BGP を使って接続する方法を紹介したいと思います。
ポイント
BGP を使うことで、Azure 側とのルーティングを動的に交換することが可能になります。BGP があると、Azure 側のネットワーク構成が変更されても、YAMAHA 側の構成変更が不要となりますし、トランジットルーティングも可能になります。
今後、これをフル活用した複雑なネットワーク構成も紹介していきたいと思います。
公開情報:チュートリアル: Azure portal でサイト間 VPN 接続を作成する
https://learn.microsoft.com/ja-jp/azure/vpn-gateway/tutorial-site-to-site-portal?wt.mc_id=mvp_407731
全体図
以下の図は、S2S 接続と P2S 接続 を比較で示しています。
P2S 接続(右側)の場合は、1台の PC が VPN Gateway を介して Azure と接続しますが、S2S 接続(左側)の場合は、物理的な VPN ルーターと VPN Gateway 間で構成されたトンネルを介して、Azure と接続します。
本記事では、この 物理的な VPN ルーター を YAMAHA RTX シリーズのルーターで実現する方法を紹介します。
前提事項
基本的な VPN ゲートウェイ の仕組みや デプロイ方法は、以下の記事にまとめてありますので、先に そちらの記事を参照ください。
Azure VPN Gateway のデプロイと ARMテンプレートでの再作成
最初の VPN ゲートウェイ をデプロイする手順や、それを ARM テンプレート化して再利用する方法などを紹介しています。
Azure VPN Gateway について
SKU(機能、性能、コスト)の違いや、インスタンス、動作モード、可用性ゾーン (AZ)、接続方式 (S2S/V2V/P2S) などについて、詳細に解説しています。
本記事の対象
上記の記事を参照いただき、VPN ゲートウェイ のデプロイを経験済みの方を対象としています。
VPN ゲートウェイのデプロイが未経験の人は、まず先に 上記の記事を参照して、デプロイまで実施してください。
ネットワーク設計
S2S 接続を行う 仮想ネットワークは、以下の設定値 であることを前提としています。
設定値は、前提事項 で紹介した VPN ゲートウェイのデプロイについての記事の設計と同一です。
これらの値を 皆さんの環境に照らし合わせて 参照してください。
Azure 仮想ネットワークの設計
役割 | 名称 | アドレス |
---|---|---|
リソースグループ | AVD-Environment | - |
リージョン | 東日本 (Japan East) |
- |
仮想ネットワーク (アドレス空間) |
AZ-DefaultVNet | 10.10.0.0 /16 |
サブネット1 | Subnet1 | 10.10.10.0 /24 |
サブネット2 ※今回は使いません |
Subnet2 | 10.10.20.0 /24 |
ゲートウェイ サブネット |
GatewaySubnet | 10.10.50.0 /24 |
Azure VPN ゲートウェイの設計
項目名 | 値 |
---|---|
名前 | VPNGW-JPEAST |
地域 | Japan East |
ゲートウェイの種類 | VPN |
SKU | VpnGw1 |
世代 | Generation1 |
仮想ネットワーク | AZ-DefaultVNet |
サブネット | GatewaySubnet (x.x.x.x/x) |
パブリック IP アドレス名 | VPNGW-JPEAST-pip |
アクティブ / アクティブ モードの有効化 | 無効 |
BGP の構成 | 有効 |
自律システム番号 (ASN) | 65521 |
物理拠点(YAMAHA 側)のネットワーク の設計
項目 | 値 | 備考 |
---|---|---|
LAN 側ネットワーク | 192.168.100.0 / 24 | |
ルーター LAN 側アドレス | 192.168.100.1 | |
ルーター WAN 側アドレス | x.37.211.x | DHCP でプロバイダから取得 |
NAT | (Outer) Primary : x.37.211.x (Inner) 192.168.100.1 |
Outer で受けた IPsec 通信を Inner へ NATします |
トンネル IP アドレス | 192.168.254.1 | このアドレスを使って BGP の通信が行われます |
自律システム番号 (ASN) | 65530 | Azure 側と被らない値を設定します |
構成の概要
S2S で接続するためには、以下の構成が必要です。
- 仮想ネットワークゲートウェイ
Azure 仮想ネットワーク 上にデプロイされた VPN ルーター です。 - ローカルネットワークゲートウェイ
S2S 接続のために必要な追加構成です。
物理ルーターに関するパラメーターを Azure 側に設定します。 - YAMAHA ルーター
オンプレミス側の物理ルーター の構成です。 - 接続
仮想ネットワークゲートウェイ と ローカルネットワークゲートウェイ を接続します。
設定値の関連図
以下の図は、上記の 1.~4. の関係性を示しています。
(凡例)
以下の表のうち、太字 で書かれている箇所が主体となる設定値となり、その他の項目は 相手に合わせて設定します。
線の色 | Azure 側 項目名 | YAMAHA 側 項目名 | 値 |
---|---|---|---|
薄紫 | (仮想ネットワーク ゲートウェイ) 自律システム番号 (ASN) |
bgp neighbor | 65521 |
水色 | (仮想ネットワーク ゲートウェイ) BGP ピアの IP アドレス |
bgp neighbor | 10.10.50.254 |
緑 | (仮想ネットワーク ゲートウェイ) パブリック IP アドレス |
ipsec ike remote address | 172.207.227.245 |
橙色 | - |
ip lan1 address ipsec ike local address bgp router id bgp import filter nat descriptor masquerade static |
192.168.100.1 |
赤 | (ローカルネットワーク ゲートウェイ) IP アドレス |
ipsec ike local name nat descriptor address outer |
primary (x.37.211.x) |
桃 | (ローカルネットワーク ゲートウェイ) 自律システム番号 (ASN) |
bgp autonomous-system | 65530 |
灰色 | (ローカルネットワーク ゲートウェイ) BGP ピアの IP アドレス |
ip tunnel address bgp neighbor |
192.168.254.1 |
ポイント
Azure では、物理拠点の VPN ルーターに関する情報を ローカルネットワークゲートウェイ として定義しています。そして 「接続」を使って、仮想ネットワークゲートウェイ と ローカルネットワークゲートウェイ を紐づけます。
そうすることで、仮想ネットワークゲートウェイ は、ローカルネットワークゲートウェイに設定された値をもつデバイスとの 接続 を開始します。
構成の詳細
前章の 構成の概要 で示した各要素の手順について、説明します。
1. 仮想ネットワークゲートウェイ
前提事項 で記載した内容の再掲です。
仮想ネットワークゲートウェイ (VPN) を作成します。
(参考)公開情報:VPN ゲートウェイの作成
https://learn.microsoft.com/ja-jp/azure/vpn-gateway/tutorial-site-to-site-portal?wt.mc_id=mvp_407731#VNetGateway
2. ローカルネットワークゲートウェイ
S2S 接続をするために、新たに ローカルネットワークゲートウェイ のリソースを作成します。
値は、拠点側の 物理デバイス が持つ値を設定していきます。
(参考)公開情報:ローカル ネットワーク ゲートウェイの作成
https://learn.microsoft.com/ja-jp/azure/vpn-gateway/tutorial-site-to-site-portal?wt.mc_id=mvp_407731#LocalNetworkGateway
1.Azure Portal の検索窓で Local network gateways を探して 選択します(①~②)
③ の +作成 ボタンを押します。
2.基本 タブ では、リソース名を指定して、IPアドレス の欄に 物理拠点 がもつ グローバル IP アドレス を指定します。
ポイント
ここで指定する グローバル IP アドレスは、インターネット側から見えるアドレスである必要があります。
ネットワーク構成にもよりますが、ルーター自身が持っている WAN 側 IP ではない場合があります。
ルーター配下の PC を使って 以下のサイトにアクセスすることで、ローカルネットワークゲートウェイに設定すべき IP アドレスを正確に確認することができます。
IPアドレス確認のサイト (CMAN)
https://www.cman.jp/network/support/go_access.cgi
参考
BGP を使うため、アドレス空間 の欄は、空欄で構いません。
アドレス空間 の欄は、スタティックルートを使う場合に使用する欄です。
スタティックルート で構成する場合は、ここに、オンプレミス環境 で使用されているネットワークアドレスを羅列します。
3.詳細設定 タブでは、BGP 設定の構成 を有効にします。
自律システム番号 (ASN) と BGP ピアの IP アドレス は、YAMAHA ルーター側で構成する値を設定します(後述する YAMAHA 側の手順で 設定する値と合わせます)
5.以下の表示になれば OK です。リソースに移動 を押します。
6.概要 (Overview) では、以下の情報を確認することができます。
7.メニューから 設定 - 構成 を選ぶと、以下の情報を確認することができます。
3. YAMAHA ルーター を構成する
Azure と S2S 接続をするための VPN デバイス に必要な構成情報は、以下の公開情報の手順で Azure Portal からダウンロードできるようになっています。しかし YAMAHA ルーター は、この中に含まれていないため、この機能は使えません。
(参考)公開情報:S2S VPN 接続用の VPN デバイス構成スクリプトをダウンロードする
https://learn.microsoft.com/ja-jp/azure/vpn-gateway/vpn-gateway-download-vpndevicescript?wt.mc_id=mvp_407731
(構成スクリプトのダウンロードに対応しているメーカー)
そのため、YAMAHA が公開している、以下のサンプルを元にして、手動で構成する必要があります。
私は、RTX1220 と RTX830 で検証の実績がありますが、このサイトで説明されている RTX シリーズは 皆 利用できると思います。
上記の構成には、BGP に関する構成が含まれていないため、さらに BGP に関する構成を追加しています。
本記事の冒頭のネットワーク設計を踏まえて、構成した結果が 以下の Config 設定となります。
ip route default gateway dhcp lan2
ip lan1 address 192.168.100.1/24
description lan2 WAN
ip lan2 address dhcp
ip lan2 secure filter in 101003 101020 101021 101022 101023 101024 101025 10103
0 101032 101100 101101 101102
ip lan2 secure filter out 101013 101020 101021 101022 101023 101024 101025 1010
26 101027 101099 dynamic 101080 101081 101082 101083 101084 101085 101098 10109
9
ip lan2 nat descriptor 200
tunnel select 1
description tunnel "Azure JapanEast"
ipsec tunnel 1
ipsec sa policy 1 1 esp aes256-cbc sha256-hmac anti-replay-check=off
ipsec ike version 1 2
ipsec ike duration child-sa 1 27000
ipsec ike duration ike-sa 1 28800
ipsec ike group 1 modp1024
ipsec ike keepalive log 1 off
ipsec ike keepalive use 1 on rfc4306
ipsec ike local address 1 192.168.100.1
ipsec ike local name 1 xxx.37.211.xxx ipv4-addr
ipsec ike nat-traversal 1 on
ipsec ike message-id-control 1 on
ipsec ike child-exchange type 1 2
ipsec ike pre-shared-key 1 text Sh@redKey
ipsec ike remote address 1 172.207.227.245
ipsec ike remote name 1 172.207.227.245 ipv4-addr
ipsec ike negotiation receive 1 off
ipsec tunnel outer df-bit clear
ip tunnel address 192.168.254.1
ip tunnel remote address 10.10.50.254
ip tunnel tcp mss limit auto
tunnel enable 1
ip filter 101000 reject 10.0.0.0/8 * * * *
ip filter 101001 reject 172.16.0.0/12 * * * *
ip filter 101002 reject 192.168.0.0/16 * * * *
ip filter 101003 reject 192.168.100.0/24 * * * *
ip filter 101010 reject * 10.0.0.0/8 * * *
ip filter 101011 reject * 172.16.0.0/12 * * *
ip filter 101012 reject * 192.168.0.0/16 * * *
ip filter 101013 reject * 192.168.100.0/24 * * *
ip filter 101020 reject * * udp,tcp 135 *
ip filter 101021 reject * * udp,tcp * 135
ip filter 101022 reject * * udp,tcp netbios_ns-netbios_ssn *
ip filter 101023 reject * * udp,tcp * netbios_ns-netbios_ssn
ip filter 101024 reject * * udp,tcp 445 *
ip filter 101025 reject * * udp,tcp * 445
ip filter 101026 restrict * * tcpfin * www,21,nntp
ip filter 101027 restrict * * tcprst * www,21,nntp
ip filter 101030 pass * 192.168.100.0/24 icmp * *
ip filter 101031 pass * 192.168.100.0/24 established * *
ip filter 101032 pass * 192.168.100.0/24 tcp * ident
ip filter 101033 pass * 192.168.100.0/24 tcp ftpdata *
ip filter 101034 pass * 192.168.100.0/24 tcp,udp * domain
ip filter 101035 pass * 192.168.100.0/24 udp domain *
ip filter 101036 pass * 192.168.100.0/24 udp * ntp
ip filter 101037 pass * 192.168.100.0/24 udp ntp *
ip filter 101080 pass * 192.168.100.1 udp * 500
ip filter 101081 pass * 192.168.100.1 esp
ip filter 101082 pass * 192.168.100.1 udp * 4500
ip filter 101098 reject-nolog * * established
ip filter 101099 pass * * * * *
ip filter dynamic 101080 * * ftp
ip filter dynamic 101081 * * domain
ip filter dynamic 101082 * * www
ip filter dynamic 101083 * * smtp
ip filter dynamic 101084 * * pop3
ip filter dynamic 101085 * * submission
ip filter dynamic 101098 * * tcp
ip filter dynamic 101099 * * udp
nat descriptor type 200 masquerade
nat descriptor address outer 200 primary
nat descriptor masquerade static 200 1 192.168.100.1 udp 500
nat descriptor masquerade static 200 2 192.168.100.1 esp
nat descriptor masquerade static 200 3 192.168.100.1 udp 4500
bgp use on
bgp autonomous-system 65530
bgp neighbor 1 65521 10.10.50.254 hold-time=30 local-address=192.168.254.1 ignore-capability=on
bgp router id 192.168.100.1
bgp import filter 1 equal 192.168.100.0/24
bgp import 65521 static filter 1
ipsec auto refresh on
dhcp service server
dhcp server rfc2131 compliant except remain-silent
dhcp scope 1 192.168.100.100-192.168.100.254/24
dns host lan1
dns server dhcp lan2
dns private address spoof on
考慮事項
YAMAHA ルーターが DHCP で LAN 側の PC へ配布する DNS サーバーのアドレスは、考慮が必要です。
YAMAHA ルーター自身のアドレス (dns server dhcp lan2) が指定されている場合は、VPN の接続状態にかかわらず、インターネットのみの名前解決が行えます。
これに対して、Azure 上に構築した DNS サーバー を使って名前解決 を行う必要がある場合は、dns server dhcp lan2 の箇所を読み替えて、dns server のあとに DNS サーバーの IP アドレス を記載するようにします。この構成によって LAN 上の Windows クライアントは、Azure 上のドメインコントローラーに ドメイン参加 をすることが可能になります。
この場合、VPN が切断されていたり、DNS サーバー が停止されていると、インターネットの名前解決もできなくなるので、注意してください。
4. 接続
以上で Azure 側 と 物理拠点側 の準備が整いました。
ここで、"接続" を作成することで、VPN 接続が構成されます。
(参考)公開情報:VPN 接続を作成する
https://learn.microsoft.com/ja-jp/azure/vpn-gateway/tutorial-site-to-site-portal?wt.mc_id=mvp_407731#CreateConnection
- ローカルネットワークゲートウェイ のメニューから 設定 - 接続 を開き +追加 を押します(仮想ネットワークゲートウェイ のメニューからも同様の作業が可能です)
-
基本 タブでは、接続の種類で サイト対サイト (IPsec) を選択します。
名前は任意で構いません。
リージョンは、仮想ネットワークゲートウェイ に合わせます。
次:設定> を押します。
-
設定 タブでは、接続させたい 仮想ネットワークゲートウェイ と ローカルネットワークゲートウェイ を選択します。共有キー (PSK) は、YAMAHA ルーターの設定(ipsec ike pre-shared-key 1 text Sh@redKey)の箇所と合わせます。
BGP を有効にする にチェックを入れて、確認および作成 を押します。
- 確認および作成 タブで、最終確認をおこなって 作成 ボタンを押します。

6."接続" を作成した直後は、不明 という状態になっています。
7.そのまま待つことで 接続済み に遷移すれば OK です。
Azure 側 の ステータスの変化
VPN 切断時
VPN Gateway
以下のように BGP ピア には VPN ゲートウェイの 自身の BGP ピア アドレス (10.10.50.254) と、接続相手となる YAMAHA の BGP ピア アドレス (192.168.254.1) が、Connecting(緑色線:つまり接続しようとしているという意味)と表示されています。この状態では、BGP ピア は接続されておらず、学習したルート には、Azure 側のルート(水色線)しか存在しません。
仮想ネットワーク 上の VM
有効なルート を見ても 既定のルート しかありません。
VPN 接続時
VPN が接続されて BGP ピア がつながると、BGP ピア の状態が Connected(つまり接続済み)に変わります。オレンジ色の線のように YAMAHA の BGP ピア へのスタティックルート が追加されます。
そして、紫色線 のように YAMAHA から BGP で広報されてきたルートが追加されます。
これによって、Azure 仮想ネットワーク上のリソースが オンプレミス と通信できるようになります。
仮想ネットワーク 上の VM
有効なルートとして、YAMAHA ルーター の BGP ピア および LAN 側のネットワークアドレスが加わっています。
YAMAHA ルーター の ステータスの変化
正常に接続されていれば、以下で紹介したようなステータスになるはずです。
接続できない場合に、この状態との差異を確認してみてください。
トラブルシューティングの際にお役立ていただければと思います。
show status tunnel 1
VPN トンネル 1 の状態を確認するコマンドです。
切断時
接続時
show status bgp neighbor
BGP が確立しているかどうかを確認できます。
パッと見、違いが分かりづらいですが 切断時は route ID が 0.0.0.0 で、値も 0 ばかりです。
切断時
接続時
show status bgp neighbor 10.10.50.254 routes
指定した BGP ネイバー から広報されてきた ルーティング情報を表示できます。
切断時
接続時
上記の結果は、Azure の仮想ネットワーク のアドレス (10.10.0.0/16) が広報されてきたことを示しています。
show ip route
YAMAHA ルーターが持っている ルーティングテーブルです。
切断時
接続時
上記の 192.168.0.0/24 GW 192.168.0.161 というアドレスは YAMAHA の WAN 側のネットワークであり、Azure からは見えないネットワークです。
切断時は、WAN 側の LAN ケーブルを抜いているので、そのルートは消えています。
Next Step
BGP が構成されていれば、これを応用して 以下の記事のように 簡単に 強制トンネリング を構成することもできます。