Interact2016:Introduction of Hyper-V Network Virtualization ver.2

40
Introduction of Hyper-V Network Virtualization ver.2 Interact × Cloud Samurai Roadshow 2016/06/25 System Center User Group Japan 後後 後後Satoshi GOTO

Transcript of Interact2016:Introduction of Hyper-V Network Virtualization ver.2

Page 1: Interact2016:Introduction of Hyper-V Network Virtualization ver.2

Introduction ofHyper-V Network Virtualization ver.2

Interact × Cloud Samurai Roadshow 2016/06/25

System Center User Group Japan後藤 諭史( Satoshi GOTO )

Page 2: Interact2016:Introduction of Hyper-V Network Virtualization ver.2

後藤 諭史( Satoshi GOTO ) 某 ISP 所属。 仮想化製品が主な専門分野です。 Microsoft MVP - Cloud and Datacenter Management

( Jul.2012 - Jun.2016 ) Twitter と Blog はこちら

◦ Twitter : @wind06106 / Blog : Tech Notes ( http://www.dob1.info :更新止まってます)

自己紹介

2

Page 3: Interact2016:Introduction of Hyper-V Network Virtualization ver.2

セッションの目的◦ Windows Server 2016 で Software Defined Network を実現するネット

ワーク仮想化技術『 Hyper-V Network Virtualization ver.2 』と、必須コンポーネントである『 Network Controller 』の機能をご理解いただく。

◦ 『 Hyper-V Network Virtualization ver.2 』を実装するための必須コンポーネントとその機能をご理解いただく。

セッションのゴール◦ Windows Server 2016 で実現される Software Defined Network がどのよ

うな機能を提供するかを説明できる。

本日の目的とゴール

3

Page 4: Interact2016:Introduction of Hyper-V Network Virtualization ver.2

Hyper-V Network Virtualization Ver.2 ってなに? HNV v2 のコンポーネントと実装 HNV v2 with SCVMM まとめ

アジェンダ

4

Page 5: Interact2016:Introduction of Hyper-V Network Virtualization ver.2

本セッション資料ですが、個人で準備した環境において、個人的に実施した検証/結果を基に記載しています。あくまで個人の意見/見解であり、所属する会社/組織及びマイクロソフト社とは『まったく/なにも/全然』関係がございません。所属する会社/組織/マイクロソフト社の正式な回答/見解ではない事に留意してください。また、本資料を閲覧した事により問題が生じた場合、または問題が発生しかけた場合、または生じた一切の不利益について、発表者は一切の責任を負う事はできませんのでご了承ください。

お約束ですが……

5

Page 6: Interact2016:Introduction of Hyper-V Network Virtualization ver.2

本セッションは Windows Server 2016 Technical Preview 5 (#14300) およびSystem Center 2016 Technical Preview 5 Virtual Machine Manager (#4.0.1381.0) での検証結果を基に記載しています。今後、仕様および機能は変更される可能性があります。

お約束ですが……その 2

6

Page 7: Interact2016:Introduction of Hyper-V Network Virtualization ver.2

Hyper-V Network Virtualization Ver.2 ってなに?

7

Page 8: Interact2016:Introduction of Hyper-V Network Virtualization ver.2

Hyper-V Network Virtualization ver.1

8

略して『 HNV v1 』 Windows Server 2012 で導入されたネットワーク仮想化技術 コア技術は Network Virtualization using Generic Routing Encapsulation (NVGRE)

詳細はこちら

Page 9: Interact2016:Introduction of Hyper-V Network Virtualization ver.2

HNV v1 の Pain Point (個人的見解)

9

ネットワーク仮想化を行う上で重要な『 コントロールプレーン 』の存在が不明瞭◦ PowerShell による運用の場合は、コントロールプレーン不在のため、全てが手動管理◦ System Center 2012 R2 Virtual Machine Manager (SCVMM) を利用した場合には、

コントロールプレーンを運用管理ツールである SCVMM が担うことになり、ある意味SPoF となってしまった

→ SCVMM の冗長化が非常に重要なキーワード

Windows Server Gateway(WSG) がパフォーマンス上ボトルネックに◦ Overlay Network(Tenant Network) と 外部 Network との唯一の接続点が WSG◦ 外部 Network との通信のすべてが WSG を通過するため、ボトルネックになることが

容易に想像→ データプレーン上 SPoF になりうる可能性→ これもまた冗長化が非常に重要なキーワード

◦ 3rd Party 製の Gateway も登場したけれど……→ 日本国内では 1 機種 (F5 BIG-IP) ?

Page 10: Interact2016:Introduction of Hyper-V Network Virtualization ver.2

……おや?

10

NVGRE (プロトコル) がどうこうとか、

そういう話じゃないの?

Page 11: Interact2016:Introduction of Hyper-V Network Virtualization ver.2

Hyper-V Network Virtualization ver.2

11

略して『 HNV v2 』 Windows Server 2016 で導入される Cloud-inspired されたネットワーク仮想化技術

→ 但し、 Windows Server 2016 においても HNV v1 は使用可能 Network Controller をはじめ、分散処理を前提としたコアコンポーネント

→ コアコンポーネントは冗長構成を前提 データプレーンは HNV v1 から引き続き、 Edge Overlay Network Architecture を採用 Overlay Network Protocol として、 NVGRE と VXLAN のどちらかを選択可能

→ デフォルトは VXLAN コンピュートノード側の処理は、すべて 仮想スイッチに実装された機能拡張(エクステ

ンション)で実施

Page 12: Interact2016:Introduction of Hyper-V Network Virtualization ver.2

DEMO : VXLAN による Overlay Network

12

Page 13: Interact2016:Introduction of Hyper-V Network Virtualization ver.2

HNV v2 のコンポーネントと実装

13

Page 14: Interact2016:Introduction of Hyper-V Network Virtualization ver.2

構成コンポーネント

14

Network Controller◦ HNV v2 におけるコントロールプレーン◦ サービスファブリックライクなクラスター構成

Software Load Balancer MUltipleXer (SLBMUX)◦ Tenant VM に対する Source NAT 、 LB 機能を提供◦ Windows Server のサービスとして実装

Gateway◦ Tenant Network と 外部 Network の接続を提供◦ 提供される接続方式は IPSec / GRE Tunnel / L3 Routing

Hyper-V Host コンポーネント◦ Windows Azure VFP Switch Extension◦ NC Host Agent ( Windows サービス)◦ SLB Host Agent ( Windows サービス)

Page 15: Interact2016:Introduction of Hyper-V Network Virtualization ver.2

Windows Azure VFP Switch Extension

15

Forwarding Extension として実装 Virtual Filtering Platform は HNV v2 のコンピュートノード側の処理の一切を実施する重

要なコンポーネント

HNV v2 で実装されている各種機能の処理を担当

※ Switch Extension の詳細に関しては、以下の資料を参照のこと  Hyper-V 仮想スイッチの Tips と To Be (仮)   http://www.slideshare.net/wind06106/mvpcomcamp2015

Page 16: Interact2016:Introduction of Hyper-V Network Virtualization ver.2

HNV v2 Stack

16

Management Plane

Control Plane

Data Plane

• Network Controller

• 仮想ネットワーク機能拡張 (例 VXLAN 対応や QoS など )

• Network Functions Virtualization( 分散ファイアウォール , ロードバランサー、ゲートウェイ )

• スクリプト & PowerShell• REST API 呼び出しを行えるツール (例 Azure Stack)• System Center Virtual Machine Manager (SCVMM)

Northbound API

Southbound API

今回のデモ環境

Page 17: Interact2016:Introduction of Hyper-V Network Virtualization ver.2

Network Controller のプロセス

17

イベントログ

Page 18: Interact2016:Introduction of Hyper-V Network Virtualization ver.2

18

Hyper-V Host: 10.4.1.5

パケットの取り扱いルールをポリシーとして配布

カプセル化 ロードバランス NAT ACLVNet Routing

Policy ACLsNAT

Endpoints

VFPVM1

10.1.1.2NIC

Flow ActionTO:

10.2/16Encap to GW

TO: 10.1.1.5

Encap to 10.5.1.7

TO: !10/8 NAT out of VNET

Flow Action

TO: 79.3.1.2

DNAT to 10.1.1.2

TO: !10/8 SNAT to 79.3.1.2

Flow Action

TO: 10.1.1/24

Allow

10.4/16 BlockTO: !10/8 AllowVNET LB NAT ACLs

NetworkController

Network Controller によるネットワークの制御

Page 19: Interact2016:Introduction of Hyper-V Network Virtualization ver.2

構成概要図

19

Page 20: Interact2016:Introduction of Hyper-V Network Virtualization ver.2

キーワードは BGP

20

LB VIP 、 Source NAT Address 、 IPSec Gateway の 接続先 Address 等々、Tenant VM が外部 Network と接続するために使用される Address (Public IP) は、全て Routing Protocol である BGP (Border Gateway Protocol) で配信

経路配信は SLBMUX / Gateway が実施→ コアコンポーネントは冗長構成を前提

Public IP Address は経路情報として配信され、実体 (MAC Address) を持たない Address(Virtual IP (VIP)) としてとして扱われる

Page 21: Interact2016:Introduction of Hyper-V Network Virtualization ver.2

図解するとこんな感じ

21

SLBMUX

VXLAN

NAT Address(Public IP) を /32 にて BGP 広報

Public IP 宛の Packet を NAT 設定されている VM に VXLAN にて

Forwarding

Page 22: Interact2016:Introduction of Hyper-V Network Virtualization ver.2

DEMO : NAT 接続と BGP Routing

22

Page 23: Interact2016:Introduction of Hyper-V Network Virtualization ver.2

SLBMUX のポイント

23

ダイレクトサーバーリターン◦ SLBMUX から Routing / VXLAN にて カプセル化して送信されてきた接続要求に対

し、 VM(Hyper-V) が SLBMUX を経由せずに直接返答する◦ NAT 処理は、 SLBMUX と連携して VFP Switch Extension が実施◦ Edge Router から見ると、非対称通信が行われているようにみえる

BGP による VIP 配信

分散冗長構成◦ フェイルオーバークラスターに拠らない冗長化◦ 経路制御は BGP で実施

Page 24: Interact2016:Introduction of Hyper-V Network Virtualization ver.2

Packet Flow : Load Balancer (NAT)

24

SLBMUX

Hyper-V Switch(VFP Switch Extension)

BGP 広報

P

P

P

Page 25: Interact2016:Introduction of Hyper-V Network Virtualization ver.2

Gateway のポイント

25

接続形態は以下の 3 つ◦ IPSec 接続◦ GRE Tunnel 接続◦ Layer 3 接続

IPSec 接続は SLBMUX と協同動作◦ IPSec Gateway Address は VIP として SLBMUX にて BGP 経路広報実施◦ SLBMUX と Gateway 間は VXLAN による Overlay 通信◦ Gateway からはダイレクトサーバーリターン

GRE Tunnel は Gateway のみで完結◦ NVGRE ではなく、純粋な GRE Tunnel◦ GRE Tunnel なので、経路上の暗号化は行われない

Page 26: Interact2016:Introduction of Hyper-V Network Virtualization ver.2

Packet Flow : IPSec

26

SLBMUX

Hyper-V Switch(VFP Switch Extension)

BGP 広報GW

P

P

P

P

P

P

Page 27: Interact2016:Introduction of Hyper-V Network Virtualization ver.2

27

SLBMUX to Gateway VXLAN Packet

Page 28: Interact2016:Introduction of Hyper-V Network Virtualization ver.2

Packet Flow : GRE Tunnel

28

Hyper-V Switch(VFP Switch Extension)

BGP 広報GW

P

P

P

P

P

P

Page 29: Interact2016:Introduction of Hyper-V Network Virtualization ver.2

29

GRE Tunnel Packet

参考: NVGRE

Page 30: Interact2016:Introduction of Hyper-V Network Virtualization ver.2

DEMO : Gateway 接続

30

Page 31: Interact2016:Introduction of Hyper-V Network Virtualization ver.2

HNV v2 with SCVMM

31

Page 32: Interact2016:Introduction of Hyper-V Network Virtualization ver.2

SCVMM 展開時のポイント

32

主要コンポーネントは、全て Service Template にて展開◦ Service Template を使用しない展開はサポートされない

Service Template は github からダウンロード◦ https://github.com/Microsoft/SDN

Windows Server 2016 TP5 には、必ず最新の Windows Update を適用すること

SCVMM 2016 TP5 には、必ず CU2 を適用する◦ https://support.microsoft.com/en-us/kb/3160164

Step-by-Step Guide のとおりに展開しても、うまく展開できないときがあるあきらめたら、そこで試合 s(ry◦ https://blogs.technet.microsoft.com/larryexchange/2016/05/30/step-be-step-for-deploying-a-sdnv2-using-vmm-tp5-part-1/

Page 33: Interact2016:Introduction of Hyper-V Network Virtualization ver.2

完成するとこんな感じ(シングル構成)

33

Page 34: Interact2016:Introduction of Hyper-V Network Virtualization ver.2

初期のはまりポイント Network Controller を Service Template で展開する際、 Network Controller で管理され

ない論理スイッチ作成する必要がある(のちに Network Controller 管理に変換)。その際、 Extension 構成時に必ず『 Microsoft Windows Filtering Platform 』のチェックボックスをオフにして作成すること!   → 手順を怠ると、 NC を VMM に登録する際に、必ずエラーになります

34

Page 35: Interact2016:Introduction of Hyper-V Network Virtualization ver.2

検証中のはまりポイント 全電源断の状態から起動する際、 Network Controller を起動が完全に完了してから、各

コンポーネントを起動すること◦ 手順を怠ると、 動作が不安定になったり……◦ Network Controller の完全起動(プロセスが落ち着くまで)は、手元の検証環境だと、

約 7 分かかっています  → NC VM スペック: vCPU 4core(X3430)/4GB MEM/SSD)

◦ もしかすると、完全起動後に Network Controller に接続している Hyper-V ホストが起動していた場合には、 NCHostAgent を再起動したほうがいいかも

◦ 各コンポーネントを起動していき、逐次ログを確認する  → NC にて 『 netstat 』コマンドを実行し、 通信状況を確認するのも有効

◦ Network Controller 以外を色々再起動しているうちに動き始めるので、怪しい動きをしていたら、 NC VM 以外を再起動してみるのも手

◦ Windows Update がかかったら、 全電源断状態から起動しましょう……◦ どうやっても動かない時は、その部分だけ作り直す勇気も必要

35

Page 36: Interact2016:Introduction of Hyper-V Network Virtualization ver.2

HNV v2 with SCVMM の Known issues(Limitation)

36

SLBMUX の BGP 経路広報は、 MGMT VLAN 接続 NIC から実施される→ したがって、 Edge Router は MGMT VLAN に設置する必要あり→ 以後は、 Transit VLAN から経路広報するよう変更される

BGP を有効化した L3 接続は未サポート → BGP を有効化しない場合でも、 GUI での設定は不可(要 PowerShell )

Page 37: Interact2016:Introduction of Hyper-V Network Virtualization ver.2

まとめ

37

Page 38: Interact2016:Introduction of Hyper-V Network Virtualization ver.2

まとめ

38

Network Controller は Microsoft Azure Stack のコアコンポーネントにも使われているコアテクノロジーの一つです

ネットワーク仮想化にとどまらず、ネットワークをソフトウェアでコントロールし、『サービス』としてネットワークを提供する、プライベートクラウドをより便利に活用することを可能にするテクノロジーといえます

Microsoft Azure に Inspired された HNV v2 を理解することにより、 Microsoft Azure のネットワークがなんとなく見えてくるかもしれません

とりあえず、検証を始めてみることをお勧めします

Page 39: Interact2016:Introduction of Hyper-V Network Virtualization ver.2

リファレンス

39

Zero to SDN in under five minuteshttps://blogs.technet.microsoft.com/windowsserver/2016/02/04/zero-to-sdn-in-under-five-minutes/

Software Defined Networking (SDN)https://technet.microsoft.com/en-us/library/mt403307.aspx

Deploy a Software Defined Network Infrastructurehttps://technet.microsoft.com/en-us/library/mt590901.aspx

Step-be-step for deploying a SDNv2 using VMM TP5https://blogs.technet.microsoft.com/larryexchange/2016/05/30/step-be-step-for-deploying-a-sdnv2-using-vmm-tp5-part-1/https://blogs.technet.microsoft.com/larryexchange/2016/05/30/step-be-step-for-deploying-a-sdnv2-using-vmm-tp5-part-2/https://blogs.technet.microsoft.com/larryexchange/2016/05/31/step-be-step-for-deploying-a-sdnv2-using-vmm-tp5-part-3/https://blogs.technet.microsoft.com/larryexchange/2016/06/01/step-be-step-for-deploying-a-sdnv2-using-vmm-tp5-part-4/

githubhttps://github.com/Microsoft/SDN

Page 40: Interact2016:Introduction of Hyper-V Network Virtualization ver.2

40

ご清聴、ありがとうございました。

ご不明点等ございましたら、お気軽にご質問ください。