この投稿は、下記のつづきです。
NSX API での 分散 FW 設定を体験してみる。Part 2 (HOL-SDC-1603 Module 3 より)
NSX の分散ファイアウォール(DFW)を、API で設定してみます。
手順では、ラボ(HOL-SDC-1603)の vCenter Server Appliance「vcsa-01a」の curl コマンドで、
NSX Manager 「192.168.110.15」 に API を実行しています。
手順の流れ。
- Security Group の作成。
- Service の作成。
- オブジェクト ID の確認。 ★ここ
- デフォルトの FW ルールを Allow → Block に変更。
- FW ルール セクションの作成。
- セクションに FW ルールを作成。
NSX API では、URL や XML で設定対象を指定するときに、対象オブジェクトの ID 指定が必要になります。
そこで、各オブジェクトの ID を確認しておきます。
XML の出力結果を整形するため、パイプで 「xmllint --format -」 をつけています。
また、NSX API で取得した情報は、XML としてパースするわけではなく grep で簡易的に絞り込んでいます。
Transport Zone ID
Transport Zone の ID を確認しておきます。
今回の設定では、「Local-Transport-Zone-A」 という名前の Transport Zone を指定します。
curl -k -s -u admin:VMware1! -X GET https://192.168.110.15/api/2.0/vdn/scopes | xmllint --format - | grep -E "vdnscope-|name" | grep -B1 "Local-Transport-Zone-A"
ID には、「vdnscope-」 がつきます。
- Local-Transport-Zone-A → vdnscope-1
論理スイッチ ID
論理スイッチ「App_Tier_01」、「DB_Tier_01」 の ID を確認しておきます。
curl -k -s -u admin:VMware1! -X GET https://192.168.110.15/api/2.0/vdn/scopes/vdnscope-1/virtualwires | xmllint --format - | grep -E "virtualwire-|name" | grep -B1 -E "App_Tier_01|DB_Tier_01"
ID には、「virtualwire-」 がつきます。
- App_Tier_01 → virtualwire-3
- DB_Tier_01 → virtualwire-4
セキュリティグループ ID
FW ルールで指定する、セキュリティグループの ID を確認しておきます。
curl -k -s -u admin:VMware1! -X GET https://192.168.110.15/api/2.0/services/securitygroup/scope/globalroot-0 | xmllint --format - | grep -E "securitygroup-|name" | grep -B1 "Web-tier"
ID には、「securitygroup-」 がつきます。
サービス ID
FW ルールで指定するサービスの ID を確認しておきます。
curl -k -s -u admin:VMware1! -X GET https://192.168.110.15/api/2.0/services/application/scope/globalroot-0 | xmllint --format - | grep -E "objectId|name" | grep -B1 -E "SSH|HTTPS|MyApp|MySQL"
ID には、「application-」 がつきます。
- HTTPS → application-67
- SSH → application-305
- MyApp → application-371 ※ここまでの手順で作成したサービス。
- MySQL → application-23
FW ルール セクション ID
「Default Section Layer3」セクションの情報を確認します。
ルール名に含まれる半角スペースは、URL エンコーディングの都合で 「%20」 としています。
curl -k -s -u admin:VMware1! -X GET https://192.168.110.15/api/4.0/firewall/globalroot-0/config/layer3sections?name=Default%20Section%20Layer3| xmllint --format - | grep section
「Default Section Layer3」 セクションが ID = 1003 だということがわかります。
FW ルール ID
ruleType=LAYER3 のルールで、ルール名に「default」 が含まれるルールの情報を取得してみます。
curl -k -s -u admin:VMware1! -X GET https://192.168.110.15/api/4.0/firewall/globalroot-0/config?ruleType=LAYER3\&name=default| xmllint --format - | grep -E "id=|name=" -A1
「Default Rule」 ルールが ID = 1001 だとわかります。
つづく・・・
NSX API での 分散 FW 設定を体験してみる。Part 4 (HOL-SDC-1603 Module 3 より)