Azure Administrator対策「仮想ネットワークの設定と管理」
はじめに
AZ-103「Azure Administrator」対策として、Microsoft Learnなどを要約したものを記載。
ウェルノウンポート
以下のポートに関連する問題が試験で問われるケースがあるため、各ポートの用途を理解しておく必要がある。
プロトコル | ポート | 備考 |
---|---|---|
HTTP | 80 | Webアプリケーションに接続する場合などに利用 |
HTTPS | 443 | Webアプリケーションに接続する場合などに利用 |
SSH | 22 | 仮想マシンへのSSH接続時に使用 |
DNS | 53 | DNSサーバへの接続に利用 |
SMB | 445 | ファイル共有をマウントする場合に使用 |
RDP | 3389 | 仮想マシンへのリモートデスクトップ接続時に使用 |
SQL over TCP | 1443 | RDBへの接続時に利用 |
仮想ネットワークの制限事項
仮想ネットワークと異なるリージョンおよびサブスクリプションに属するリソースに、仮想ネットワークを割り当てることはできない。
例えば、仮想ネットワークと異なるリージョンに属するVMやNSGを、仮想ネットワーク上に割り当てることはできない。
ただし、異なるサブスクリプションおよびリージョンに存在する仮想ネットワークに接続することはできる。
https://docs.microsoft.com/ja-jp/azure/virtual-network/virtual-network-vnet-plan-design-arm#regions
https://docs.microsoft.com/ja-jp/azure/virtual-network/virtual-networks-faq#can-a-vnet-span-regions
仮想ネットワークピアリング(VNet ピアリング)
Azure上の異なる仮想ネットワーク間を接続させる機能。
ピアリングされた仮想ネットワークは、見かけ上1つのネットワークとして機能する。
グローバルVNetピアリング
異なるリージョンに属する仮想ネットワークの間の仮想ネットワークピアリングのこと。
主な利用条件・制限事項など
ピアリング接続の可否に関する制限事項
-
異なるリージョンの間の仮想ネットワークはピアリング可能
-
異なるサブスクリプションの間の仮想ネットワークはピアリング可能
※ ポータルによる操作の場合、条件によってピアリング設定ができないケースがある
-
Resource Managerを使用してデプロイされた2つの仮想ネットワークはピアリングできる
※ ピアリングする仮想ネットワークごとにピアリングを構成する必要がある
-
Resource Managerと、クラシックデプロイモデルを使用してデプロイされた2つの仮想ネットワークはピアリングできる
※ VPN Gatewayを使用が必要
-
IPアドレス空間が重複した仮想ネットワーク同士はピアリングできない
-
クラシックデプロイモデルを使用して作成された2つの仮想ネットワークはピアリングすることはできない
その他制限事項
-
ピアリングが機能するには2つの仮想ネットワーク間で双方向にピアリングが有効にされている必要がある
-
ピアリング後に仮想ネットワークのアドレス範囲の追加および、削除はできない
-
ピアリングは2つの仮想ネットワーク間でのみ確立される
※ 例
-
V-Net1 と V-Net2をピアリング
-
V-Net2 と V-Net3をピアリング
⇒ V-Net1とV-Net3の接続は自動的は確立されず、V-Net1とV-Net3のピアリングを別途設定する必要がある
-
-
仮想ネットワーク内のリソースは、グローバルVnetピアリングされた仮想ネットワークのベーシック内部ロードバランサーのフロントエンドIPアドレスと通信することはできない
※ スタンダードロードバランサーの場合はVNetピアリングとグローバルVnetピアリング両方に対応
-
ピアリングされた仮想ネットワークでは、リモートゲートウェイを使用でき、ゲートウェイ転送を許可できる
-
ピアリングされた仮想ネットワークの名前解決するにはAzure DNSまたはカスタムDNSを使う必要がある
-
ピアリングとゲートウェイを併用している場合、仮想ネットワーク間のトラフィックは、ゲートウェイではなく、ピアリングを介して流れる
VPNゲートウェイ
Azure上のネットワーク(VNet)と他のネットワーク(オンプレミス上のネットワーク等)をVPN(IPsec)で暗号化して接続する仮想ネットワークゲートウェイサービスの一つ。
各仮想ネットワークに作成できるVPNゲートウェイは1つだけ。
VPNゲートウェイはAzure Availability Zonesにデプロイすることが可能で、 高可用性の仮想ネットワークゲートウェイを作成することができる。
https://docs.microsoft.com/ja-jp/azure/vpn-gateway/vpn-gateway-about-vpngateways
仮想ネットワークゲートウェイ
仮想ネットワークゲートウェイは2台以上のゲートウェイVMで構成される。
ゲートウェイVMには、ルーティングテーブルが含まれ、特定のゲートウェイサービスが実行される。
仮想ネットワークゲートウェイの種類
VPN
仮想ネットワークゲートウェイの種類が “VPN ゲートウェイ” であることを示す。
ExpressRouteゲートウェイ
仮想ネットワークゲートウェイの種類が “ExpressRouteゲートウェイ” であることを示す。
ゲートウェイサブネット
ゲートウェイVMをデプロイするために作成するネットワークのこと。
ローカルネットワークゲートウェイ
接続先のオンプレミス側のゲートウェイのネットワーク情報(IPアドレス等)を定義を設定するゲートウェイ。
クラウドからオンプレミスネットワークへのネットワークトラフィックは、 このゲートウェイを介してルーティングされる。
VPN接続方式
https://techinfoofmicrosofttech.osscons.jp/index.php?VPN%20Gateway
ポイント対サイト接続 (Point to Site)
端末対拠点接続。
クライアント端末から直接、Azure上のVPNゲートウェイに対してVPN接続を行う。
各クライアント端末にはVPN接続用のクライアント証明書がインストールされている必要がある。
サイト間接続 (Site to Site)
拠点間接続。
拠点(サイト)のLAN同士をVPN接続。
AWS環境のVPN-GWとAzure環境のVPN-GWを接続、オンプレミス環境とAzureのVPN-GWを接続する場合などに利用する。
VPNゲートウェイの通信方式
ポリシーベース
暗号化する必要があるパケットのIPアドレスを静的に指定する。
通常、パケットフィルタリングを実行するファイアウォールデバイスで構築される。
従来のオンプレミスVPNデバイスとの互換性を保つ場合になどに使用し、サイト間接続で使用される。
ルートベース
ゲートウェイに接続するデバイスが多数になる場合に使用。
ワイルドカードのトラフィックセレクターを使用して、ルーティング/転送テーブルを異なるIPsecトンネルへのトラフィックに転送。
ルータのような挙動をする模様。
ポイント対サイト接続、マルチサイト接続をする場合に使用される。
ルーティング
https://docs.microsoft.com/ja-jp/azure/virtual-network/virtual-networks-udr-overview
ロードバランサー
https://docs.microsoft.com/ja-jp/azure/load-balancer/load-balancer-overview
ロードバランサーの構成
バックエンドプール
ロードバランサーにより振り分けられたトラフィックを受信するリソースのグループのこと。
正常性プローブ
バックエンドプールのVMへ死活監視を行う機能。
指定された回数、VMからの応答が取得できない場合、Load Balancerは対象のVMをバックエンドの負荷分散対象から除外する。
負荷分散規則
負荷分散対象のトラフィックの規則を指定する。
プロトコルや、ポート番号、バックエンドプールなどの設定を行う。
インバウンドNAT規則
ポートフォワーディングを行う際の設定を指定する。
ロードバランサーに送信された特定のポートでのトラフィックを、 指定した仮想マシンに転送することが可能。
負荷分散目的ではなく、パブリックIPを持たない仮想マシンに対して、SSHやRDPを行う場合に設定する。
ロードバランサーのタイプ
外部ロードバランサー(パブリックロードバランサー)
インターネットから送信されたトラフィックを振り分けるロードバランサー。
内部ロードバランサー(プライベートロードバランサー)
仮想ネットワーク内部から送信されたトラフィックを振り分けるロードバランサー。
ロードバランサーのプラン
ベーシックロードバランサー(Basic Load Balancer)
必要最小限の機能を持ったロードバランサー。
- 利用料金は無料
- 高可用性ポートが使用できない
- SLAなし
https://docs.microsoft.com/ja-jp/azure/load-balancer/concepts
スタンダードロードバランサー(Standard Load Balancer)
Basic LBより高機能のロードバランサー。
- ルール数、NATルール数、データ処理量(GB単位)に応じて課金
- 高可用性ポートの使用が可能
- SLA設定あり (99.99% : ※ 下表参照)
月間稼働率 | サービスクレジット |
---|---|
99.99%未満 | 10% |
99.9%未満 | 25% |
NVA HAポート
正常なインスタンスへの高速フェールオーバーを提供する。
HAポートの負荷分散規則は、内部スタンダードロードバランサーでのみ使用できる。
https://docs.microsoft.com/ja-jp/azure/load-balancer/load-balancer-ha-ports-overview
Azure DNS
Microsoft Azureが提供するDNSサービス。
https://docs.microsoft.com/ja-jp/azure/dns/dns-overview
https://docs.microsoft.com/ja-jp/learn/modules/host-domain-azure-dns/
DNS基本要素
ネームサーバ
ドメイン名をIPアドレスに変換するサーバ。
「権威DNSサーバ」や「コンテンツDNSサーバ」とも呼ばれる。
フルリゾルバ
ネームサーバにDNS問い合わせを行うサーバ。
「DNSキャッシュサーバ」とも呼ばれる。
レジストリ
世界中で使われている「.com」や「.net」「.jp」などのトップレベルドメインを管理する機関。
レジストラ(レジスタ)
レジストリにドメイン情報を登録する権限を持つ機関。
DNSゾーン
各DNSサーバ(ネームサーバ)が管理するドメインの範囲。
ゾーンファイル
DNSサーバが保持するDNSゾーンについての管理情報や、ドメインとIPアドレスの対応関係などを記述したファイル。
DNSレコード
ゾーンファイルに1行ごとに記載されている「ゾーンの詳細情報」のこと。
TTL: “Time to Live”
有効期限が切れる前にレコードがDNSキャッシュ内に存在する期間を示す。
Aレコード
ドメインに対するIPアドレスの情報を意味するレコード。
www.example.jp IN A 192.168.1.10
AAAAレコード
Aレコード対して、特にIPv6のアドレスを指定する際に使用するレコード。
www.example.jp IN AAAA fd00::1
PRTレコード
Aレコードとは逆に、IPアドレスに対するドメインの情報を意味するレコード。
192.168.1.10 IN PTR www.example.jp
CNAMEレコード
ドメイン名の正式名とは別の名称(エイリアス)を示すレコード。
www.alias.com IN CNAME www.example.jp
NSレコード
あるゾーンを管理するネームサーバを指定するためのレコード。 下記は、ドメイン「example.com」のネームサーバを指定したレコード例。
example.jp IN NS ns1.example.jp
SOAレコード
「ゾーンファイルの基となるデータを持つネームサーバの名前」や、 「ドメインの管理者のメールアドレス」など、ドメインの管理情報を表すレコード。
SOAはStart Of Authorityの略で、「権威の開始」という意味
@ IN SOA ns1.example.jp. postmaster.example.jp. (
2003081901 ; Serial
3600 ; Refresh
900 ; Retry
604800 ; Expire
3600 ; Negative cache TTL
)
MXレコード
対象ドメイン宛のメール送信先ホスト名を定義するレコード。
MXの後ろに記載されている数値は優先度を示しており、数値が小さいほど、優先される。
下記は、ドメイン「example.com」の送信先ホストを指定したMXレコード例。
この場合、xxx@example.com へのメールはmx1.example.comか、mx2.example.comというサーバに送信される。
IN MX 10 mx1.example.com
IN MX 20 mx2.example.com
1台の権威DNSサーバが管理する範囲を「ゾーン」と呼び、そのゾーンのDNS(名前解決)のための情報を「ゾーン情報」。
apexドメイン
APEXとは頂点を意味する。
www.example.comのようなサブドメインが含まれている形式ではなく、 example.comのようなサブドメインを含まない表記を示す。
apexに対してCNAMEレコードを設定することはできないため、 別名を付与させたい場合、Azureエイリアスレコードの設定が必要。
エイリアスレコード
Azureエイリアスレコードでは、次のAzureリソースをレコードに登録することができる。
- Traffic Managerプロファイル
- Azure Content Delivery Networkエンドポイント
- パブリックIPリソース
- フロントドアプロファイル
これにより、ロードバランサーなどのAzureリソースをレコードに登録することができる。
Azure プライベート DNS
仮想ネットワーク内のドメインのレコードを管理するDNS。
https://docs.microsoft.com/ja-jp/azure/dns/private-dns-overview
パブリックDNSゾーンを構成手順
-
サードパーティのドメイン名レジストラーを使用して、ドメインを新規登録
-
Azureに登録したドメインを管理するDNSゾーンを作成する
-
作成したDNSゾーンからネームサーバーを取得する
-
ドメインレジストラ側のNSレコードのネームサーバーの設定をAzure DNS側と一致させる
-
ネームサービスがAzure DNSネームサーバーに委任されているか確認する
nslookupでSOAレコードを表示して、委任されているかを確認する。
nslookup -type=SOA 対象ドメイン
プライベートDNSゾーンを作成する
-
AzureにプライベートDNSゾーンを作成する
-
仮想ネットワークをプライベートDNSゾーンにリンクさせる
主な利用条件・制限事項
- ゾーンファイルのインポートは現在、Azure CLIしかサポートされていない
https://docs.microsoft.com/en-us/azure/dns/dns-import-export
- VM DNS レコードの自動登録が有効になっている場合、仮想ネットワークは1つのプライベートゾーンにのみリンク可能
https://docs.microsoft.com/ja-jp/azure/dns/private-dns-overview
- 逆引きDNSは、リンクされた仮想ネットワーク内のプライベートIP空間に対してのみ機能
https://docs.microsoft.com/ja-jp/azure/dns/private-dns-overview
ネットワークセキュリティグループ(NSG)
パケットフィルタの機能を提供するサービス。
https://docs.microsoft.com/ja-jp/azure/virtual-network/security-overview
デフォルトのセキュリティルール
デフォルトでは、
-
インバウンドの通信は仮想ネットワークとAzureLoadBalancerからの通信は許可
-
アウトバウンドの通信は仮想ネットワークとインターネットへの通信が許可されている
https://docs.microsoft.com/ja-jp/azure/virtual-network/security-overview#default-security-rules
優先順位
優先順位の順にそれぞれのセキュリティルールが処理される。
数値が小さいほど、対象のルールの優先度は高くなる。
ネットワーク監視
Azure Network Watcher
Azure Network Watcherは、Azure仮想ネットワーク内のリソースの監視、診断、メトリックの表示、ログの有効化または無効化を行うサービス。
トポロジ
仮想ネットワークとそれに接続しているリソースの接続関係を図で表示する。
NSGフローログ(ネットワークセキュリティグループフローログ)
NSGを流れるIPトラフィックに関する情報をログに記録できる機能。
フローログを元に、NSGのトラフィック規則の見直しができる。
フローデータはAzure Storageアカウントに送信され、任意の視覚化ツールにエクスポートしたりできる。
https://docs.microsoft.com/en-us/azure/network-watcher/network-watcher-nsg-flow-logging-overview
IPフロー検証
パケットがNSGでブロックされるかどうかを検証する機能。
パケットがセキュリティグループにより拒否された場合、そのパケットを拒否した規則の名前が表示される。
接続モニター
接続されたネットワークの間の往復時間や、ネクストホップなどを表示が可能。
接続されたネットワーク間にある2つのVMが通信可能かどうかを調べることができる。
https://docs.microsoft.com/en-us/azure/network-watcher/connection-monitor
パケットキャプチャツール
VM間で送受信されたすべてのパケットを記録できる。
パケットキャプチャは、VMにインストールされている Network Watcherエージェント VM拡張機能を利用している。
接続のトラブルシューティングツール
VM間のTCP接続の正常性を診断する。
接続に成功すると、通信に関する次のような情報が表示される。
- 待機時間 (ミリ秒単位)
- 送信されたプローブパケットの数
- 送信先へのルート全体でのホップ数
接続に失敗した場合は、失敗原因が表示される。
VPNトラブルシューティングツール
VPN トラブルシューティングツールを使用すると、仮想ネットワークゲートウェイ接続に関する問題を診断できる。
Azure Monitor
クラウドおよびオンプレミス環境の利用統計情報を収集するサービス。
Network Performance Monitor
応答時間などネットワークパフォーマンスを監視する機能で、Azure、オンプレミスを用いたハイブリッドネットワークの監視に有効。
また、トポロジー図の⽣成などもエージェントにより⾃動的に⽣成される。
https://docs.microsoft.com/ja-jp/azure/azure-monitor/insights/network-performance-monitor
Azure Log Analytics
監視データを収集し、そのデータを中央リポジトリに格納するAzureサービス。
Azure Log Analyticsワークスペース
Azureアカウントに関するデータが格納される、Azure Monitorログのインスタンス。
Azure Network Watcherで収集したトラフィックをLog Analyticsワークスペースに保存してネットワークトラフィックの分析をすることが可能。
Azure Monitorログクエリでの検索
テーブル名または searchコマンドを指定することで検索が可能。
テーブル名指定のクエリは、クエリの範囲が対象テーブルに指定されているので、searchコマンドよりも効率的。
searchコマンドは、複数の列やテーブル全体で特定の値を検索するときに適する。
以下はsearchコマンドでエラーイベントを検索するクエリの例。
-- すべてのテーブルのすべての列から検索し、 検索結果を100件まで表示
search "error"
| take 100
-- Eventテーブルのすべての列から検索し、 検索結果を100件まで表示
search in (Event) "error"
| take 100
https://docs.microsoft.com/ja-jp/azure/azure-monitor/log-query/search-queries
データコレクション
指定したリソースのパフォーマンス(CPU、メモリ使用量)などを収集する機能。
https://docs.microsoft.com/ja-jp/azure/azure-monitor/platform/data-sources-performance-counters
主な利用条件・制限事項
- アラート通知のレート制限
- SMSでのアラート通知: 5 分ごとに 1 件以下の SMS。→1時間で12件
- 音声でのアラート通知: 5 分ごとに 1 件以下の音声通話。→1時間で12件
- 電子メールでびアラート通知: 1 時間で 100 件以下の電子メール。
https://docs.microsoft.com/ja-jp/azure/azure-monitor/platform/alerts-rate-limiting