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

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

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

今回は NSX-T による DHCP サーバを作成して、オーバーレイ論理スイッチに接続します。

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

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

前回はこちら。

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

この投稿は、以前の下記投稿の API 版です。

自宅ラボで NSX-T 2.4 環境を構築する。Part.10

NSX-T の DHCP サーバ作成は、下記のような流れです。

  • サーバ プロファイルの作成
  • DHCP サーバの作成
  • DHCP サーバへの IP アドレス プールの作成
  • DHCP サーバを論理スイッチに接続

DHCP サーバ プロファイルの作成。

まず、サーバ プロファイルの定義を記載した JSON ファイルを作成します。

NSX Edge クラスタ ID が必要なので、前回まで内容をもとに ID を確認して、

JSON ファイルを完成させます。

下記のような JSON を作成します。

dhcp-prof-N.json

{

  "display_name": "DHCP プロファイル名",

  "edge_cluster_id": "Edge クラスタ ID"

}

DHCP サーバ プロファイルを作成します。

コマンドライン末尾の jq コマンドにより、作成された サーバ プロファイルの ID を取得しておきます。

$ curl -ks -u $CRED -X POST -H "Content-type: application/json" -d @./dhcp-prof-N.json https://$MGR/api/v1/dhcp/server-profiles | jq -r '.id'

DHCP サーバの作成。

JSON ファイルを作成します。おもに赤字部分を、ネットワーク環境にあわせます。

dhcp_server_ip には、未使用の IP アドレスを指定します。

gateway_ip には、DHCP サービスを利用する論理スイッチを接続した

論理ルータ ポートの IP アドレスを指定します。

DNS や ドメイン名の設定といった、DHCP オプションも指定できます。

dhcp-sv-N.json

{

  "display_name": "DHCP サーバ名",

  "dhcp_profile_id": "DHCP サーバ プロファイルの ID",

  "ipv4_dhcp_server": {

    "dhcp_server_ip": "172.16.1.2/24",

    "dns_nameservers": [

      "192.168.1.101",

      "192.168.1.102"

    ],

    "domain_name": "go-lab.jp",

    "gateway_ip": "172.16.1.1"

  }

}

DHCP サーバを作成します。

ここでも、作成した DHCP サーバの ID を取得しておきます。

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

DHCP の IP プールの作成。

DHCP サーバには、IP アドレス プールを作成します。

JSON ファイルを作成します。赤字の部分を、ネットワークにあわせて修正します。

ここでの gateway_ip は、論理スイッチを接続している Tier-1 論理ルータ ポートの IP アドレスを指定します。

dhcp-pool-N.json

{

  "display_name": "DHCP IP アドレス プール名",

  "gateway_ip": "172.16.1.1",

  "allocation_ranges": [

    {

      "start": "172.16.1.10",

      "end": "172.16.1.99"

    }

  ]

}

IP アドレス プールを作成します。

$ curl -ks -u $CRED -X POST -H "Content-type: application/json" -d @./dhcp-pool-N.json https://$MGR/api/v1/dhcp/servers/$DHCP_SV_ID/ip-pools

論理スイッチへの DHCP サーバの接続。

作成した DHCP サーバを、論理スイッチに接続します。

対象の論理スイッチの ID が必要になるため、取得しておきます。

※論理スイッチ「ls-nsxt-001」は、前回に作成したものです。

$ curl -ks -u $CRED -X GET https://$MGR/api/v1/logical-switches | jq -r '.results[] | select(.display_name == "ls-nsxt-001") | .id'

これまでの Tier-1/Tier-0 のリンクや、論理ルータ ポート作成とは異なり、

「"attachment_type" : "DHCP_SERVICE"」という DHCP 接続のための指定をします。

下記のような JSON ファイルを作成します。

dhcp-port-N.json

{

  "display_name": "DHCP サーバを接続する論理スイッチ ポートの名前",

  "logical_switch_id": "論理スイッチ ID",

  "attachment" : {

    "attachment_type" : "DHCP_SERVICE",

    "id" : "DHCP サーバの ID"

  },

  "admin_state": "UP"

}

では、DHCP サーバを論理スイッチに接続(ポートを作成)します。

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

これで、論理スイッチに接続した VM で、DHCP サービスが利用可能になります。

ここまでの DHCP サービスの簡易的な設定確認には、

論理スイッチ に接続している VM などからの下記のようなものが考えられます。

  • 実際に VM で DHCP によるネットワーク設定がされるか?
  • VM から、DHCP サーバに指定した dhcp_server_ip への疎通確認などが可能か?

もうすこし続く。

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

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