🍉

ExpressRoute 導入の流れを確認してみる

2023/06/17に公開

Azure ExpressRoute 導入の流れを確認してみる

ExpressRoute は、Azure と オンプレミス環境を閉域網で接続できるサービスです。
といっても、Azure と オンプレミス環境 を専用線で直接接続するようなものではなく、プロバイダー様のネットワークを経由して接続することになります。(ExpressRoute は Azure とプロバイダー様の間をつなぐサービス)
検証することも難しいかと思いますので、少しでもイメージが付けられるよう(そして私自身も理解を深めるためにも)、すこし整理してみました。
ExpressRoute には、M365, PaaS と接続する Microsoft Peering と、 Azure 内の仮想ネットワークと接続する Private Peering がありますが、今回は Private Peering についての導入の流れを確認してみます。

なお、本記事はあくまで参考に、実際の手順はプロバイダー様等ともご相談くださいませ。

No 作業者 作業概要
0 お客様/プロバイダー様 ExpressRoute 導入に向けた情報収集する
ExpressRoute プロバイダー様(や回線事業者様)との調整や契約等を行う
1 お客様/プロバイダー様 お客様-プロバイダー様拠点間を接続する
2 お客様 Azure 上で ExpressRoute Circuit を作成する
3 お客様 ExpressRoute Circuit の Service Key を プロバイダー様へ連絡する
4 プロバイダー様 ExpressRoute Circuit との接続に必要な各種設定作業等を行う
5 お客様 お客様自身で用意したオンプレミス設置BGPルーターの設定等を行う
6 お客様 Private Peering の構成を行う
7 お客様 ExpressRoute Circuit と 仮想ネットワークゲートウェイ を 接続する

上記は L2 プロバイダー様のパターンをイメージして記載してみました。
L2/L3 プロバイダー様の違いはこちら。 L3 の場合は以下に畳んでおきます。

L3 の場合
No 作業者 作業概要
0 お客様/プロバイダー様 Express Route 導入に向けた情報収集する
ExpressRoute プロバイダー様(や回線事業者様)との調整や契約等を行う
1 お客様/プロバイダー様 お客様-プロバイダー様拠点間を接続する
2 お客様 Azure 上で Express Route Circuit を作成する
3 お客様 ExpressRoute Circuit の Service Key を プロバイダー様へ連絡する
4 プロバイダー様 ExpressRoute Circuit との接続に必要な各種設定作業等を行う
5 プロバイダー様 プロバイダー様が用意した設定済みルーターを、オンプレミスに設置する
6 プロバイダー様 Private Peering の構成を行う
7 お客様 ExpressRoute Circuit と 仮想ネットワークゲートウェイ を 接続する

なお、公開ドキュメントは以下になります。

https://learn.microsoft.com/ja-jp/azure/expressroute/expressroute-howto-circuit-portal-resource-manager

No.0 ExpressRoute 導入に向けた情報収集する

ここが一番重要ですね!
これ次第で No.1 以降が変わります…。
挙げ始めたらキリは無いような気もしますが、いくつか思いつくポイントを挙げてみます。

  • ExpressRoute を介して利用したいサービスは IaaS、Paas (例: StorageAccount 等)、 SaaS (例: O365等) どういったものなのか。
  • 利用予定サービス を踏まえ、ExpressRoute (Azure Private ピアリング や Microsoft ピアリング)を利用するのか、Azure Peering Service を利用するのか?
  • 利用規模 や SLA等 を踏まえ、ExpressRoute の 本数、それぞれの Location や SKU や オプション はどれを選択するか? また、契約するプロバイダー様(複数プロバイダー様と契約してキャリア冗長するか等)はどうするか?
  • それぞれのプロバイダー様のご提供サービス内容等はどうなっているのか? 導入手順はどういったものなのか?
  • オンプレミス側のネットワーク構成はどうなっているのか? オンプレミス側のネットワーク構成を変更する必要はあるのか? 同様に、Azure側のネットワーク(Hub-Spoke等の)構成はどうなっているのか?
    etc etc....

他、いくつか参考になりそうな URL を、参考URL に記載しておきます。

No.1 お客様-プロバイダー様拠点間を接続する

新規なら、オンプレミス環境への物理配線の引き込み等もあると思います
既存のプロバイダー様WAN回線網にExpressRouteを接続するのであれば、その手続きなどになるかと思います。
なお今回、ExpressRoute の手順に組み入れてはいますが、お客様-プロバイダー様拠点間を接続は ExpressRoute とは関係ない部分なので Azure とは関係なく任意のタイミングで実施いただければという部分です。

No.2 ExpressRoute Circuit の作成

続いて、ExpressRoute Circuit を作成します。

作成する際は、どの Azure Location から、どのプロバイダー様と接続をするのかを、選択します。
Azure Location は、Tokyo/Tokyo2/Tokyo3 のような場所で、Azure Region 例えば Japan East とは別であるという点は、注意点ですね。
つまり、Region障害により Japan East 全体が利用できないような障害が仮にあっても、Location が無事であれば、Tokyo の ExpressRoute Circuit を経由して Japan West への接続を引き続き利用できる可能性があります。
逆に、利用している Location 全体に及ぶような障害があれば、Region としては何も起こっていなくても、利用できなくなる可能性があります。そのため、複数プロバイダー様を利用して、複数の Location に接続することを検討するのも良いかと思います。

https://learn.microsoft.com/ja-jp/azure/expressroute/expressroute-locations-providers

では手順を見ていきます。
まずは、Azure Portal から ExpressRoute Circuit を作成します。

[Configuration] のタブで、プロバイダー様や、ピアリングの場所(Location)、帯域幅等を選択します。選択はプルダウンで行えますが、プロバイダー様によって選択可能なピアリングの場所が異なりますので、公開ドキュメント(ExpressRoute のピアリングの場所と接続パートナー)も、事前に確認しておきます

以下では、プロバイダー様として アット東京 様、ピアリングの場所を Tokyo2 で選択しています。

他は管理用の Tag を設定するくらいです。作成を指示すると、数分で完了しました。
以下が作成された ExpressRoute Circuit の様子です。

No.3 ExpressRoute Circuit の Service Key を プロバイダー様へ連絡する

作成された ExpressRoute Circuit の Service Key をプロバイダー様へ連絡します。
連絡方法は、プロバイダー様のポータル画面等から入力する形であったり、所定の申請書に記載したりなど、まちまちだとは思いますが、連絡します。

No.4 ExpressRoute Circuit との接続に必要な各種設定作業等を行う

プロバイダー様にて、ExpressRoute Circuit との接続に必要な各種設定作業等が行われます。
なお、今回、プロバイダー様作業範囲と記載をしてはいますが、プロバイダー様のポータル画面等から、ある程度お客様自身でのパラメータ等入力が必要な場合もあると思います。

このプロバイダー様の作業が完了すれば、Azure Portal から確認できる ExpressRoute Circuit が、[プロバイダーの状態:プロビジョニング済み] となっているはずです。

No.5 オンプレミス設置BGPルーターの設定等を行う

お客様にて、オンプレミス設置BGPルーターの設定等を行います。
プロバイダー様との接続に関する必要な設定などはプロバイダー様からご案内いただいた内容に従います。
ExpressRoute としては、こちらの公開ドキュメントもあわせて確認し、オンプレミス側の機器を設定します。

  • L2プロバイダー様 の場合、プロバイダー様から、ピアリングのための VLAN ID が指定される(またはお客様が指定している)はずです。図では1本に省略して描いていますが、L2 の場合、プロバイダー様からご提供される接続線は2本のはずです。共に同じ VLAN ID が設定されているはずです。
  • それぞれに、[/30] のプライベートサブネット 2 つ、割り当てる必要があります。なお、仮想ネットワーク では利用していないサブネットを使います。図では、172.16.0.0.0/30 と 172.16.0.4/30 を例にしています。オンプレミス設置スイッチが若番のIPアドレス、172.16.0.1 と 172.16.0.5 になります。
  • AS番号について、Azure側は [12076] で固定です。オンプレミス側のAS番号(65515 ~ 65520 までの番号を除く)をご用意頂き、オンプレミス設置スイッチを設定します。
  • 他、経路制御のための local preference属性 や AS-Path Prepend 属性、障害検知を高速化するための BFD の設定等、BGP関連設定を行い、BGPピアの確立を行います。

https://learn.microsoft.com/ja-jp/azure/expressroute/expressroute-optimize-routing

https://learn.microsoft.com/ja-jp/azure/expressroute/expressroute-bfd

No.6 Private Peering の構成を行う

Azure Portal から Private Peering の構成を行います。
Azure Portal から確認できる ExpressRoute Circuit が、[プロバイダーの状態:プロビジョニング済み] となっていることを確認します。

[ピアリング] - [Azure プライベート] を選択して設定を行います。

下図のように、オンプレミスのBGPルーターとのBGPピア確立に必要な設定を行います。

  • ピア ASN : オンプレミス側で設定した AS番号 を指定します。
  • プライマリサブネット, セカンダリサブネット : 2つのプライベートサブネットを指定します。
  • IPv4 ピアリング : 有効にしておいてください(外れていると、BGPピア確立に失敗します)。
  • VLAN ID : プロバイダー様から通知された VLAN ID を指定します。

設定を保存すると、 Private Peering が構成されます。
上手くいけば、[状態] が 有効 となっているはずです。
[Azure プライベート] を選択すれば、ルート や ARP が確認できますので、正常に構成できているか確認します。

左側メニュー [ピアリング] より、確認する PrivatePeering を選択し、[ARPレコードを表示する] を選択してみます。


オンプレミススイッチ側のARP
Switch#show arp
Protocol  Address          Age (min)  Hardware Addr   Type   Interface
Internet  172.16.0.1              -   0042.68d4.26af  ARPA   GigabitEthernet
Internet  172.16.0.2             10   1c9c.8c87.2ad4  ARPA   GigabitEthernet

オンプレミススイッチ側の 0042.68d4.26af がしっかり見えています。
同様にルートテーブルも表示してみます。

オンプレミス側に存在する 10.100.10.0/24 への nexthop がオンプレミス側の機器 172.16.0.1 に設定されています。
その他、Localpref や 重み、 経由するパス(AS-PATH) なども確認できます。

ちなみに、以下はダメな例ですが、 [無効] となっています…。(誤って、IPv4 ピアリング を 無効 で構成してしまいました…)

オンプレミス側の機器でも上手くいっていることを確認します。
機器によって異なりますが、例えば、Cisco Catalyst 3850 であれば、以下のような感じでしょうか。

https://www.cisco.com/c/ja_jp/td/docs/sw/campuslanswt-access/cat3850swt/cr/018/iproute_bgp-xe-3se-3850-cr-book/iproute_bgp-xe-3se-3850-cr-book_chapter_0100.html

ping (BGP以前の問題が起こっている場合には、Pingで失敗する)
Switch# ping 172.16.0.2
Sending 5, 100-byte ICMP Echos to 172.16.0.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/10 ms
BGP接続のステータス確認 (個々のBGPピア)
Switch# show ip bgp neighbors 172.16.0.2
BGP neighbor is 172.16.0.2, remote AS 12076, external link
  BGP version 4, remote router ID 172.16.0.2
  BGP state = Established, up for 00:01:00
  Last read 00:00:05, hold time is 90, keepalive interval is 30 seconds
... 省略 ...
BGP接続のステータスを表示 (全体)
Switch# show bgp summary
BGP router identifier 172.16.0.1, local AS number xxxxx
BGP table version is 10, main routing table version 10
2 network entries using 288 bytes of memory
3 path entries using 240 bytes of memory
2/2 BGP path/bestpath attribute entries using 304 bytes of memory
1 BGP AS-PATH entries using 24 bytes of memory
0 BGP route-map cache entries using 0 bytes of memory
0 BGP filter-list cache entries using 0 bytes of memory
BGP using 856 total bytes of memory
BGP activity 3/1 prefixes, 7/4 paths, scan interval 60 secs

Neighbor        V           AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
172.16.0.2      4        12076       9      12       10    0    0 00:03:25        1
172.16.0.6      4        12076       3       5       10    0    0 00:00:25        1

No.7 Express Route Circuit と 仮想ネットワークゲートウェイ を 接続する

ExpressRoute Circuit と 仮想ネットワークゲートウェイ を接続します。
なお、ExpressRoute Circuit と 仮想ネットワークゲートウェイ は N:M で接続可能です。

  • 1つの ExpressRoute Circuit (Local / Standard SKU) を 10 の仮想ネットワークゲートウェイに接続可能です。 Premium SKU の場合は 20 ~ 100 まで、回線サイズにより異なります。→ 参考URLはこちら
  • 1つの 仮想ネットワークゲートウェイに接続可能な ExpressRoute Circuit は、接続しようとしている ExpressRoute Circuit の Location により異なります。
    • 同一 Location の場合:4 つまでです。→ 参考URLはこちら
    • 異なる Location の場合:Gateway SKU 次第です。→ 参考URLはこちら
      • Standard / ERGw1Az - 4つまで
      • High Perf / ERGw2Az - 8つまで
      • Ultra Performance / ErGw3Az - 16つまで

仮想ネットワークゲートウェイの作成については細かな解説は省略しますが、仮想ネットワークに "GatewaySubnet" という名前でサブネットを作成し、そちらへ ExpressRoute 用の仮想ネットワークゲートウェイを必要なSKU等を指定しつつデプロイしておきます。

例:

Azure Portal より、対象の ExpressRoute Circuit を選択し、[接続] を作成します。

以下のように、接続の名前等を入力します。

プルダウンから、接続する仮想ネットワークゲートウェイを選択します。
複数接続を作成するという場合には、重み付け(重い方を優先)の設定もできます。なお、既定は ECMP (Equal-cost multi-path routing) です。

これで作成を完了すれば、接続が完了します。
以下のように、手元のPCから、プライベートIPで AzureVM へ 疎通ができるはず。

まとめ

今回は L2 プロバイダー様を想定して、サンプル手順を記載してみました。
L3 プロバイダー様の場合であれば、おそらく No.4 ~ No.6 が不要になるかと思います。
ただ、詳細はプロバイダー様によって異なると思いますので、本記事はあくまで参考に、実際の手順はプロバイダー様等ともご相談くださいませ。

参考: L3 プロバイダー様と L2 プロバイダー様

ExpressRoute の接続をご提供されているプロバイダー様は、 L3 接続のプロバイダー様と、L2 接続のプロバイダー様に大別されます。

プロバイダー様によって様々な違いはあるかとは思いますが、ざっくりとは、以下のような特徴があるかと思います。

  • L3 接続のプロバイダー様を選択する場合は、ルーティング や ルーターの管理等を含めてプロバイダー様へお任せができ、導入・運用負荷が少なくなります。
  • L2 接続の場合には、ルーティング や ルーターの管理等を自分たちで行う必要がありますが、より柔軟なネットワーク構成が可能になります。

以下の公開ドキュメントも参考になると思います。

https://learn.microsoft.com/ja-jp/azure/expressroute/expressroute-connect-azure-to-public-cloud

参考URL

https://learn.microsoft.com/ja-jp/azure/expressroute/expressroute-introduction

https://www.syuheiuda.com/?p=4897

https://www.cloudou.net/expressroute/exr001/

https://jpaztech.github.io/blog/network/expressroute-maintenance/

https://jpaztech.github.io/blog/network/considerations-of-microsoft-peering/

https://zenn.dev/microsoft/articles/multiple-hub-spoke-designs

https://learn.microsoft.com/ja-jp/azure/expressroute/expressroute-connect-azure-to-public-cloud

Microsoft (有志)

Discussion