Mais conteúdo relacionado Semelhante a Interact2016:Introduction of Hyper-V Network Virtualization ver.2 (20) Interact2016:Introduction of Hyper-V Network Virtualization ver.21. Interact × Cloud Samurai Roadshow
2016/06/25
System Center User Group Japan
後藤 諭史(Satoshi GOTO)
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
3. セッションの目的
◦ 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
4. Hyper-V Network Virtualization Ver.2 ってなに?
HNV v2 のコンポーネントと実装
HNV v2 with SCVMM
まとめ
4
6. 本セッションは Windows Server 2016 Technical Preview 5 (#14300) および
System Center 2016 Technical Preview 5 Virtual Machine Manager (#4.0.1381.0) での検証結果を基に記載しています。
今後、仕様および機能は変更される可能性があります。
6
8. 8
略して『 HNV v1 』
Windows Server 2012 で導入されたネットワーク仮想化技術
コア技術は Network Virtualization using Generic Routing Encapsulation (NVGRE)
詳細はこちら
9. 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) ?
11. 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
コンピュートノード側の処理は、すべて 仮想スイッチに実装された機能拡張(エクステ
ンション)で実施
14. 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 サービス)
15. 15
Forwarding Extension として実装
Virtual Filtering Platform は HNV v2 のコンピュートノード側の処理の一切を実施する重要
なコンポーネント
HNV v2で実装されている
各種機能の処理を担当
※ Switch Extension の詳細に関しては、以下の資料を参照のこと
Hyper-V 仮想スイッチの Tips と To Be (仮)
http://www.slideshare.net/wind06106/mvpcomcamp2015
16. 16
Management Plane
• Network Controller
• 仮想ネットワーク機能拡張 (例 VXLAN 対応や QoS など)
• Network Functions Virtualization
(分散ファイアウォール, ロードバランサー、ゲートウェイ)
• スクリプト & PowerShell
• REST API 呼び出しを行えるツール (例 Azure Stack)
• System Center Virtual Machine Manager (SCVMM)
今回のデモ環境
18. 18
Hyper-V Host: 10.4.1.5
パケットの取り扱いルールを
ポリシーとして配布
カプセル化
ロードバランス
NAT
ACLVNet Routing
Policy
ACLs
NAT
Endpoints
VFP
VM1
10.1.1.2NIC
Flow Action
TO:
10.2/16
Encap 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 Block
TO: !10/8 Allow
VNET LB NAT ACLs
Network
Controller
20. 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)) としてとして扱われる
23. 23
ダイレクトサーバーリターン
◦ SLBMUX から Routing / VXLAN にて カプセル化して送信されてきた接続要求に対し、
VM(Hyper-V) が SLBMUX を経由せずに直接返答する
◦ NAT 処理は、 SLBMUX と連携して VFP Switch Extension が実施
◦ Edge Routerから見ると、非対称通信が行われているようにみえる
BGP による VIP 配信
分散冗長構成
◦ フェイルオーバークラスターに拠らない冗長化
◦ 経路制御は BGP で実施
25. 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 なので、経路上の暗号化は行われない
32. 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/
34. Network Controller を Service Template で展開する際、 Network Controller で管理されな
い論理スイッチ作成する必要がある(のちに Network Controller 管理に変換)。
その際、 Extension 構成時に必ず『 Microsoft Windows Filtering Platform』のチェック
ボックスをオフにして作成すること!
→ 手順を怠ると、 NC を VMM に登録する際に、必ずエラーになります
34
35. 全電源断の状態から起動する際、 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
36. 36
SLBMUX の BGP 経路広報は、MGMT VLAN 接続 NIC から実施される
→ したがって、Edge Router は MGMT VLAN に設置する必要あり
→ 以後は、 Transit VLAN から経路広報するよう変更される
BGP を有効化した L3 接続は未サポート
→ BGP を有効化しない場合でも、GUI での設定は不可(要 PowerShell )
38. 38
Network Controller は Microsoft Azure Stack のコアコンポーネントにも使われている
コアテクノロジーの一つです
ネットワーク仮想化にとどまらず、ネットワークをソフトウェアでコントロールし、
『サービス』としてネットワークを提供する、プライベートクラウドをより便利に活用す
ることを可能にするテクノロジーといえます
Microsoft Azure に Inspired された HNV v2 を理解することにより、Microsoft Azure の
ネットワークがなんとなく見えてくるかもしれません
とりあえず、検証を始めてみることをお勧めします
39. 39
Zero to SDN in under five minutes
https://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 Infrastructure
https://technet.microsoft.com/en-us/library/mt590901.aspx
Step-be-step for deploying a SDNv2 using VMM TP5
https://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/
github
https://github.com/Microsoft/SDN