June 2019

[20190626][Cloud][Network] Azure Networkの動きを追いかけてみるなど

IaaSにおけるルーティング Microsoft Azure のIaaS環境におけるルーティングとして、オンプレミスと比較すると実はあまり設定箇所がない。強いて挙げるなら * UDR(User Defined Route:リソースはルートテーブル)による静的ルート設定 * VPN GatewayやVNET間のピアリングによる経路広報 * Service Endpoint設定による、特定SaaS/PaaSに対する経路広報 ぐらいなのかな。そこにIGPなんかは気持ちいいぐらい入ってこない。 こうした設定の結果、VMなどにはどういう経路が広報されているのかを知ることが出来る。「有効なルート」と言う設定で、例えば以下のようなことが確認できる。 有効なルートで見えるもの システムルート どんなVMやIaaSコンポーネントにも採用されるデフォルトのルーティング設定であり、具体的な内容としては * デフォルトルートはインターネットへ向いている * プライベートアドレスに関しては、原則ブラックホール行き * CGN用プレフィックスも基本的にはブラックホール行き * 同一VNET間の通信はVNETを伝わってどこにでも行ける(仮想ネットワーク) というのが書かれている。優先度は低く、カスタムルートなどで指定されていない場合はこのルートが原則採用される。 動的ルート VPN GatewayやVNET Gateway(Express Route Gateway)、VNET Peeringによって広報される経路が適用される。その機能名などから恐らくBGPが使用されてるんだろうなーと思われるんだけど、詳細はわからない。 なお、Service Endpointなどの定義によって定められるルーティングに関しても、この動的ルートのカテゴリに含まれる。 User Defined Route(UDRまたはカスタムルート) ユーザが「ルートテーブル」リソースを使用して定義するカスタムルーティングテーブルを指す。UDRは「カスタム定義ルート」の列に定義したルートテーブルリソース名が付与される。 ルートの反映 ルートの反映を行うにあたり、その優先度は以下のようになる。 * ルーティングの大原則(ロンゲストマッチ等)にまずは従う * 情報の優先度は「カスタムルート>動的ルート>システムルート」 VNETを少しだけ紐解いてみる サーバ側のコマンド結果から、こうではないかと。 まず、VNET内のサブネット上のサーバにIPアドレスを動的で付与すると、かならず第4オクテット4から順にIPアドレスが払い出される。サーバ側でip rコマンドを打ってみると、上図のように第4オクテット1のアドレスがデフォルトゲートウェイとして定められている。 どうやらこれがVNET単位で配置されている、隠れたL3デバイスのようだ。そしてarpテーブルを覗いてみると、面白いMACアドレスがゲートウェイに対して割り当てられてるのが見受けられる。 12:34:56:78:9a:bc なんだこれわ。こんなのみたことねぇ、ってか恐らくはソフトウェアが払い出してるMACアドレスなんだろうなーと言うのは容易に想像がつく。この時点でAzureのネットワークは何かしらSDN(Software Defined […]