この投稿は、下記のつづきです。
NSX API での 分散 FW 設定を体験してみる。Part 4 (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 ルールを作成。
今回は FW ルール作成の準備として、FW ルールのセクションを作成します。
FW ルール セクションの作成。
FW ルールのセクション「3-tier App」を作成します。
セクションを作成する場合、XML はセクション名(name)だけでも大丈夫です。
また、NSX API ガイドにあるように FW ルールを含めてセクションを作成することも可能です。
API ガイドを見た様子では、FW ルールの順序の入れ替えなどはセクション全体の更新となるようなので、
実際は FW ルールもセッションと同時に作成したほうが便利かもしれません。
ここでは下記の XML で空のセクションを作成して、後から FW ルールを作成してみます。
<section name="3-tier App"/>
API でセクションを作成します。
テキストの量が少なかったので、今回は XML ファイルを作成してません。
echo '<section name="3-tier App"/>' | curl -k -s -u admin:VMware1! -X POST -H 'Content-type: text/xml' -d @- https://192.168.110.15/api/4.0/firewall/globalroot-0/config/layer3sections
「3-tier App」セクションは、ID 1005 で作成されました。
Web Client でも「3-tier App」 セクションの作成が確認できます。
この状態で、次回の投稿で FW ルールを追加してみます。
NSX API での 分散 FW 設定を体験してみる。Part 3 (HOL-SDC-1603 Module 3 より)
参考: FW ルールセクションの作成。(FW ルール含む)
FW ルールも含めてセクションを作成する場合は、下記のような XML になります。
この XML を投入すれば今回の設定は終わりですが、HoL の「テキストの送信」で
この量のテキストを送信するのはつらいので、あえて今回は FW ルールを別作成にしました。
<section name="3-tier App" >
<rule disabled="false" logged="false">
<name>EXT to Web</name>
<action>allow</action>
<appliedToList>
<appliedTo>
<name>DISTRIBUTED_FIREWALL</name>
<value>DISTRIBUTED_FIREWALL</value>
<type>DISTRIBUTED_FIREWALL</type>
</appliedTo>
</appliedToList>
<destinations excluded="false">
<destination>
<name>Web-tier</name>
<value>securitygroup-10</value>
<type>SecurityGroup</type>
</destination>
</destinations>
<services>
<service>
<name>SSH</name>
<value>application-305</value>
<type>Application</type>
</service>
<service>
<name>HTTPS</name>
<value>application-67</value>
<type>Application</type>
</service>
</services>
</rule>
<rule disabled="false" logged="false">
<name>Web to App</name>
<action>allow</action>
<appliedToList>
<appliedTo>
<name>DISTRIBUTED_FIREWALL</name>
<value>DISTRIBUTED_FIREWALL</value>
<type>DISTRIBUTED_FIREWALL</type>
</appliedTo>
</appliedToList>
<sources excluded="false">
<source>
<name>Web-tier</name>
<value>securitygroup-10</value>
<type>SecurityGroup</type>
</source>
</sources>
<destinations excluded="false">
<destination>
<name>App_Tier_01</name>
<value>virtualwire-3</value>
<type>VirtualWire</type>
</destination>
</destinations>
<services>
<service>
<name>MyApp</name>
<value>application-371</value>
<type>Application</type>
</service>
</services>
</rule>
<rule disabled="false" logged="false">
<name>App to Database</name>
<action>allow</action>
<appliedToList>
<appliedTo>
<name>DISTRIBUTED_FIREWALL</name>
<value>DISTRIBUTED_FIREWALL</value>
<type>DISTRIBUTED_FIREWALL</type>
</appliedTo>
</appliedToList>
<sources excluded="false">
<source>
<name>App_Tier_01</name>
<value>virtualwire-3</value>
<type>VirtualWire</type>
</source>
</sources>
<destinations excluded="false">
<destination>
<name>DB_Tier_01</name>
<value>virtualwire-4</value>
<type>VirtualWire</type>
</destination>
</destinations>
<services>
<service>
<name>MySQL</name>
<value>application-23</value>
<type>Application</type>
</service>
</services>
</rule>
</section>
ちなみに、FW セッションを作成する API では、FW ルールを含んでいても ETtag (If-Match ヘッダ)の指定は不要です。
上記の XML を「dfw-section-3tier.txt」 というファイルに保存してあるとすると、
下記のようなコマンドラインで FW セッションが作成できます。
cat dfw-section-3tier.txt | curl -k -s -u admin:VMware1! -X POST -H "Content-type: text/xml" -d @- https://192.168.110.15/api/4.0/firewall/globalroot-0/config/layer3sections
まだつづく・・・
NSX API での 分散 FW 設定を体験してみる。Part 6 (HOL-SDC-1603 Module 3 より)