NSX-T 2.4 を REST API で操作してみる。Part.3

NSX-T 2.4 を REST API で操作してみる。Part.3

NSX-T を REST API で操作してみます。

今回はオーバーレイ ネットワークの作成として、

論理スイッチと、ゲートウェイになる Tier-1 論理ルータ ポートを作成します。

一連の投稿の前提/想定環境などは下記をどうぞ。

NSX-T 2.4 を REST API で操作してみる。Part.1

前回はこちら。

NSX-T 2.4 を REST API で操作してみる。Part.2

前提とする設計について。

サンプルをシンプルにするため、オブジェクト名やアドレスの規則を決めておきます。

「テナント番号」のような感じで、オーバーレイ ネットワーク番号(N)をもうけて、

それをオブジェクト名やアドレスに使用します。

これ以降の例では、下記のようにオブジェクト名/アドレスを採番しています。

  • オブジェクト名: ~-N(例: ls-nsxt-001)
  • ネットワークアドレス: 172.16.N.0/24(例: 172.16.1.0/24)
  • デフォルトゲートウェイ: 172.16.N.1(例: 172.16.1.1)

オーバーレイ 論理スイッチの作成。

論理スイッチを作成するための JSON ファイルを作成します。

オーバーレイ論理スイッチの作成には、オーバーレイ トランスポート ゾーンの ID が必要です。

※ここで指定するオーバーレイ トランスポート ゾーン「tz-overlay-01」は、前提として作成ずみのものです。

$ curl -ks -u $CRED -X GET  https://$MGR/api/v1/transport-zones | jq -r '.results[] | select(.transport_type=="OVERLAY" and .display_name=="tz-overlay-01") | .id'

4a51e97d-f991-407c-ab73-66820a117f70

JSON を作成します。赤字の部分は環境にあわせた値にします。

オーバーレイ トランスポート ゾーン ID は、この環境であれば、

「4a51e97d-f991-407c-ab73-66820a117f70」になります。

ls-nsxt-N.json

{

  "display_name": "オーバーレイ 論理スイッチの名前",

  "description": "",

  "transport_zone_id": "オーバーレイ トランスポート ゾーン ID",

  "admin_state": "UP",

  "replication_mode": "MTEP",

  "hybrid": false,

  "_revision": 0

}

論理スイッチを作成します。

作成と同時に、レスポンス情報から論理スイッチ ID を取得しておきます。

$ curl -ks -u $CRED -H "Content-type: application/json" -X POST -d @./ls-nsxt-N.json https://$MGR/api/v1/logical-switches | jq -r '.id'

144f4777-a514-4351-b88e-5f6a1f6877e5

論理スイッチ ポートの作成。

NSX Manager の Web UI から実施する場合は、論理ルータ ポートを作成すると、論理スイッチのポートも自動作成されます。

一方、API の場合は、手動で論理スイッチ ポートを作成しておく必要があります。

JSON ファイルを作成します。

ここでは、先ほど作成した論理スイッチの ID が必要となります。

この環境であれば、論理スイッチ ID は「144f4777-a514-4351-b88e-5f6a1f6877e5」です。

ls-port-N.json

{

  "display_name": "論理スイッチ ポート名",

  "logical_switch_id": "オーバーレイ 論理スイッチ ID",

  "admin_state": "UP"

}

論理スイッチ ポートを作成します。

ここでも、作成した論理スイッチ ポートの ID を取得しておきます。

$ curl -ks -u $CRED -X POST -H "Content-type: application/json" -d @./ls-port-N.json https://$MGR/api/v1/logical-ports | jq -r '.id'

02c7afd1-20cf-4528-8de2-360534960cd6

Tier-1 論理ルータ ポートの作成。

論理スイッチを Tier-1 論理ルータに接続し、ゲートウェイとなる IP アドレスを設定します。

ここでは、先ほど作成した、論理スイッチ ポートの ID が必要になります。

さらに、Tier-1 論理スイッチの ID が必要となるため、取得しておきます。

※ここでの論理スイッチ名「t1-router-001」は、前回の投稿で作成したものを指定します。

$ curl -ks -u $CRED -X GET https://$MGR/api/v1/logical-routers | jq -r '.results[] | select(.router_type=="TIER1" and .display_name=="t1-router-001") | .id'

b8c1e482-a6d0-47eb-aca3-315abf738c8f

t1-port-N.json

{

  "display_name": "論理ルータ ポートの名前",

  "resource_type": "LogicalRouterDownLinkPort",

  "linked_logical_switch_port_id": {

    "target_id": "オーバーレイ 論理スイッチ ポート ID"

  },

  "logical_router_id": "Tier-1 論理ルータ ID",

  "subnets": [

    {

      "ip_addresses": [

        "ゲートウェイの IP アドレス"

      ],

      "prefix_length": 24

    }

  ]

}

ここまでの情報により、ここまでの実行例であれば下記のように値を指定します。

  • logical_router_id: "b8c1e482-a6d0-47eb-aca3-315abf738c8f"
  • linked_logical_switch_port_id の target_id: "02c7afd1-20cf-4528-8de2-360534960cd6"
  • logical_router_id 配下の ip_addresses: "172.16.1.1"

それでは、JSON ファイルをもとに Tier-1 論理ルータ ポートを作成します。

$ curl -ks -u $CRED -X POST -H "Content-type: application/json" -d @./t1-port-N.json https://$MGR/api/v1/logical-router-ports

これで、オーバーレイ ネットワークとそのゲートウェイが作成されます。

今回作成した論理スイッチに VM を接続しネットワーク設定をすれば、

ping などで Tier-1 論理ルータ ポートに設定したアドレスへの疎通がとれるはずです。

ただ、今回作成した論理スイッチのネットワークには DHCP サーバがないため

VM には手動でのネットワーク設定が必要になります。

次回は、NSX-T による DHCP サーバを API で作成します。

つづく・・・

NSX-T 2.4 を REST API で操作してみる。Part.4

Tags (3)
Version history
Revision #:
1 of 1
Last update:
‎06-23-2019 06:27 AM
Updated by: