$30 off During Our Annual Pro Sale. View Details »

Microsoft Azure Virtual Networkについて調べた資料

YuYu
March 09, 2019

Microsoft Azure Virtual Networkについて調べた資料

Microsoft Azure IaaSにふれる中で、結構「??」と感じることがあったので、それを勉強した内容をまとめたもの。ネットワークの動きとしてそれが正しいのかどうかは分かりませんが、いかに効率よく、合理的にネットワーク通信を行えるようにするのか、Microsoftに限らず、様々なクラウドベンダーの苦労が垣間見えたような気がします。

YuYu

March 09, 2019
Tweet

More Decks by YuYu

Other Decks in Technology

Transcript

  1. Home IT infrastructure hobbyist -BLUECORE.NET Home IT infrastructure hobbyist -BLUECORE.NET

    自己紹介  ろーかるゆーざー(localYouser)/ Yuichi Tominaga:40歳  2003年より社会人になり、以降ITインフラ系一本で生きております  九州在住のITオンプレ専門インフラエンジニア(?)をやって〼。  @[email protected]と言うアカウントでMastodonというSNSやってます  Webサイトは https://www.bluecore.net
  2. Home IT infrastructure hobbyist -BLUECORE.NET Home IT infrastructure hobbyist -BLUECORE.NET

    Microsoft Azureのネットワーク これまでの常識では理解しづらいネットワーク特性がある。 ただ、予め一定の素養があると食いつきやすい。 既存ネットワークの常識を一度外して考える必要はある。 経路制御は全体的にBGPとStatic Routeが使用される。 VNET Peering/Express RouteにおけるPrivate Peering, Microsoft Peering等 UDRはStaticRouteだね。 原則ICMPに疎通許可は出してない。 ゲートウェイやサービスエンドポイントに対してpingを打ってもTracerouteを打っても意 味がないので、サービス単位で確認方法を探る必要がある。 VM上のファイアウォールソフトウェアは止まってる。 NSGで制御する前提になっている。ソッチのほうが楽なので、おとなしく従うが吉。 我々がほんとうの意味で触れるのは表層だけ。 我々が見ることすらできない内部ネットワークがあり、そこに対する制御は不可。
  3. Home IT infrastructure hobbyist -BLUECORE.NET Home IT infrastructure hobbyist -BLUECORE.NET

    Virtual Network  仮想ネットワークリソース  アドレス空間:サブネットを切り出す元となる大枠のネットワーク空間  サブネット :実際にデバイスが接続するネットワーク  サービスエンドポイント: PaaS/SaaSサービスにIaaSが内部でアクセスするためのアクセス先 サブネットを関連付けると、そのサブネットは内部ネットワーク経由で そのサービスへアクセスできる User Defined Route  ユーザ定義ルートテーブル  所謂Static Route Tableのようなもの。  ここで定義した経路は何よりも優先して採用される。  関連付けをサブネットに対して行うことにより、経路制御の範囲内に収めることもでき るし、逆に関連付けを外すことで独立させることもできる。
  4. Home IT infrastructure hobbyist -BLUECORE.NET Home IT infrastructure hobbyist -BLUECORE.NET

    ソース 状態 アドレスのプレフィックス 次ホップの種類 次ホップの種類の IP アドレス ユーザー定義ルート名 既定 アクティブ 172.29.0.0/16 仮想ネットワーク 既定 アクティブ 172.30.0.0/16 VNET ピアリング 仮想ネットワーク ゲートウェイ アクティブ 192.168.230.0/24 仮想ネットワーク ゲートウェイ (仮想GatewayのPublicIP) 仮想ネットワーク ゲートウェイ アクティブ 192.168.231.0/24 仮想ネットワーク ゲートウェイ (仮想GatewayのPublicIP) 仮想ネットワーク ゲートウェイ アクティブ 192.168.239.0/24 仮想ネットワーク ゲートウェイ (仮想GatewayのPublicIP) 仮想ネットワーク ゲートウェイ アクティブ 192.168.237.0/24 仮想ネットワーク ゲートウェイ (仮想GatewayのPublicIP) 仮想ネットワーク ゲートウェイ アクティブ 172.25.230.0/24 仮想ネットワーク ゲートウェイ (仮想GatewayのPublicIP) 仮想ネットワーク ゲートウェイ アクティブ 192.168.200.0/24 仮想ネットワーク ゲートウェイ (仮想GatewayのPublicIP) 仮想ネットワーク ゲートウェイ アクティブ 10.5.0.0/16 仮想ネットワーク ゲートウェイ (仮想GatewayのPublicIP) 仮想ネットワーク ゲートウェイ アクティブ 10.240.0.0/16 仮想ネットワーク ゲートウェイ (仮想GatewayのPublicIP) 仮想ネットワーク ゲートウェイ アクティブ 10.96.0.0/12 仮想ネットワーク ゲートウェイ (仮想GatewayのPublicIP) 仮想ネットワーク ゲートウェイ アクティブ 192.168.220.0/24 仮想ネットワーク ゲートウェイ (仮想GatewayのPublicIP) 仮想ネットワーク ゲートウェイ アクティブ 192.168.100.0/24 仮想ネットワーク ゲートウェイ (仮想GatewayのPublicIP) 仮想ネットワーク ゲートウェイ アクティブ 192.168.90.0/24 仮想ネットワーク ゲートウェイ (仮想GatewayのPublicIP) 既定 アクティブ 0.0.0.0/0 インターネット 既定 アクティブ 10.0.0.0/8 なし 既定 アクティブ 100.64.0.0/10 なし 既定 アクティブ 172.16.0.0/12 なし 既定 アクティブ 192.168.0.0/16 なし 既定 アクティブ 23.98.56.0/26; 52.239.146.0/23, 104.214.152.16/28, 104.214.152.176/28, 104.215.32.16/28, 104.215.32.32/28, 104.215.32.64/27, 104.215.35.32/27 VirtualNetworkServiceEndpoint 既定 アクティブ 13.73.8.16/28; 13.73.8.32/28, 20.38.116.0/23, 23.98.57.64/26, 40.115.169.32/28, (ぼちぼち多いので以下略) VirtualNetworkServiceEndpoint 既定 アクティブ 13.67.50.224/29; 13.75.48.16/29, 13.75.80.16/29, 20.190.128.0/26, 20.190.128.64/28, 20.190.128.128/27, 20.190.128.160/29, 20.190.129.0/26, …(超絶に多いので以下略) VirtualNetworkServiceEndpoint 動的ルート: VNET PeeringやVPN Gatewayの経路広報等 によるもの システムルート: サブネットに自動付与 されるもの 優先度は最も低い Service Endpoint: 対象サブネットに対し て有効にすると、経路 伝搬が行われる
  5. Home IT infrastructure hobbyist -BLUECORE.NET Home IT infrastructure hobbyist -BLUECORE.NET

    Network Security Group  ステートフルなネットワークパケットフィルタ  ステートフルなので、ソース側の情報はあまり気にしなくていい  サブネットに対して適用すると、そこに一律で接続したNIC/デバイスに対して同じ設定 がなされる  NIC単位に個別に設定することももちろん可能
  6. Home IT infrastructure hobbyist -BLUECORE.NET Home IT infrastructure hobbyist -BLUECORE.NET

    VNETの構造を紐解いてみる default via 172.30.100.1 dev eth0 168.63.129.16 via 172.30.100.1 dev eth0 proto static 169.254.0.0/16 dev eth0 scope link metric 1002 169.254.169.254 via 172.30.100.1 dev eth0 proto static 172.30.100.0/24 dev eth0 proto kernel scope link src 172.30.100.5 ip rコマンドの結果 gateway (172.30.100.1) at 12:34:56:78:9a:bc [ether] on eth0 arpコマンドの結果 Subnet A Subnet B Gateway Subnet リージョン内NW Microsoft Backbone内 どうやら、VNET単位で 見えざるゲートウェイが 居るらしい .1 .1 .1 ルートテーブル との関連付け L2フレームの転送 は特殊っぽい VPN Gateway VirtualMachine Endpoint Resources
  7. Home IT infrastructure hobbyist -BLUECORE.NET Home IT infrastructure hobbyist -BLUECORE.NET

    普通の環境では 192.168.100.0/24 192.168.200.0/24 フレームはルータで 変換されて流れる 送信元MAC 送信先MAC 送信元IPADDR 送信先IPADDR 00:0c:29:f3:f9:a3 64:a0:e7:52:91:c4, 192.168.200.201.22 192.168.100.142.46278: 64:a0:e7:52:91:c4 00:0c:29:f3:f9:a3, 192.168.100.142.46278 192.168.200.201.22: 00:0c:29:f3:f9:a3 64:a0:e7:52:91:c4, 192.168.200.201.40794 192.168.100.227.9080: 64:a0:e7:52:91:c4 00:0c:29:f3:f9:a3, 192.168.100.227.9080 192.168.200.201.40794: 他セグメントの フレーム発信元は L3スイッチになってる こちらは自サーバ
  8. Home IT infrastructure hobbyist -BLUECORE.NET Home IT infrastructure hobbyist -BLUECORE.NET

    VNETの通信では 172.29.100.0/24 172.30.100.0/24 実はP2Pで通信を してるみたい。 送信元MAC 送信先MAC 送信元IPADDR 送信先IPADDR 00:0d:3a:40:17:c4 12:34:56:78:9a:bc, 172.30.100.5.ssh 172.29.100.4.49282: b0:aa:77:66:52:3c 00:0d:3a:40:17:c4, 172.29.100.4.49282 172.30.100.5.ssh: 00:0d:3a:40:17:c4 12:34:56:78:9a:bc, 172.30.100.5.38534 168.63.129.16.http: 12:34:56:78:9a:bc 00:0d:3a:40:17:c4, 168.63.129.16.http 172.30.100.5.38534: 直接フレームが 送られている 外部アドレスは ルーター経由
  9. Home IT infrastructure hobbyist -BLUECORE.NET Home IT infrastructure hobbyist -BLUECORE.NET

    IaaSのパーツ構成  例えばAppGateway。  インタフェース、実は一つ。  グローバル側の出口はPublic IPの持つNAT機能で担保  NSGを組む際は、中を流れるネットワークは全部プライベートIP(NATの内側)  そのことを前提にフィルタリングルールを書かないと何も意味をなさなくなる Public IP (DNAT) Microsoft Backbone Application Gateway (V1/SKU:S) VNET +Routing Table VPN Gateway Public IP (DNAT) Microsoft Backbone Application Gateway (V1/SKU:S) VNET +Routing Table VPN Gateway こうじゃない こう。
  10. Home IT infrastructure hobbyist -BLUECORE.NET Home IT infrastructure hobbyist -BLUECORE.NET

    その他VNETの特性 L2制御はAzure Network Fabricが完全に制御しているようだ。 MACアドレスが12:34:56:78:9a:bcになってるのは、OSに対する偽装目的もあるよ うだ。 代わりに制約もある。 Azureのネットワークはマルチキャスト/ブロードキャストができない。 ⇒VRRPはUnicastモードにしないと使えない。 IPアドレス設定はDHCP配布が大前提。 ⇒サーバローカルでIPアドレス変更すると、そのまま疎通断に。
  11. Home IT infrastructure hobbyist -BLUECORE.NET Home IT infrastructure hobbyist -BLUECORE.NET

    DDoS対策とかしてるの?  DDoS プロテクションFree版が全ユーザ実装されているはず  無償かつ強制  恐らくは、Azureプラットフォーム最前段にいると予想される。  パケット監視してます、DDoS止めます、でも一切通知とかしません・・というもの。  通知ほしければ、モニタリングしたければ有償のStandardを・・・(・・・高いよ) DDoSシステムは一般的に超高価。なので、個人的には非常にありがたい。 Internet DDoS Protection Firewall等
  12. Home IT infrastructure hobbyist -BLUECORE.NET Home IT infrastructure hobbyist -BLUECORE.NET

    ExpressRouteで完全閉域にできる?  パーツ自体としてはある程度あり。だが、原則完全閉域は不可能。  それ以前にAzurePortalがインターネットアクセスなしには動かない。  というよりは表示が崩れる。多分。 原因はMicrosoftが結構CDNに頼ってること PaaS IaaS Express Route Private Peer Microsoft Peer Internet Access Microsoft Peer:Azure/O365に関わる経路の広報 Private Peer :IaaSにおけるVNET経路の広報
  13. Home IT infrastructure hobbyist -BLUECORE.NET Home IT infrastructure hobbyist -BLUECORE.NET

    権威DNS Azureに絞った個人環境構成図(最大構成) Microsoft Backbone EASTUS GLOBAL Public IP (DNAT) Public IP (DNAT) Internet JPWEST P2S VPN (L2TP/IPsec) S2S VPN (IPsec/IKEv2) 踏み台兼Proxy 試験用IDS AppGw VPNGw 統合ストレージ Functions用 ストレージ アプリ勉強用 SQL Server アプリ勉強用 WebApps アプリ勉強用 Functions アラート KeyVault Azure AD Sec Center Portal Traffic Manager CDN 至:本番環境(BBIQ:100Mbps) 至:DR環境(BBIQ:100Mbps) ※ここまでやって約12,000円/月ぐらい ※筆者予算都合により 規模縮小している可能性があります
  14. Home IT infrastructure hobbyist -BLUECORE.NET Home IT infrastructure hobbyist -BLUECORE.NET

    おしまいに <(_ _)> ドーモアジャッシター クラウド各社のネットワークは 「新しいネットワーク」と言える 物理制約がないために 「様々な表現」が可能になっている 画一的な書き方はないと思うので、互いに表現の仕方を考え、 ネットワークを理解していったらどーかな?と思う