🥜

ExpressRoute の向こう側から プライベート ASN は聞こえてこない?

2023/12/09に公開

こちらは Microsoft Azure Tech Advent Calendar 2023 9日目 の記事です。

ASN とは

Autonomous System (自律システム) 番号は、ネットワークの集まりである AS に割り当てられる番号です。例えば マイクロソフト の ネットワーク には AS 8075 や AS 12076 といった番号が割り当てられています。

https://bgp.tools/search?q=Microsoft+Corporation

さて、Autonomous System (自律システム) 番号 には、パブリック ASN とプライベート ASN があります。
パブリック ASN は、インターネット上で一意に識別される AS で、当初 2 バイト(0 ~ 65535)でしたが、インターネットの拡大に伴い 4 バイト(0 ~ 4294967295)に拡張されました。
パブリック ASN が組織間を接続するために用いられるのに対し、プライベート ASN は、主に組織の内部で利用するためのものです。2 バイト の プライベート ASN の範囲として 64512~65534 が、4 バイト の プライベート ASN は 4200000000~4294967294 の範囲が予約されています。

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

ExpressRoute や Azure サービスが利用する ASN って?

ExpressRoute では、AS 12076 が利用されています。これは パブリック ASN です。
また、Azure では、AS 65515 ~ 65520 が内部使用のために予約されています。

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

なるほど。図で書いてみるとこんな感じですか。

オンプレミス環境を ExpressRoute で Azure と接続するには、オンプレミス側にも ASN を用意する必要があります。企業として取得済みの パブリック ASN が無ければ、プライベート ASN を利用することになるでしょう。この図では、Azure と重複しない ASN として 65150 を付与しています。

更に発展させて、Azure Route Server や NVA (Quagga) も立ててみました。

Azure Route Server が使用する ASN も AS 65515 です。
今回は図にありませんが、もし VPN Gateway を立てて経路情報を交換するのであれば、それも AS 65515 である必要があります。
NVA (Quagga) は、AS 65001 を利用することとし、オンプレミス側とも重複しないようにしています。

ExpressRoute 回線の向こう側から聞こえてくる ASN は?

さて、それぞれルートテーブルを確認してみて、どういった AS Path で経路情報が流れているのかを確認してみましょう。ちなみに AS Path (BGP の AS-PATH 属性) は、経由する AS を示す属性で、AS1 の向こう側に AS2 があり、その先に AS3 があり…といった、目的のネットワークまでに経由する AS を示すものです。最適経路の判断や、経路がループしていないか?の判定に利用されます。

ExpressRoute Circuit の ルートテーブル で見てみた

まずは、ExpressRoute Circuit の ルートテーブル を確認してみます。

ExpressRoute Circuit で確認した結果としては、確かに NVA が広報する 10.30.0.0/16 のネットワークが、AS 65515 (Azure Route Server) の先の、AS 65001 (NVA) に存在すると認識できていますね。また、Azure 側にある VNet 10.10.0.0/16 も見えています。

オンプレミスネットワークスイッチ の ルートテーブル で見てみた

では、オンプレミス側のスイッチでも確認してみましょう。
ん…?

NVA で広報している 10.30.0.0/16 や、接続されている VNet 10.10.0.0/16 を受信していますが、AS Path は 12076 のみですね。てっきり AS 12076 - AS 65515 - AS 65001 という形で 10.30.0.0/16 が見えるかと思いましたが…。
いったい 65515 や 65001 はどこに?

プライベート ASN は消える

ここでパブリック ASN とプライベート ASN の違いが思い出されます。
プライベート ASN は一意でない可能性があるため、グローバルなネットワークへルートを伝搬させる前に、ASパスから プライベート ASN は削除する必要があります。
そして確認する限り、プライベート ASN は削除されているようです。

ちなみに、オンプレミス側で付与した プライベート ASN は、削除されることなく Azure 側へ伝搬されます。今回の検証では、オンプレミス側で付与した ASN 65150 を NVA でも受信できています。良くあるケースとしては、複数の ExpressRoute 回線を利用している際の経路制御(AS-path prepend)かたちで利用されます。

パブリック ASN は消えない (Azure VMware Solution で試す!!)

パブリック ASN は消えないことも確認してみます。
Azure VMware Solution (AVS) は、パブリックASN を利用している サービスですので、今回の環境と接続して、確認してみます。

それでは、オンプレミス側のスイッチで確認してみましょう。

今回 AVS で利用しているアドレス空間 10.30.0.0/22 が、AS 12076 の先に AS 398657 として見えています。やはりパブリック ASN 398657 であれば消えませんね!

参考URL

Microsoft (有志)

Discussion