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

Azure Networkについて調べてみた資料:少しブラッシュアップ済

Azure Networkについて調べてみた資料:少しブラッシュアップ済

Azure が使用するネットワークについて、IaaSとPaaS/SaaSと言う分け方で色々整理してみた。

localYouser

August 10, 2019
Tweet

More Decks by localYouser

Other Decks in Technology

Transcript

  1. Azure ネットワーク考
    2019年8月10日
    BLUECORE.NET管理人
    localYouser / Yuichi Tominaga

    View full-size slide

  2. BLUECORE.NET
    Azureのネットワークって
    • Azureリソースを色々組む過程で不思議な物をよく目にした。
    • 普通のネットワークだとなかなか見ないことが起きていたり、例えば以下のようなケース。
    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

  3. BLUECORE.NET
    IaaSにおけるネットワーク

    View full-size slide

  4. BLUECORE.NET
    IaaSにおける主要構成要素
    • VNET :仮想ネットワークリソース
    • Azure Gateway :1つのVNETに恐らく2つ(VRRP?)払い出されるゲートウェイ
    • アドレス空間 :対象VNET内で使用する広範囲のCIDR空間
    • サブネット :アドレス空間から切り出されるCIDR空間
    • VNET Peer :異なるVNET間をピアリングして経路交換をする方法。リージョンをまたぐ場合は
    グローバルピアリングと言うらしい。
    • NSG :パケットフィルタリソース
    • Azure VM :言わずとしれた仮想サーバリソース。Hyper-Vベースぽい。
    • VPN Gateway :VPN接続用のゲートウェイ
    • Local Gateway :オンプレミス側で構成されるルーターの情報
    • NWインタフェース :VMのアドレス管理と経路提供をするリソース
    • ユーザー定義ルート :カスタマイズされた静的ルート情報
    • ExpressRoute Gateway :ExpressRouteにおいて、Private Peerを構成する際に使うゲートウェイリソース
    • Load Balancer :L4ロードバランサ。TCP/UDP単位でのロードバランシングが可能。
    • Application Gateway :L7ロードバランサ。WAF機能を使用することも可能。
    V1とV2があり、V1はIISベース。V2はNginxベースらしい。
    • Azure Global Network :MicrosoftにおけるAzure関連のリソースを収容するGlobalアドレス空間
    なんとICMPが通らなくなっているのが普通で、pingを打っても疎通しない。
    (ただし、NSGの構成次第では現在ならばReplyが返ってくるようになってる)
    なお、Microsoftとしては、当該ネットワークは「内部ネットワーク」の位置づけらしい。

    View full-size slide

  5. BLUECORE.NET
    VNETとはなにか?
    • VNET=Azure Gatewayと考えるとわかりやすいかも
    • IaaSリソースの中核と言ってもいい
    • Azure Gateway=SDNルーター=すべてのサブネットの中核
    • 第4オクテットは「.1」となる。他リソースの開始が「.4-」となっているため、Gatewayは2台からなるVRRP構成
    に似たSDNルータが用意されているものと予想される。
    • Azure GatewayのMACアドレスは不思議なことに12:34:56:78:9A:BC。
    • サブネットはゲートウェイサブネットと通常のサブネットで構成される
    • ゲートウェイサブネットはVPN関連専用
    • インターネットゲートウェイは見えないけど存在しており、デフォルトゲートウェイになっている。
    ゲートウェイサブネット
    サブネット
    THE INTERNET
    Azure Gateway

    View full-size slide

  6. BLUECORE.NET
    サービスエンドポイント
    • グローバルアドレスを用いて提供しているサービス(PaaSリソース・SaaSリソース)の途
    中経路にVNETを指定する機能
    • この機能を有効にすると、Azure Gatewayに経路が追加される。
    • これにより、内部セグメントを伝ってサービスへ到達することが可能であり、セキュリ
    ティ向上に寄与する・・と考えられてる。
    Azure Global Network
    Service
    Endpoint
    サービスエンドポイントによる
    ルーティング
    通常のルーティング

    View full-size slide

  7. BLUECORE.NET
    Azure VMとネットワークインタフェース
    • Azure VMはHyper-Vベースの仮想マシン
    • Hyper-V NICとして認識される
    • つまりは、Hyper-V NICのドライバがないとVMは実質動かない。注意が必要。
    • 設定はDHCPによる動的取得が基本となっている
    • ネットワークインタフェース
    • Azure VMにくっついてアドレスを払い出す・通信する
    • サブネットやNSGに関連付けを行い、ネットワーク制御を主体的に行っている
    • IPアドレスの設定はこのリソースを用いて行う(デフォルト動的:固定可能)
    • Public IPアドレスの割当はこのリソースを用いて行う
    サブネット
    仮想マシンNICはHyper-V NICとして認識
    ネットワークインタフェース:アドレスの設定はこちら

    View full-size slide

  8. BLUECORE.NET
    ネットワークセキュリティグループ
    • パケットフィルター機能
    • 「ステートフル」なパケットフィルター機能を提供する
    • 適用対象は「サブネット」もしくは「ネットワークインタフェース」
    • 配置されるネットワークは常にプライベートネットワークのみとなる
    サブネット
    • NSGが何を遮断し、何を通過させたかは、フロー
    ログに記録する
    • フローログの分析にはTraffic Analyticsという
    Azure Monitorの持つ機能を使用する必要がある。

    View full-size slide

  9. BLUECORE.NET
    NSGにおける注意事項
    • NSGが見えるネットワークはVNETだけ。
    • Public IPアドレス宛の通信は、その通信がIaaS VNETに入った段階のものが検査される
    • Public IPに対する通信のルールを登録しても、そのルールは使用されない。下記例の場合、
    DestinationはVMのプライベートIPアドレスを指定したルールを書く必要がある。
    • 最近ようやくICMP通信許可がルールとして書けるようになった。
    Public IP
    (DNAT)
    Azure Global
    Application
    Gateway
    (V1/SKU:S)
    VNET
    +Routing Table
    Public IP
    (DNAT)
    Azure Global
    Application
    Gateway
    (V1/SKU:S)
    VNET
    +Routing Table
    こうじゃない こう。

    View full-size slide

  10. BLUECORE.NET
    ユーザ定義ルート(UDR)
    • 所謂Static Route Tableのようなもの。
    • ここで定義した経路は何よりも優先して採用される。
    • 関連付けをサブネットに対して行うことにより、経路制御の範囲内に収め
    ることもできるし、逆に関連付けを外すことで独立させることもできる。
    THE INTERNET
    UDR:
    ユーザがカスタマイズ
    したルート情報を定義

    View full-size slide

  11. BLUECORE.NET
    VNET内の有効ルート
    ソース 状態 アドレスのプレフィックス 次ホップの種類 次ホップの種類の 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

  12. BLUECORE.NET
    ルーティング
    • デフォルトでは以下のようになっている
    • デフォルトゲートウェイはインターネットへ向いている
    • CGNアドレスはブラックホールに向いている
    • VPNを構成している場合、その経路は動的経路として取り込まれる
    • サービスエンドポイントを構成した場合、その経路はService
    Endpointを経由するようPaaS/SaaSリソースのグローバルアドレス経
    路すべてが登録される。
    • UDRを入れる意味
    • 別途ファイアウォールアプライアンスを構成し、必ずそこを通るよう
    構成したい
    • 同じVNET内だが、特定のサブネット間の通信を禁止したい

    View full-size slide

  13. BLUECORE.NET
    PaaSにおけるネットワーク

    View full-size slide

  14. BLUECORE.NET
    PaaS/SaaSにおける主要構成要素
    • AppService :アプリケーションを動作させるコンテナリソース。サーバレスの中核。
    • WebApp :Webアプリケーションを動作させるためのコンテナリソース
    • FunctionsApp :一括処理・逐次処理に重きをおいたコンテナリソース
    • Azure Docker Repositry :AppService(Docker方式)を使用する際に連携するイメージリポジトリ
    • Application Insights :AppServiceのメトリック・ログ解析をするシステム一式
    • Azure Storage :オブジェクトストレージリソース
    • DNSゾーン :ドメインを収容するDNSゾーン
    • Traffic Manager :それ自体はDNSサービスに近い。オリジンサーバを監視して定められたルールに従い
    振り分け先のIPアドレスを回答する
    • LogAnalytics :AppService以外のログ分析はこのリソースを用いる。
     基本的にこれらのリソースはグローバルIPアドレスと特定のFQDNが割り当てられている
     グローバルIPアドレスは動的あるいはプール型であることが多い
     それぞれのリソースにIP制限機能あるいはファイアウォール機能が搭載されている
     ExpressRouteは、Microsoft Peerを使用して経路情報の提供を受ける
     最低限の可用性は提供されたサービスが多い
     ローカル冗長レベルと考えられる。グローバルリソースの場合はGeo冗長されていると考え
    られる。

    View full-size slide

  15. BLUECORE.NET
    Azure WebAppにおけるネットワーク構造
    • WebAppはIaaSとは別ネットワークで構成されていると推測される
    • Azure Gatewayのような、統合管理されたロードバランサーが存在する(フロントエンド)と呼ばれ
    る。
    • 実際のコンピューティング処理をするのはコンテナであり、バックエンドワーカーと呼ばれる。
    • ASEを使用する場合は全く動かし方が変わるので、このページの内容はあくまで
    「Free/Shared/Basic/Standard/Premium」を対象として述べるものとする。
    Azure
    Global
    Load
    Balancer
    Deployment
    Repositry
    Containers
    Storage
    • 受付IPアドレスは半固定で1つ提供される。(フロントエン
    ドに割り当て)
    • 待受ポートは予め定められており、変更は不可。
    • ワーカーから出るアドレスはいくつかのアドレス(4-10個
    ぐらい)がプールされており、それらのいずれかから発信
    される。
    • デプロイセンターにてGitを選択した場合、リビジョン監
    視を行っており、リビジョンアップを検出するとすべての
    コンテナに配信した後、コンテナを再起動する。
    • デプロイスロットを構成すると、恐らくSNIによる振り分
    けを使用して同じ環境内のコンテナインスタンスを追加す
    る構成になる
    • Inbound AddressとOutbound Addressが同じになる

    View full-size slide

  16. BLUECORE.NET
    WebApp間の通信はどうなる?
    • 意外とすんなり想定通りの通信を行った。
    • FQDNアクセスでCurlコマンドを実行
    • IPアドレス制限を加えた場合 ->403応答
    • IPアドレス制限を解除した場合 ->200応答
    Microsoft Backbone
    OutboundIP
    Inbound IP
    • App Serviceプラン及び
    リージョンに関係なくこの
    経路で通信が行われること
    を確認している。

    View full-size slide

  17. BLUECORE.NET
    Azure WebApp/Azure Storage間の通信
    • 不思議とこれだけ扱いが違う
    • 同一リージョン間に限り、想定外のネットワークで通信する。
    • これにより、Azure Storage側の通信制限機能が使えなくなる
    • 診断ログの送信ができなくなる
    • Functionsの場合、システムストレージとして指定できない(フリーズするか起動失敗する)
    • 回避策は基本的にない(なお、IsolatedならばVNETとの関連付けが容易なのでOK)
    • 異なるリージョンにストレージを置くことが強いて挙げれば唯一の回避策
    • 恐らくは、以下のような経路で通信してるのではないかと考えられる。
    • ユーザから見えないネットワークを同一
    リージョン間通信では使用しているよう
    に見える。
    • フロントを経由する場合はAzure
    StorageのIP制限は有効だが、バックエ
    ンド経由のアドレスは不明であるため、
    この指定が行えない
    ⇒結果としてAzure StorageのIP制限機
    能が使用不能となる。

    View full-size slide

  18. BLUECORE.NET
    VNET統合
    • IaaS->PaaSに対する通信を明示的に指定する方法
    • WebAppを特定のサブネットに適用する
    • WebAppに対する通信経路が関連付けたサブネット⇒サービスエンドポイン
    トになる。
    • AppGateway->WebApp通信をIaaS経路経由にすることが可能になる
    Microsoft Backbone
    Service
    Endpoint
    関連付け
    つまりはグローバル空間に出ずとも
    IaaSリソースがWebAppに接続できる

    View full-size slide

  19. BLUECORE.NET
    VPN/ExpressRouteの差
    • IaaSを使用する時はあまり差がない(性能差・品質というのはある)
    • SaaS/PaaSを使用するときにExpressRouteは威力を発揮
    • サービスエンドポイントに対する経路配信はVPNでは行われない
    • ExpressRouteの場合はMicrosoft Peerで担保される
    PaaS
    IaaS
    Express Route
    Private Peer
    Microsoft Peer
    Internet Access
    Microsoft Peer:Azure/O365に関わる経路の広報
    Private Peer :IaaSにおけるVNET経路の広報
    Internet VPN

    View full-size slide

  20. BLUECORE.NET
    Azureネットワーク構成例
    svc
    Public IP
    (DNAT)
    THE INTERNET
    Application
    Gateway
    (V1/SKU:S)
    VNET
    +Routing Table
    VPN Gateway
    VPN Gateway
    Route reflector
    Container Environment
    On-premise
    Azure DNS
    Traffic Manager
    Azure CDN
    (Premium Verizon)
    Internet Router
    IPS/Firewall
    • と言うか、実は2018年秋頃
    ~2019年春頃にかけて動か
    してた自宅の構成。
    • このインフラでブログサイ
    トを動かしていました。
    • CDNはSaaSですが、
    Edgecast(Verizon)のOEM
    サービスなので、インター
    ネットに接続する形で記載
    しています。
    Azure Global
    Network

    View full-size slide