今回の環境
10
lucky192.168.30.4
prairie192.168.10.4
beaver192.168.20.4
サブネットriku 192.168.10.0/24
サブネットkawa 192.168.20.0/24
サブネットboss 192.168.30.0/24
仮想ネットワーク JapariPark 192.168.0.0/16
普通のLinuxクライアント
普通のWindowsクライアント
ルーターとして構成したLinux
例えばこんな構成
15https://docs.microsoft.com/ja-jp/azure/virtual-network/virtual-networks-nsg
参考
16
ネットワーク セキュリティ グループによるネットワーク トラフィックのフィルタリングhttps://docs.microsoft.com/ja-jp/azure/virtual-network/virtual-networks-nsg
仮想マシンとネットワークリソースの関係を知るhttp://www.atmarkit.co.jp/ait/articles/1705/25/news036_2.html
何をするものか?
18
IP フロー検証機能を使用すると、仮想マシンから送受信されるパケットの許可または拒否の状況を 5 タプルの情報に基づいて検証できます。
パケットがセキュリティ グループにより拒否された場合、そのパケットを拒否した規則の名前が返されます。
管理者は、任意の送信元または送信先の IP を選択でき、IP フロー検証機能を使用してインターネットまたはオンプレミス環境との接続の問題をすばやく診断できます。
https://docs.microsoft.com/ja-jp/azure/network-watcher/network-watcher-ip-flow-verify-overview
何をするもの?
• ネットワークのルーティングを自分で設定する。
–いわゆる「User Defined Routing (UDR)」
–既定のネットワークルーティングは Azure 側で自動的に構成されている。
26
参考
29
ユーザー定義のルートと IP 転送https://docs.microsoft.com/ja-jp/azure/virtual-network/virtual-networks-udr-overviewAzure ARMでNATインスタンスを構成https://www.cns.co.jp/cri/azure/azure%E3%81%A7%E9%AB%98%E5%8F%AF%E7%94%A8%E6%80%A7nat%E3%82%A4%E3%83%B3%E3%82%B9%E3%82%BF%E3%83%B3%E3%82%B9%E3%82%92%E6%A7%8B%E6%88%90-%E3%81%9D%E3%81%AE1/Azure Resource Manager デプロイ モデルを使用した強制トンネリングの構成https://docs.microsoft.com/ja-jp/azure/vpn-gateway/vpn-gateway-forced-tunneling-rm
何をするものか?
31
VM からのトラフィックは、NIC に関連付けられた有効なルートをもとに、送信先に送信されます。
次ホップは、特定の仮想マシンと NIC から次ホップの種類とパケットの IP アドレスを取得します。
これにより、パケットが送信先に向かっているのか、またはトラフィックが失われているのかを判断するのに役立ちます。
https://docs.microsoft.com/ja-jp/azure/network-watcher/network-watcher-next-hop-overview
設定された挙動
33
lucky192.168.30.4
prairie192.168.10.4
beaver192.168.20.4
サブネットriku 192.168.10.0/24
サブネットkawa 192.168.20.0/24
サブネットboss 192.168.30.0/24
仮想ネットワーク JapariPark 192.168.0.0/16
インターネット
何をするものか?
37
Network Watcher の可変パケット キャプチャを使用すると、仮想マシンとの間で送受信されるトラフィックを追跡するパケットキャプチャ セッションを作成できます。
パケット キャプチャは、事後と事前に、ネットワークの異常を診断するのに役立ちます。
https://docs.microsoft.com/ja-jp/azure/network-watcher/network-watcher-packet-capture-overview
パケットキャプチャーの前に
• 対象の仮想マシンに対して「Network Watcher VM エージェント」がインストールされている必要があります。
–エージェントは Windows と Linux 向けが用意されています。
39
注意
• 今のところ、ポータルから「Network Watcher VM エージェント」を追加すると、高確率で失敗します。
• PowerShell などから追加しないと、ちゃんと入ってくれない感じです。
– https://www.powershellgallery.com/packages/AzureRM
41
PowerShell でのデプロイ
42
Set-AzureRmVMExtension -ResourceGroupName "myResourceGroup1" `-Location "WestUS" `-VMName "myVM1" `-Name "networkWatcherAgent" `-Publisher "Microsoft.Azure.NetworkWatcher" `-Type "NetworkWatcherAgentWindows" `-TypeHandlerVersion "1.4"
https://docs.microsoft.com/ja-jp/azure/virtual-machines/windows/extensions-nwa
Windows と Linux を自動判定
43
# 拡張機能を入れる対象のVM情報
$VMResourceGroup = '2017Interact';$VMName = 'beaver';
# 拡張機能を入れる対象のVM情報をとってくる
$VM = Get-AzureRmVM -ResourceGroupName $VMResourceGroup -Name $VMName;
# 機能拡張の情報をとってくる
$ExtensionPublisher = Get-AzureRmVmImagePublisher -Location $vm.Location | Where-Object { $_.PublisherName -eq'Microsoft.Azure.NetworkWatcher' };# VMは Linux? Windows?
if($VM.OSProfile.WindowsConfiguration -ne $NULL){$ExtensionType = 'NetworkWatcherAgentWindows';}elseif($VM.OSProfile.LinuxConfiguration -ne $NULL){$ExtensionType = 'NetworkWatcherAgentLinux';}$ExtensionImageType = Get-AzureRmVMExtensionImageType -Location $VM.Location -PublisherName$ExtensionPublisher.PublisherName | Where-Object { $_.Type -eq $ExtensionType };$ExtensionImage = Get-AzureRmVMExtensionImage -Location $VM.Location -PublisherName $ExtensionPublisher.PublisherName-Type $ExtensionType;
# VMに機能拡張を適用
Set-AzureRmVMExtension -ResourceGroupName $VM.ResourceGroupName -Location $VM.Location -VMName $VM.Name -Publisher $ExtensionImage.PublisherName -ExtensionType $ExtensionImage.Type -Name 'AzureNetworkWatcherExtension' -TypeHandlerVersion '1.4';
止めてはいけない通信
• インフラストラクチャとの通信– 168.63.129.16
• メタデータサービスと通信– 169.254.169.254
• ストレージアカウントとの通信– blob.*.store.core.windows.net
• Windowsライセンス認証サーバーとの通信– kms.core.windows.net
47
参考 止めてはいけない通信
48
Azure 仮想マシンで送受信するネットワークパケットをキャプチャするhttps://blogs.msdn.microsoft.com/ainaba-csa/2017/03/06/capture-network-packet-from-to-azure-virtual-machine/
ExpressRoute の FAQhttps://docs.microsoft.com/ja-jp/azure/expressroute/expressroute-faqs
NSG による プローブの制限を確認http://blogs.gine2.jp/kusa/archives/2591
「AzureLoadBalancer」の意味
50
×Azure Load Balancer (L4 のロードバランサー) でロードバランスされて来るトラフィック
◯Azure Load Balancer が正常姓プローブ(サービスに対してハートビートを確認するための通信)を行う際の送信元
参考 NSG の罠
52
ネットワーク セキュリティ グループによるネットワーク トラフィックのフィルタリングhttps://docs.microsoft.com/ja-jp/azure/virtual-network/virtual-networks-nsg
Azureの受信セキュリティ規則(タグ)でハマった話http://qiita.com/shota_umeda/items/86b600f714021c31172a
個人的なオススメ
• Windows ファイアーウォールで細かい設定をしないようにしましょう。
–ファイアーウォールは NSG に任せましょう。管理性も良くなります。
–「Windows ファイアーウォールを無効にしろ」とは言ってませんし思ってません。
55
参考 Windows ファイアーウォールの罠
56
Azure 仮想マシンへのリモート デスクトップ接続に関するトラブルシューティングhttps://docs.microsoft.com/ja-jp/azure/virtual-machines/windows/troubleshoot-rdp-connection
「Azure仮想マシンにログオンできない!」という悲劇からの生還https://blogs.technet.microsoft.com/ksasaki/2014/03/21/azure1/
参考 ネットワーク設計
58
Azure Virtual Data Centerで学ぶ 企業向けAzureネットワーク設計https://www.slideshare.net/ToruMakabe/azure-virtual-data-center-azure
Microsoft Azure Virtual Data Centerhttps://docs.microsoft.com/en-us/azure/networking/networking-virtual-datacenter