【VMware@SoftLayer】ネットワーク準備編

#今回の内容
KnowledgeLayerの記事を参考にVMware@SoftLayerの物理ネットワーク環境を整備します。
全体の流れとしてやることはここに全て書いてあります。

>How to Build a Basic Single-Site VMware Environment @ SoftLayer | SoftLayer
https://knowledgelayer.softlayer.com/jp/node/1703
Advanced Single-Site VMware Reference Architecture@SoftLayer | SoftLayer
https://knowledgelayer.softlayer.com/jp/node/1697
VMware vSphere 6 Getting Started | SoftLayer（これが一番新しいです）
http://knowledgelayer.softlayer.com/procedure/vmware-vsphere-6-getting-started


#最初に考えること
VMwareのベストプラクティスとして、トラフィックの分離が推奨されています。
以下の4つの観点からもVLANごとにトラフィックを分けることをおすすめします。

- セキュアな分離
    - 仮想マシン（役割ごとに管理用、外部接続用、内部アプリ用など）、ネットワーク、ストレージ・リソースがそれぞれ、安全に分離されている必要がある。
- サービス保証
    - 通常運用時のみならず、障害発生時や、一部の異常負荷発生時にも、サーバ、ネットワーク、ストレージの各パフォーマンスが分離され、保証される必要がある。
- 可用性
    - 障害発生時も、必要なサーバ、ネットワーク、ストレージの各リソースの可用性を確保する必要がある。
- 管理性
    - 全リソースの迅速なプロビジョニング、管理、監視機能が必要である。

今回の例

| VLAN | トラフィック（用途） | Tag |Primary IPの使い道 | Portable IPの使い道|
|:-:|:-:|:-:|:-:|:-:|
| 1101  | Management  | Untagged (Native)  | IPMIコンソールで使用| Management vmkernel & Management VM|
| 1102  |  vMotion / FT / Storage | tagged  | 使わない | vmkernel for vMotion / FT / Storage|
| 1103  |  VXLAN Transport |  tagged | 使わない| VTEP (vmkernel for VXLAN：ホストあたり1つ)|
| 1104  | VM Application  | tagged  |使わない | Private IPs for normal VM |


#全体の流れ
今回はベアメタル2台＋Vyatta Gateway Applianceの構成になっています。

- Management Clusterにホストesx01（ベアメタル）
- Capacity Clusterにホストesx02（ベアメタル）
- Vyatta Gateway Appliance

ここに以下のコンポーネントを追加します。

- Private VLAN1102
- Private VLAN1103
- Private VLAN1104
- Private Portable IP (VLAN1101用)
- Private Portable IP (VLAN1102用)
- Private Portable IP (VLAN1103用)
- Private Portable IP (VLAN1104用)

<img width="644" alt="vmwareネットワーク構成.png" src="https://qiita-image-store.s3.amazonaws.com/0/101361/e61094b2-e53b-4d63-02cd-3c37e6baa05a.png">

##１．VLAN + Portable IP 追加
###１−１．VLAN追加

チケット経由で注文する必要があり、価格は1VLANあたり$25です。
チケットでVLANを追加したいと言うと添付のリクエストフォームへ記入するように言われます。
>「Private Network Question - Order VLANs」
I would like to order the 3 Private VLANs.（私）
-->If you are planning to place additional vlans, you will need to fill up all the necessary details as requested on the vlan pdf form.（SoftLayer）

例

| Desired Pod | Private or Public? | Description of VLAN Use / hosts contained within VLAN | Requested Primary IPs |
|:-:|:-:|:-:|:-:|
| TOK02  | Private  | vMotion / FT / Storage traffic for esx01, esx02 | 8  |
| TOK02  | Private  | VXLAN Transport traffic for esx01, esx02  | 8  |
| TOK02  | Private  | VM Application traffic for esx01, esx02  | 8  |
（Primary IPは使用する予定はないため、最低限にしておきます）

言われた通り、PDFに記入して添付&返信すると、価格への同意が来るので承認したら、SoftLayer側で簡単な審査に入ります。
>can you please approve of the $25/VLAN/month charge so that we can proceed with your request（SoftLayer）
-->I approve. you can proceed.（私）

このあとは、審査で承認されて払い出されるまで待つように言われるので、待っているとVLANが払い出されます。初月は日割りが適用されます。
>Your 3 VLANs has been added for $25 /vlan/mo. to your billing. 
A pro rated charge of $10.48(x3) was charged for service from Apr 19 till the end of your current billing cycle.（SoftLayer）

自動化されていないので手間に感じますが、VLANの注文がチケット経由なのは、あまり注文されるとSoftLayerのVLANが枯渇してしまう恐れがあるとの理由で、このような形式となっているようです。
これでVLAN3つゲットです！

###１−２．Portable IP追加
こちらはカスタマーポータル経由で注文でき、価格は無料です。
Native VLANにも追加するので全部で4つ追加します。
プレフィックスは必要に応じて選んでもらえばよいと思います。
先ほど注文したVLANにそれぞれPortable IPをつける設定をおこなってください。

>参考リンク
4.2 サーバーを替えても同じIPアドレスを継続するには？ | CHANGE-MAKERS
https://www.change-makers.jp/docs/softlayer-config-guide/10345



##２．ベアメタルの各NICにVLANトランク
仮想化されたプライベートな環境において一般的な、仮想スイッチでVLANタグの付け外しをおこなうVST方式(Virtual Switch Tagging mode)で通信するにあたって必要な作業となります。
普段はSoftLayerが管理している物理スイッチ上でVLANタグの付け外しがおこなわれているようですが、
それをベアメタル上に構築した仮想スイッチまでトランクをおこない、複数のVLANトラフィックが流れてこられるようにします。
これにより、VMwareの仮想スイッチ上でのVLAN管理が可能になります。

こちらもチケットで依頼します。
>「Private Network Question - Trunk VLANs on eth0 & eth2」
Please trunk VLANs 1102,1103, and 1104 on eth0 & eth2 NIC pair for each host [esx01, esx02].（私）
5分後-->We have trunked the VLAN's per your request. （SoftLayer）

トランクするベアメタルのNICがわからないときは、こちらの記事をご参考ください。
>SoftLayerのNICのナンバリング規則 - Qiita
http://qiita.com/khayama/items/cecf98d6bfcd9610a1c3



##３．VyattaでVLANインターフェースを設定
VyattaにもVLANをトランクさせて、Vyatta経由でVLAN間をルーティングさせます。

###３−１．Vyattaでvifを設定
まずはVyatta内部の設定を書き換えます。
vifの設定（各VLANのゲートウェイをサブインターフェースとして設定）を記述します。
Native VLANのPrimary IPアドレスには、ベアメタルとのIPMI通信（ハードウェアコンソール）に利用する管理用IPアドレスが入っているので、Management用のところに登録します。

```
configure
set interfaces bonding bond0 vif 1101 description Management
set interfaces bonding bond0 vif 1101 address 10.vv.vv.vv/26（Primary IP GW）
set interfaces bonding bond0 vif 1101 address 10.ww.ww.ww/26（Portable IP GW）
set interfaces bonding bond0 vif 1102 description vMotion-FT-Storage
set interfaces bonding bond0 vif 1102 address 10.xx.xx.xx/26（Portable IP GW）
set interfaces bonding bond0 vif 1103 description VXLLAN-Transport
set interfaces bonding bond0 vif 1103 address 10.yy.yy.yy/26（Portable IP GW）
set interfaces bonding bond0 vif 1104 description VM-Application
set interfaces bonding bond0 vif 1104 address 10.zz.zz.zz/26（Portable IP GW）
compare
commit
save

```

###３−２．カスタマーポータルからVLANを設定
Vyatta内部の設定が終わったら、カスタマーポータル経由で外部のネットワーク設定をおこないます。

「Network -> Gateway Appliances -> [ゲートウェイの名前]」から

Associateする（VLANをゲートウェイアプライアンスにトランクする）
<img width="691" alt="associate-vlan.png" src="https://qiita-image-store.s3.amazonaws.com/0/101361/fc354230-6243-75da-d7f8-0aff40c4a0bf.png">

Routedにする（ゲートウェイアプライアンスにAssociateされたVLAN内サブネットへのルーティングをVyattaに任せる）
<img width="1223" alt="route-vlan.png" src="https://qiita-image-store.s3.amazonaws.com/0/101361/72ac70a9-9097-c510-d969-37d1c18e7038.png">

ここまでの設定でようやくVMwareのネットワーク準備が完了します。

#まとめ
今回においては、VMwareによって仮想化されたプライベート環境の基礎ネットワークの構築、というところで**VLAN、IPアドレス、ゲートウェイアプライアンスなどSoftLayerにおける物理ネットワークの柔軟かつ豊富な組み合わせ**を体感することができました。
カスタマーポータルやチケットを通じて、ネットワークも思いのままに構築したい人はSoftLayerがおすすめです。
特に、比較的新しいVMwareのネットワーク仮想化製品である**NSXもSoftLayer上で展開できるため、さらに自由度を高め、（仮想化されていない）物理ネットワークを最大限活用できる**ところが本当に懐の深いクラウドだと感じます。
これにてネットワーク準備編は完了です。

#参考
VMware_at_SoftLayer_CookBook_BasicvSphereArchitecture_v1.6.pdf
http://wpc.c320.edgecastcdn.net/00C320/VMware_at_SoftLayer_CookBook_BasicvSphereArchitecture_v1.6.pdf