APC 技術ブログ

株式会社エーピーコミュニケーションズの技術ブログです。

株式会社 エーピーコミュニケーションズの技術ブログです。

アット東京 Cloud LabでAzureのExpressRouteの検証環境でもくもくしてきました

ACSD安藤です。

Microsoft MVPの吉川さんのツテと酒見さんのご厚意で、アット東京のCloud LabでAzureのExpressRouteでAzureとオンプレルータを接続したり、もくもくしてきました!

AzureのExpressRouteとは?

AzureのExpressRouteは、Microsoft のデータセンターとオンプレミスや共用施設にあるインフラストラクチャの間にプライベート接続を作成できる Azure サービスです。
VPNはインターネット接続を仮想的にプライベート接続させているのに対して、ExpressRouteでは実際にプライベート接続しているため、安全性と信頼性が高く、待機時間も一貫して短く、高速です。

learn.microsoft.com

Cloud Labってどんなところ?

www.attokyo.co.jp

アット東京は日本に4つ(東日本に3つ、西日本に1つ)しかないExpressRouteのLocationとなっているデータセンターを持っており、 Cloud LabはAzureのExpressRouteやAWS Direct Connectといったクラウドのプライベート接続サービスと直接接続が可能なレンタルスペースとなっています。
この手の回線サービスは実際に契約してみないと検証もできないようなものなので、そんな回線が敷設済みの環境で検証ができるとても貴重な場所&経験でした!

atbex.attokyo.co.jp

検証したこと

今回検証したことを私が理解した形でご紹介します!
(正しい解説はドキュメント等をご確認ください)

ExpressRouteをオンプレミスルータと接続してみる

今回のもくもくの準備にして、最大に目玉であるExpressRouteとオンプレミスルータとの接続です。

ざっくり構成図

今回の登場人物とその構成です。
それぞれの役割は設定していく中でくみ取ってもらえればと思います。

リソースや設定を作っていく順序はいくらか自由度がありそうだったので必ずしもこの順序である必要はなさそうですが、とりあえずは私が設定した順序でご紹介します。

ExpressRoute Circuitの作成

ExpressRoute Circuit (ExpressRoute 回線)は、接続プロバイダー経由のオンプレミス インフラストラクチャと Microsoft クラウド サービス間の論理接続です。(原文ママ)

キャプチャのようにピアリングするロケーションやプロバイダ(今回はアット東京)を選択しました。
作成が完了するとService Keyというものが発行され、後ほどAzure Virtual Network Gatewayとの接続に利用します。

ちなみにこのExpressRoute Circuitは別のテナントで作成されたものを利用するということもでき、今回は酒見さんに作っていただいたCircuitのService Key(承認キー)を利用しました。

ExpressRoute Circuitとオンプレルータとの接続

次にExpressRoute Circuitとオンプレルータとの接続ですが、まずはExpressRoute Circuitに(オンプレとの)ピアリング設定を作成します。

ExpressRouteではオンプレミスとL3レイヤーで接続し、それにはBGPというネットワークルーティングプロトコルを利用します。
そのため、オンプレミス側の情報として以下の情報をピアリング設定に入力します。

  • AS番号(ASN)
  • サブネット(IPv4なら/30、冗長化するならプライマリ・セカンダリの2つ)
  • VLAN ID

AS番号はパブリックなものを取得しようとすると費用と時間を要するので、プライベートAS番号である64496~64511の値を使用しました。

https://www.nic.ad.jp/doc/jpnic-01244.html#id000402

サブネットは172.16.0.0/30を使用しました。こうするとオンプレルータは172.16.0.1、ExpressRoute Circuit側は172.16.0.2で通信することになります。
VLAN IDはExpressRoute Circuit内で重複しない適当な番号を使いました。

learn.microsoft.com

ここまで設定したら、ついにオンプレルータの出番です!!
真面目にルータを触るのは10年振りぐらいで懐かしさですでに感慨深い…
うっかり写真や型番のメモを忘れてしまっていましたが、確かCisco 892シリーズぐらいだったはずです。
TeraTermとコンソールケーブルで接続して、細かい手順は省きますが以下のような設定を入れました。

interface GigabitEthernet7
 switchport access vlan 10
 no ip address
!
interface GigabitEthernet8
 no ip address
 duplex auto
 speed auto
!
interface GigabitEthernet8.{VLAN ID}
 encapsulation dot1Q {VLAN ID}
 ip address 172.16.0.1 255.255.255.252
!!
interface Vlan10
 ip address 10.100.0.1 255.255.255.0
!
router bgp {Private-AS}
 bgp log-neighbor-changes
 network 10.100.0.0 mask 255.255.255.0
 neighbor 172.16.0.2 remote-as 12076
 neighbor 172.16.0.2 soft-reconfiguration inbound

VLAN10(10.100.0.0/24)は作業用のPCと接続するためのLANの設定です。
GigabitEthernet8がExpressRouteと接続するためのWANポートで、VLAN IDに対応するサブインターフェースを作って、Circuitで設定したオンプレ側に設定する172.16.0.1/30を設定しました。

そしてBGPの設定ではneighborのIPとして172.16.0.2を、リモートAS番号としてMicrosoftの12076を設定します。

https://learn.microsoft.com/ja-jp/azure/expressroute/expressroute-routing#autonomous-system-numbers-asn

その他諸々の設定は…私にとってはおまじないですねw

最後に以下のshowコマンドを打って、 BGP state = Established となっていたら、正しく接続できたということになります!

Router# show ip bgp neighbor 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:02:19

ExpressRoute CircuitとVirtual Network Gatewayとの接続

オンプレ側の設定が終わったら、またAzureの設定に帰ってきます。

まずはVirtual Network Gatewayの作成ですが、Virtual Network Gatewayは仮想ネットワーク上に作られるリソースなので、まずはリソースグループ・仮想ネットワークを作りましょう。
ちなみに今回の仮想ネットワークは10.1.0.0/16で作りました。

Virtual Network Gatewayの作成ではゲートウェイの種類としてExpressRouteを選択して、先ほど作成した仮想ネットワークに作成するように指定して作成します。

Virtual Network Gatewayの作成には2,30分ほどかかるのでじっくり待ちましょう。(先にGatewayを作成待ちにしながらオンプレルータ設定すべきでしたね)
ちなみにVirtual Network GatewayはGatewaySubnetという固定の名前の特殊なサブネットにデプロイされます。(今回は10.1.0.0/24)

Virtual Network Gatewayが作成できたらあと一歩!最後のリソースの作成になります。

最後のリソースはConnectionsというリソースです。
このリソースはExpressRoute CircuitとVirtual Network Gatewayを文字通り接続するための設定です。
検索メニューをConnectionsと検索すると同名のサービスが2つ出てきますが、下の方のルータっぽい?アイコンのほうです。
(上の方はData Transferに関するソリューションのようです)

接続の種類としてExpressRouteを選択すると、以下のような画面が出てきます。

仮想ネットワーク ゲートウェイとして先ほど作成できたVirtual Network Gatewayを指定します。

次にExpressRoute Circuitの情報を設定しますが、今回は別テナント・別サブスクリプションで作成したCircuitを利用するので、承認の利用にチェックを入れます。
すると、承認キーやピア回線のURIを入力する画面に切り替わります。 (↑のキャプチャはすでに切り替わった後です)

承認キーにはExpressRoute Circuitで発行された承認キー(Service Key)を入力し、
ピア回線のURIにはExpressRoute CircuitのリソースID(/subscriptions/...から始まるAzureお馴染みのID)を入力します。

これで設定は完了です!!

ExpressRouteの接続確認

後は設定が反映してルート情報が降ってくるのを待ちます。
ルータで以下のコマンドを打ち、Azure側の10.1.0.0/16のルート情報が降ってきたら接続完了です!

Router# show ip bgp neighbors 172.16.0.2 received-routes

AzureにパブリックIPを無効にしたVMを作成して、PCにスタティックルート(Windowsならroute add 10.99.0.0/16 10.100.0.1)を追加して、
pingなりSSH/RDPが接続できたら疎通確認まで完了なので、あとは好きに遊びましょう!

他に検証したこと

  • ExpressRouteを接続したVnetをHubとして、Hub & Spoke構成を作る
  • Azure Private Resolverを使用してPrivate EndpointをPCから名前解決する

など、色々と検証させてもらいましたが、長くなってきたので後は追々共有できたらと思います。

最後に

改めて貴重な環境で貴重な体験をさせてもらったな、と思っています。
私自身、クラウドにどっぷりという感じでネットワーク機器からはしばらく遠のいていたのですが、
久しぶりにプリミティブな「繋がった!」という感覚を味わえました。

そして環境もすごいんですが、どんな細かい質問をしても何でも答えてくれる酒見さんがいてくれる頼もしさが最高でした!

当日の感想:

また、今回のような#ExpressRouteExplorersは今後も2,3か月置き程度で開催予定とのことです。
ご興味がある方は#ExpressRouteExplorersのハッシュタグやJAZUG等のAzureのコミュニティイベントをウォッチしておくと良いかもしれませんね。

以上、Cloud LabでのExpressRoute体験レポートでした!



私達ACS事業部はAzure・AKSなどのクラウドネイティブ技術を活用した内製化やGitHub Enterpriseの導入のご支援をしております。
www.ap-com.co.jp www.ap-com.co.jp また、一緒に働いていただける仲間も募集中です!
今年もまだまだ組織規模拡大中なので、ご興味持っていただけましたらぜひお声がけください。 www.ap-com.co.jp

本記事の投稿者: 安藤 知樹