Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

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

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

localYouser

March 09, 2019
Tweet

More Decks by localYouser

Other Decks in Technology

Transcript

  1. BLUECORE.NET
    Home IT infrastructure hobbyist
    Microsoft Azureのネットワークについて
    勉強した内容をこちらに書いてみる
    2019/03/09 第一版
    BLUECORE.NET/localYouser/Yuichi Tominaga
    <(_ _)>
    ドーゾヨロシクオナシャース

    View full-size slide

  2. 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

    View full-size slide

  3. 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で制御する前提になっている。ソッチのほうが楽なので、おとなしく従うが吉。
    我々がほんとうの意味で触れるのは表層だけ。
    我々が見ることすらできない内部ネットワークがあり、そこに対する制御は不可。

    View full-size slide

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

    View full-size slide

  5. 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:
    対象サブネットに対し
    て有効にすると、経路
    伝搬が行われる

    View full-size slide

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

    View full-size slide

  7. 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

    View full-size slide

  8. 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スイッチになってる
    こちらは自サーバ

    View full-size slide

  9. 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:
    直接フレームが
    送られている
    外部アドレスは
    ルーター経由

    View full-size slide

  10. 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
    こうじゃない こう。

    View full-size slide

  11. 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アドレス変更すると、そのまま疎通断に。

    View full-size slide

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

    View full-size slide

  13. 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経路の広報

    View full-size slide

  14. 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円/月ぐらい
    ※筆者予算都合により
    規模縮小している可能性があります

    View full-size slide

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

    View full-size slide