59
Azure Network Watcher の あれやこれや シグマコンサルティング株式会社 冨田 順 (とみたすなお) @harutama

Azure Network Watcher のあれやこれや

Embed Size (px)

Citation preview

Azure Network Watcher のあれやこれや

シグマコンサルティング株式会社

冨田 順 (とみたすなお)

@harutama

http://azure.moe

2

今日の内容

• Azure Network Watcher で何ができるのか、概要を紹介する。

• Azure のネットワークを設計するに当たっての注意点を紹介する。

3

4

本セッションの内容は 2017年6月23日 時点での情報に基づいて作成されています。

2017年3月31日

5

できること

• クラウド上で作成した仮想ネットワークでのパケットの流れを追いかける。

– IPフローの確認

–次ホップ

–セキュリティグループビュー

–パケットキャプチャ

6

Network Watcher の有効化

7

「ネットワーキング」カテゴリの中

8

リージョンに対して有効化

9

今回の環境

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

おさらい その1

11

おさらい その1

12

ネットワークセキュリティグループ(NSG)

何をするもの?

• 要するにファイアーウォールの設定

– IPアドレス(CIDR形式)とポートの組み合わせに対して、通信の許可・不許可を設定。

13

NICとサブネットに設定します

14

仮想マシンネットワーク

インターフェイス(NIC)

サブネットインターネット

例えばこんな構成

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

IPフローの確認 とセキュリティグループビュー

17

何をするものか?

18

IP フロー検証機能を使用すると、仮想マシンから送受信されるパケットの許可または拒否の状況を 5 タプルの情報に基づいて検証できます。

パケットがセキュリティ グループにより拒否された場合、そのパケットを拒否した規則の名前が返されます。

管理者は、任意の送信元または送信先の IP を選択でき、IP フロー検証機能を使用してインターネットまたはオンプレミス環境との接続の問題をすばやく診断できます。

https://docs.microsoft.com/ja-jp/azure/network-watcher/network-watcher-ip-flow-verify-overview

デフォルトのNSG

19

SSHの通信は許可されてますが

20

HTTPは閉じられています

21

セキュリティグループビュー

22

セキュリティグループビュー

• 仮想マシンに割り当てられているNSGの状態を一覧で見ることができます。

–サブネットの NSG

–ネットワークインターフェースの NSG

23

おさらい その2

24

おさらい その2

25

ルートテーブル

何をするもの?

• ネットワークのルーティングを自分で設定する。

–いわゆる「User Defined Routing (UDR)」

–既定のネットワークルーティングは Azure 側で自動的に構成されている。

26

いつ使うのか? その1

27

ExpressRoute

Azure上の仮想マシン オンプレミス

VPN

インターネット

オンプレミスネットワークからインターネットにアクセスさせたい

いつ使うのか? その2

28

Azure上の仮想マシン 仮想アプライアンス

インターネット

仮想アプライアンス経由でインターネットにアクセスさせたい

参考

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

次ホップ

30

何をするものか?

31

VM からのトラフィックは、NIC に関連付けられた有効なルートをもとに、送信先に送信されます。

次ホップは、特定の仮想マシンと NIC から次ホップの種類とパケットの IP アドレスを取得します。

これにより、パケットが送信先に向かっているのか、またはトラフィックが失われているのかを判断するのに役立ちます。

https://docs.microsoft.com/ja-jp/azure/network-watcher/network-watcher-next-hop-overview

ルートテーブルの設定

32

サブネットkawaに対して

全ての通信(0.0.0.0/0)をlucky(192.168.30.4)にルーティングさせる

設定された挙動

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

インターネット

通常のVM

34

ルーティングが設定されたVM

35

パケットキャプチャー

36

何をするものか?

37

Network Watcher の可変パケット キャプチャを使用すると、仮想マシンとの間で送受信されるトラフィックを追跡するパケットキャプチャ セッションを作成できます。

パケット キャプチャは、事後と事前に、ネットワークの異常を診断するのに役立ちます。

https://docs.microsoft.com/ja-jp/azure/network-watcher/network-watcher-packet-capture-overview

パケットキャプチャーの設定

38

パケットキャプチャーの前に

• 対象の仮想マシンに対して「Network Watcher VM エージェント」がインストールされている必要があります。

–エージェントは Windows と Linux 向けが用意されています。

39

仮想マシンの拡張機能

40

注意

• 今のところ、ポータルから「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';

結果は .cap ファイルで保存

44

Wireshark などで見えます

45

ネットワークの設計にあたって

46

止めてはいけない通信

• インフラストラクチャとの通信– 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

NSG の罠

49

既定の規則の中にあるソース「AzureLoadBalancer」とは

どこを指しているのでしょう?

「AzureLoadBalancer」の意味

50

×Azure Load Balancer (L4 のロードバランサー) でロードバランスされて来るトラフィック

◯Azure Load Balancer が正常姓プローブ(サービスに対してハートビートを確認するための通信)を行う際の送信元

ドキュメント上の記述

51

参考 NSG の罠

52

ネットワーク セキュリティ グループによるネットワーク トラフィックのフィルタリングhttps://docs.microsoft.com/ja-jp/azure/virtual-network/virtual-networks-nsg

Azureの受信セキュリティ規則(タグ)でハマった話http://qiita.com/shota_umeda/items/86b600f714021c31172a

Windowsファイアーウォールの罠

53

Windowsファイアーウォールの罠

54

• Windowsファイアーウォールなどで設定をミスして RDP接続ができなくなると、大変なことになります。

個人的なオススメ

• 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/

ネットワーク設計

57

参考 ネットワーク設計

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

Let’s dream and then let’s build.- Ray Ozzie

冨田 順 (@harutama)http://twitter.com/harutama

59