[Cloud101]#6 手抜きのVMware仮想NW・初歩〜NSX！

#0.AGENDA
0.前置き
1.基本を思い出そう(MAC, IP, ARP)
2.VMwareのvNIC, vSwitch(vSS)
3.VLANってなんだぁ？
4.VMwareのvSwitch(vDS)
5.VXLANってなんだぁ？
6.VMwareのVXLAN
7.やっと本題のNSX！
8.補足
9.参考


#0.前置き
今回はVMwareの仮想ネットワークについて見てみます。ただし僕がネットワーク苦手なのと、説明に必要な前提知識が多量なので・・・まったく自信がありません(^^;)
VMware Networkに詳しい方の突っ込みお待ちしています m(_ _)m

#1.基本を思い出そう(パケット構造, MAC, IP, ARP)

##(1)パケット構造
OSI参照モデル(7層)とかTCP/IP階層モデル(4層）ってのがありますが、この「層(レイヤー)」ってなんなんででしょうね？
![01.png](http://qiita-image-store.s3.amazonaws.com/0/79389/e341c697-d8ad-cc9c-5a3f-67ef841d897f.png)
(参考：https://thinkit.co.jp/story/2015/04/30/5800)

僕は「下の層のぐちゃぐちゃを隠して、同じ層の間での通信の決まり(Protocol)を決める単位」って思ってます。
一般的なEthernet上のTCP/IPだとこんな感じになります。
![02.gif](http://qiita-image-store.s3.amazonaws.com/0/79389/1bbae5fd-fcd5-88b0-4f68-3d0e717b4b1c.gif)
たとえば、IPの層はEthernetの層のことを考えなくて良くて、IPヘッダ内にあるIPアドレスで宛先が識別できます。

Ethernetパケットのイメージ
![03.jpg](http://qiita-image-store.s3.amazonaws.com/0/79389/647341c4-a28e-aaee-dd22-5f28245801e0.jpeg)

IPパケットのイメージ
![04.jpg](http://qiita-image-store.s3.amazonaws.com/0/79389/26df9c1d-4ac1-69e6-82cd-d6e7f506d939.jpeg)

TCPパケットのイメージ
![05.jpg](http://qiita-image-store.s3.amazonaws.com/0/79389/151cb901-245e-56a8-a609-246e92aefc15.jpeg)

ここで見て欲しいののは、TCPヘッダに「送信元ポート番号」「宛先ポート番号」があるってこと。
はい、TCP/IPアプリケーション使うときに「ポート番号」って使いますよね？ (ex.HTTPは80)あの「ポート番号」ってのがこれです。
TCP/IPのセッションは、"送信元IPアドレス・ポート" と "宛先元IPアドレス・ポート"の組み合わせで識別されます。（TCP/IP階層モデルは、きちっとした階層モデルになってないことも分かります^^;)

なお、どの層にも「ヘッダ」「アドレス」「ブロードキャスト」など似たような単語が出てくるのですが、どの層の話なのかを意識しないと訳がわからなくなります :smile: 

##(2)ユニキャスト・ブロードキャスト・マルチキャスト

http://www.infraexpert.com/study/networking8.html
・Ethernet層にも、IP層にも「ブロードキャスト」があります。
・ブロードキャストはブロードキャストする範囲(ブロードキャストドメイン)に注意しましょう。

##(3)MACからARPまで
これみんなで見てみましょう！！ :sweat_smile: 
http://ascii.jp/elem/000/000/417/417556/

OUI(MACアドレスの最初）からベンダ調べるのは以下なんかで出来ます。自分のPCや今までのHandsonで作った仮想マシンのOUIを入れてみてください。
http://www.macvendors.com/

・もちょっと簡単なIP説明
http://www.infraexpert.com/study/tcpip.html
http://www.infraexpert.com/study/tcpip1.html

・もちょっと簡単なARP説明
http://www.infraexpert.com/study/tcpip2.html
http://www.infraexpert.com/study/tcpip3.html

##(4)物理機器のイメージ
以下を口頭でざっくり説明します。資料は・・・間に合いませんでした。勘弁して下さい :scream: 
- L2, L3って何？
- Ethernetセグメント：  L2-SW、Ethternetブロードキャスト
- NICの動作：　　　　　MACとEthernetブロードキャスト
- IPセグメント：	    L3-SW、IPブロードキャスト
- Routerの動作：


##(5)ICMPやらTCP/IPやら各自復習してね
・IPの3way hand-shakeやらTCP/UDPポートやら重要な概念が盛りだくさんです（が、全く説明する自信がありません :sweat_smile: ）。

**で、ここまででやっと前提説明完了です。
次から本題のVMwareのネットワーク説明です！！**

#2.VMwareのvNIC, vSwitch(vSS)

##(1)ちょっと脱線
**この冊子持ってますか？**
![06.png](http://qiita-image-store.s3.amazonaws.com/0/79389/706f6031-2862-1d87-d783-ba9d3145bd36.png)
私の投稿記事よりよっぽどわかり易いので、もってない人は登録＆ダウンロードして読ましょう！

登録＆ダウンロード先：http://vmware-juku.jp/resource/form_107/

##(2)vmnic, vNIC, vSwitch

「vSphereの基礎の基礎」のp8の図
![07.JPG](http://qiita-image-store.s3.amazonaws.com/0/79389/2028af0e-61f5-fd90-0f14-b125005985aa.jpeg)


#3.VLANってなんだぁ？

物理的な接続形態とは独立して、仮想的なLANセグメントを作る技術です。
http://www.infraexpert.com/study/vlanz1.html

![52.JPG](http://qiita-image-store.s3.amazonaws.com/0/79389/57478bf3-9505-9eca-088d-311220bc6f26.jpeg)


【連載】今さら聞けない「VLANの基本」などで、ポートVLANとタグVLANの違いを調べて下さい。
http://news.mynavi.jp/series/vlan/menu.html
http://www.itbook.info/network/vlan3.html

![53.JPG](http://qiita-image-store.s3.amazonaws.com/0/79389/f9122063-074b-36c4-cc8d-e042c6cac009.jpeg)

VLAN Idは12ビットで表される0～4095の範囲。
ただし、0と4095は予約されている値のため、実際に利用できる範囲は、1～4094までとなります。

**=>VLAN ID 4000個の壁ってやつ**

#4.VMwareのvSwitch(vSSとvDS)

「vSphereの基礎の基礎」のp9の図
![09.JPG](http://qiita-image-store.s3.amazonaws.com/0/79389/e4b7a877-90d5-ce57-fe33-2d3a98cd62e3.jpeg)


単一のホスト上に構成される標準スイッチ（vSS）に対し、分散スイッチ（vDS）は、複数のESXi ホストにまたがって構成されます。

「vSphereの基礎の基礎」のp27の図
![08.JPG](http://qiita-image-store.s3.amazonaws.com/0/79389/97851c86-32f5-dcee-95c3-a47ce600d7d9.jpeg)

#5.VXLANってなんだぁ？

##(1)基本
http://www.infraexpert.com/study/virtual3.html
![50.JPG](http://qiita-image-store.s3.amazonaws.com/0/79389/50dca7fa-a8f1-18b0-12dd-32a64db0aaf5.jpeg)


##(2)VTEPとは
・一般にVXLANパケットを送受信する末端のスイッチを「VTEP」と呼びます
・VXLAN Tunnel Endpoint
https://www.school.ctc-g.co.jp/columns/nakai/nakai64.html

![51.JPG](http://qiita-image-store.s3.amazonaws.com/0/79389/f0c0cb79-adc3-3a03-e785-b2d811ba5e89.jpeg)

##(3)もう一度「VXLANとは」
http://www.atmarkit.co.jp/news/201109/01/vxlan.html
http://kiririmode.hatenablog.jp/entry/20150603/1433263336

VTEP は、オリジナルの Ethernet フレームにVXLAN のヘッダを付与し、さらにそれを UDP のパケットのペイロードにします。このようにして、元々の Ethernet フレームが、UDP パケットとしてカプセル化され、L3 の壁を越えるわけです。L3 の壁を越えた UDP パケットは、越えた先にある VTEP によってカプセル化を解かれ、オリジナルの Ethernet フレームとして転送されるということになります。VTEP の先にいるサーバは、VXLAN が使われていることなど知らず、通常通り Ethernet フレームを送受していれば問題ないというところが良いですね。

・ブロードキャストはIPマルチキャストとして、すべての該当VTEPを経由し、同一VNIの送信先仮想マシンに対して送出される
・でもマルチキャスト使わないこともできる
http://blogs.cisco.com/perspectives/a-summary-of-cisco-vxlan-control-planes-multicast-unicast-mp-bgp-evpn-2

#6.VMwareのVXLAN

・VXLAN の実装のためには分散スイッチ（vDS） の他に、vCNS（vCloud Networking and Security）もしくは、NSX for vSphere が必要となります。

##(1) vCNS(vCloud Networking and Security Manager)

http://blogs.vmware.com/jp-cim/2013/06/vxlan_intro.html

VXLAN は一言で言うと、レイヤ 2 (L2) を維持したまま、物理インフラをまたぐ通信に IP が使える、オーバーレイ ネットワークです。
![10.JPG](http://qiita-image-store.s3.amazonaws.com/0/79389/31b70887-e801-891e-051b-56a64ca7df56.jpeg)

・3つのコンポーネント
- VMware vCloud Networking and Security Manager (vCNS)
- VMware vSphere Distributed Switch (分散スイッチ)
- Virtual Tunnel End Point
![11.png](http://qiita-image-store.s3.amazonaws.com/0/79389/181f28ac-cc5a-2fd5-1678-51de4933f6e9.png)

・vCNSとは
- VMware vCloud Networking and Security Manager は vCloud Networking and Security 製品の集中型ネットワーク管理コンポーネントです。
- VMware vCloud Networking and Security Manager はまた、vShield Manager とも呼ばれることがあります。

・vCNSの機能
http://blogs.vmware.com/jp-cim/2014/03/vsphere-basic-network03.html

##(2)vCNSはEOSでNSXへ

https://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2055410

vCloud Networking and Security 5.5 is only available as part of VMware vCloud Suite 5.5 and is not available as a standalone product.
VMware provides extended support for vCloud Networking and Security 5.5 with support available for 3 years from general availability. 
... support for vCloud Networking and Security 5.5 until their current contract expires or until Q3, 2016, whichever is earlier.

ぐぇ！

##(3)NSXってなに？

・Nicira買収のお話し・・・興味がある方はググってみてください（非常に面白いのですが、戻って来れなくなるので割愛 :sweat_smile: ）

##(4)2つのNSX
VMware NSX for vSphere （NSX-V）：これまでの vCloud Networking and Security（vCNS）が進化したもの。
VMware NSX for Multi-Hypervisor （NSX-MH）：元 NVP（旧 Nicira）。

https://communities.vmware.com/people/gowatana/blog/2014/12/20/nsx-%E3%81%AE-nsx-v-%E3%81%A8-nsx-mh-%E3%81%AE%E9%81%95%E3%81%84%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6

・VMware NSX for vSphere（NSX-V）
- これまでの vCloud Networking and Security（vCNS）が進化したもの。
- 対応するハイパーバイザは ESXi だけ。
- vCenter インベントリのオブジェクトを指定した分散ファイアウォール制御 ができたりするのはこちら。
- 使用する仮想スイッチは、vDS を機能拡張したようなもの。

・VMware NSX for Multi-Hypervisor（NSX-MH）
- 元 NVP（旧 Nicira）。
- 対応するハイパーバイザは ESXi のほかに KVM、Xen ...
 （ただしESXi を使用する場合も、VIB が NSX-V とは異なる）
- OpenStack（Neutron）連携したりするのはこちら。
- 使用する仮想スイッチは、Open vSwitch ベースのもの（らしい）。

#7.やっと本題のNSX！

##(1)NSX for vSphere

ネットワーク仮想化と VMware NSX は統合により視認性を大きく改善する
http://blogs.vmware.com/jp-cim/2014/04/vmware-nsx-visibility.html

http://blogs.vmware.com/jp-cim/2013/10/sdn3.html

vCNS 5.1での VXLAN 実装は、仮想マシンがどの ESXi 上に存在しているか把握しておらずマルチキャストに依存していたということになります。
この点を改善し、どの ESXi ホスト上にどんな仮想マシンが所属しているかを、NSXコントローラーで、一元管理する実装にしました。
NSXコントローラーは、各 ESXi ホストへこの情報を伝達することで通信相手の ESXi ホストが特定でき、マルチキャストに頼らない VXLAN 実装が可能となりました。

下図は、VMware NSX for vSphere のコンポーネントを表しています。
赤枠のNSXコントローラは仮想マシンとして提供され、他にもMACアドレス、ARP、VTEP の情報を保持、伝達する役割を担います。
![11.png](http://qiita-image-store.s3.amazonaws.com/0/79389/70da74f1-83ec-8317-8844-bbd14070f2e1.png)

##(2)NSXで出来ること
・ネットワークサービス
https://thinkit.co.jp/article/3448

VMware NSXは、従来までのvSphereの仮想スイッチに対して「論理スイッチ」、「分散ルータ」、「分散ファイアウォール」の3つの機能を追加することで、スケールアウト（分散）型L3スイッチとして動作するNSX vSwitchを提供します。

NSX Edge Service Gatewayは、仮想マシンでファイアウォール・ロードバランサとして動作する仮想アプライアンスとして提供されます。

![13.JPG](http://qiita-image-store.s3.amazonaws.com/0/79389/d4c92988-642f-10f0-cca2-3f949e7c6f91.jpeg)

・セキュリティ系サービスも提供（市場的にはこっちの方が人気かもね）
https://thinkit.co.jp/article/3469

分散ファイアウォール、IDベースのファイアウォールルール、Activity Monitoringなどが提供されます。
「NSX=マイクロセグメンテーション」って言われ方する場合もあります。

IIJさんはこんなアピールもされているようです。
http://www.iij.ad.jp/GIO/bp/nw011.html
![54.JPG](http://qiita-image-store.s3.amazonaws.com/0/79389/41a3a052-a17f-7f16-4d12-581d93d87d6e.jpeg)

![55.JPG](https://qiita-image-store.s3.amazonaws.com/0/79389/b7aeb213-fa2f-71ee-68bc-9bfbb311111b.jpeg)


#8.補足

NSX入門のHOLがありますので、以下の最後に書いておきました。
「[Cloud101]#5-2 (補足)vCloud Ditectorってなんだ？」
http://qiita.com/nagahisa/items/12266a502e5e86ca5874

#9.参考
vSphere Networkの参考になるリンク集です。

・押さえておきたいvSphere の基本〜ネットワーク編 〜

	第1回：ホスト単位でネットワークを構築する ?標準スイッチ編?
	http://blogs.vmware.com/jp-cim/2014/02/vsphere-basic-network01.html

	第2回：スケーラブルで高機能なネットワークを構築する ?分散スイッチ編?
	http://blogs.vmware.com/jp-cim/2014/02/vsphere-basic-network02.html

	第3回：仮想化環境でL3-L7 サービスを提供する ?vCloud Networking and Security?
	http://blogs.vmware.com/jp-cim/2014/02/vsphere-basic-network03.html




ネットワーク仮想化をネットワークの基本から理解する　(NSX for vSphere )


	第1回：理解するために必要なことを整理する
	http://blogs.vmware.com/jp-cim/2015/03/nwv01.html
	第2回：論理スイッチ（VXLAN） ?Layer2 の世界
	https://blogs.vmware.com/jp-cim/2015/04/nwv02.html
	第4回：分散ルーティング ? Layer3 の世界
	http://blogs.vmware.com/jp-cim/2015/06/nwv03.html
	第4回：分散ファイアウォール -Layer4 の世界
	http://blogs.vmware.com/jp-cim/2015/06/nwv04.html


・ネットワーク仮想化 設計ガイドのレビュー 

	その1:
	http://blogs.vmware.com/jp-cim/2013/06/sdn.html
	その2:
	http://blogs.vmware.com/jp-cim/2013/07/sdn2.html
	その3:
	http://blogs.vmware.com/jp-cim/2013/10/sdn3.html

・VMware NSXによる次世代ネットワークの実現
	記事一覧 https://thinkit.co.jp/series/5478

	第1回：VMware NSXとは？
	https://thinkit.co.jp/article/3439
	第2回：VMware NSXができること～ネットワーク仮想化編～
	https://thinkit.co.jp/article/3448
	第3回：VMware NSXができること～セキュリティ編～
	https://thinkit.co.jp/article/3469
	第4回：VMware NSXとテクノロジーパートナー連携
	https://thinkit.co.jp/article/3552
	第5回：VMware NSXの運用管理
	https://thinkit.co.jp/article/3599

Enjoy :tada: