Interact2016:Introduction of Hyper-V Network Virtualization ver.2
-
Upload
wind06106 -
Category
Technology
-
view
958 -
download
8
Transcript of 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 )
後藤 諭史( 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
セッションの目的◦ 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
Hyper-V Network Virtualization Ver.2 ってなに? HNV v2 のコンポーネントと実装 HNV v2 with SCVMM まとめ
アジェンダ
4
本セッション資料ですが、個人で準備した環境において、個人的に実施した検証/結果を基に記載しています。あくまで個人の意見/見解であり、所属する会社/組織及びマイクロソフト社とは『まったく/なにも/全然』関係がございません。所属する会社/組織/マイクロソフト社の正式な回答/見解ではない事に留意してください。また、本資料を閲覧した事により問題が生じた場合、または問題が発生しかけた場合、または生じた一切の不利益について、発表者は一切の責任を負う事はできませんのでご了承ください。
お約束ですが……
5
本セッションは Windows Server 2016 Technical Preview 5 (#14300) およびSystem Center 2016 Technical Preview 5 Virtual Machine Manager (#4.0.1381.0) での検証結果を基に記載しています。今後、仕様および機能は変更される可能性があります。
お約束ですが……その 2
6
Hyper-V Network Virtualization Ver.2 ってなに?
7
Hyper-V Network Virtualization ver.1
8
略して『 HNV v1 』 Windows Server 2012 で導入されたネットワーク仮想化技術 コア技術は Network Virtualization using Generic Routing Encapsulation (NVGRE)
詳細はこちら
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) ?
……おや?
10
NVGRE (プロトコル) がどうこうとか、
そういう話じゃないの?
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 コンピュートノード側の処理は、すべて 仮想スイッチに実装された機能拡張(エクステ
ンション)で実施
DEMO : VXLAN による Overlay Network
12
HNV v2 のコンポーネントと実装
13
構成コンポーネント
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 サービス)
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
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
今回のデモ環境
Network Controller のプロセス
17
イベントログ
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 によるネットワークの制御
構成概要図
19
キーワードは 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)) としてとして扱われる
図解するとこんな感じ
21
SLBMUX
VXLAN
NAT Address(Public IP) を /32 にて BGP 広報
Public IP 宛の Packet を NAT 設定されている VM に VXLAN にて
Forwarding
DEMO : NAT 接続と BGP Routing
22
SLBMUX のポイント
23
ダイレクトサーバーリターン◦ SLBMUX から Routing / VXLAN にて カプセル化して送信されてきた接続要求に対
し、 VM(Hyper-V) が SLBMUX を経由せずに直接返答する◦ NAT 処理は、 SLBMUX と連携して VFP Switch Extension が実施◦ Edge Router から見ると、非対称通信が行われているようにみえる
BGP による VIP 配信
分散冗長構成◦ フェイルオーバークラスターに拠らない冗長化◦ 経路制御は BGP で実施
Packet Flow : Load Balancer (NAT)
24
SLBMUX
Hyper-V Switch(VFP Switch Extension)
BGP 広報
P
P
P
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 なので、経路上の暗号化は行われない
Packet Flow : IPSec
26
SLBMUX
Hyper-V Switch(VFP Switch Extension)
BGP 広報GW
P
P
P
P
P
P
27
SLBMUX to Gateway VXLAN Packet
Packet Flow : GRE Tunnel
28
Hyper-V Switch(VFP Switch Extension)
BGP 広報GW
P
P
P
P
P
P
29
GRE Tunnel Packet
参考: NVGRE
DEMO : Gateway 接続
30
HNV v2 with SCVMM
31
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/
完成するとこんな感じ(シングル構成)
33
初期のはまりポイント Network Controller を Service Template で展開する際、 Network Controller で管理され
ない論理スイッチ作成する必要がある(のちに Network Controller 管理に変換)。その際、 Extension 構成時に必ず『 Microsoft Windows Filtering Platform 』のチェックボックスをオフにして作成すること! → 手順を怠ると、 NC を VMM に登録する際に、必ずエラーになります
34
検証中のはまりポイント 全電源断の状態から起動する際、 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
HNV v2 with SCVMM の Known issues(Limitation)
36
SLBMUX の BGP 経路広報は、 MGMT VLAN 接続 NIC から実施される→ したがって、 Edge Router は MGMT VLAN に設置する必要あり→ 以後は、 Transit VLAN から経路広報するよう変更される
BGP を有効化した L3 接続は未サポート → BGP を有効化しない場合でも、 GUI での設定は不可(要 PowerShell )
まとめ
37
まとめ
38
Network Controller は Microsoft Azure Stack のコアコンポーネントにも使われているコアテクノロジーの一つです
ネットワーク仮想化にとどまらず、ネットワークをソフトウェアでコントロールし、『サービス』としてネットワークを提供する、プライベートクラウドをより便利に活用することを可能にするテクノロジーといえます
Microsoft Azure に Inspired された HNV v2 を理解することにより、 Microsoft Azure のネットワークがなんとなく見えてくるかもしれません
とりあえず、検証を始めてみることをお勧めします
リファレンス
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
40
ご清聴、ありがとうございました。
ご不明点等ございましたら、お気軽にご質問ください。