System Administration > Configuration > Fabric > Nodes > Transport Nodes

Create a Transport Node

Transport nodes are hypervisor hosts and NSX Edges that will participate
in an NSX-T overlay. For a hypervisor host, this means that it hosts
VMs that will communicate over NSX-T logical switches. For NSX Edges,
this means that it will have logical router uplinks and downlinks.

This API creates transport node for a host node (hypervisor) or edge node
(router) in the transport network.

When you run this command for a host, NSX Manager attempts to install the
NSX kernel modules, which are packaged as VIB, RPM, or DEB files. For the
installation to succeed, you must provide the host login credentials and the
host thumbprint.

To get the ESXi host thumbprint, SSH to the host and run the
openssl x509 -in /etc/vmware/ssl/rui.crt -fingerprint -sha256 -noout
command.

To generate host key thumbprint using SHA-256 algorithm please follow the
steps below.

Log into the host, making sure that the connection is not vulnerable to a
man in the middle attack. Check whether a public key already exists.
Host public key is generally located at '/etc/ssh/ssh_host_rsa_key.pub'.
If the key is not present then generate a new key by running the following
command and follow the instructions.

ssh-keygen -t rsa

Now generate a SHA256 hash of the key using the following command. Please
make sure to pass the appropriate file name if the public key is stored with
a different file name other than the default 'id_rsa.pub'.

awk '{print $2}' id_rsa.pub | base64 -d | sha256sum -b | sed 's/ .*$//' | xxd -r -p | base64

Additional documentation on creating a transport node can be found
in the NSX-T Installation Guide.

In order for the transport node to forward packets,
the host_switch_spec property must be specified.

Host switches (called bridges in OVS on KVM hypervisors) are the
individual switches within the host virtual switch. Virtual machines
are connected to the host switches.

When creating a transport node, you need to specify if the host switches
are already manually preconfigured on the node, or if NSX should create
and manage the host switches. You specify this choice by the type
of host switches you pass in the host_switch_spec property of the
TransportNode request payload.

For a KVM host, you can preconfigure the host switch, or you can have
NSX Manager perform the configuration. For an ESXi host or NSX Edge
node, NSX Manager always configures the host switch.

To preconfigure the host switches on a KVM host, pass an array
of PreconfiguredHostSwitchSpec objects that describes those host
switches. In the current NSX-T release, only one prefonfigured host
switch can be specified. See the PreconfiguredHostSwitchSpec schema
definition for documentation on the properties that must be provided.
Preconfigured host switches are only supported on KVM hosts, not on
ESXi hosts or NSX Edge nodes.

To allow NSX to manage the host switch configuration on KVM hosts,
ESXi hosts, or NSX Edge nodes, pass an array of StandardHostSwitchSpec
objects in the host_switch_spec property, and NSX will automatically
create host switches with the properties you provide. In the current
NSX-T release, up to 16 host switches can be automatically managed.
See the StandardHostSwitchSpec schema definition for documentation on
the properties that must be provided.

Note: Previous versions of NSX-T also used a property named
transport_zone_endpoints at TransportNode level. This property is
deprecated which creates some combinations of new client along with
old client payloads. Examples [1] & [2] show old/existing client
request and response by populating transport_zone_endpoints property
at TransportNode level. Example [3] shows TransportNode creation
request/response by populating transport_zone_endpoints property
at StandardHostSwitch level and other new properties.

The request should either provide node_deployement_info or node_id.

If the host node (hypervisor) or edge node (router) is already added in
system then it can be converted to transport node by providing node_id in
request.

If host node (hypervisor) or edge node (router) is not already present in
system then information should be provided under node_deployment_info.

Request:

Method:
POST
URI Path(s):
/api/v1/transport-nodes
Request Headers:
n/a
Query Parameters:
n/a
Request Body:
TransportNode+

Example Request:

POST https://<nsx-mgr>/api/v1/transport-nodes { "resource_type": "TransportNode", "display_name": "NSX Configured TN", "description": "NSX configured Test Transport Node", "host_switch_spec": { "resource_type": "StandardHostSwitchSpec", "host_switches": [ { "host_switch_profile_ids": [ { "value": "e331116d-f59e-4004-8cfd-c577aefe563a", "key": "UplinkHostSwitchProfile" } ], "host_switch_name": "nsxvswitch", "pnics": [ { "device_name": "vmnic1", "uplink_name": "uplink1" } ], "ip_assignment_spec": { "resource_type": "StaticIpPoolSpec", "ip_pool_id": "ecddcdde-4dc5-4026-ad4f-8857995d4c92" }, "vmk_install_migration": [ { "device_name": "vmk1", "destination_network": "849e339e-64b7-47cb-9480-33068f70dc5a" } ], "vmk_uninstall_migration": [ ] } ] }, "transport_zone_endpoints": [ { "transport_zone_id": "e14c6b8a-9edd-489f-b624-f9ef12afbd8f" } ], "node_deployment_info": { "resource_type": "HostNode", "display_name": "FN1", "fqdn": "sc2-rdops-vm03-dhcp-110-133.eng.vmware.com", "ip_addresses": [ "10.192.156.199" ], "os_type": "ESXI", "os_version": "6.5.0", "host_credential": { "username": "user1", "password": "password", "thumbprint": "cd57fb90a3c0afecb4db000fe5f1baa334a511f79a147dd63c876b765f027214" } } POST https://<nsx-mgr>/api/v1/transport-nodes { "host_switch_spec":{ "host_switches":[ { "host_switch_name":"nsxvswitch", "host_switch_profile_ids":[ { "key":"UplinkHostSwitchProfile", "value":"d3556a6a-9a8a-4ffd-a7f4-1f647044e195" }, { "key":"LldpHostSwitchProfile", "value":"9e0b4d2d-d155-4b4b-8947-fbfe5b79f7cb" } ], "pnics":[ { "device_name":"fp-eth1", "uplink_name":"uplink1" } ], "ip_assignment_spec":{ "ip_pool_id":"1b261770-043e-4de0-a26f-9ae75bbb5857", "resource_type":"StaticIpPoolSpec" } } ], "resource_type":"StandardHostSwitchSpec" }, "transport_zone_endpoints":[ { "transport_zone_id":"ccc808be-4d59-40e2-b801-2e550e9a3ecc", "transport_zone_profile_ids":[ { "resource_type":"BfdHealthMonitoringProfile", "profile_id":"52035bb3-ab02-4a08-9884-18631312e50a" } ] } ], "node_deployment_info":{ "deployment_config":{ "vm_deployment_config":{ "vc_id":"62c97633-e0f2-4a4e-b68e-5cf4f764b9f2", "compute_id":"domain-c8", "storage_id":"datastore-09", "management_network_id":"network-15", "hostname":"main-edge", "data_network_ids":[ "network-15", "network-15", "network-15" ], "placement_type":"VsphereDeploymentConfig" }, "form_factor":"SMALL", "node_user_settings":{ "cli_username":"admin", "root_password":"Admin!23Admin", "cli_password":"Admin!23Admin" } }, "resource_type":"EdgeNode" }, "resource_type":"TransportNode", "display_name":"main-edge" } POST https://<nsx-mgr>/api/v1/transport-nodes { "display_name": "VDS-TransportNode" "description": "NSX configured VDS Transport Node", "resource_type": "TransportNode", "host_switch_spec": { "host_switches": [ { "host_switch_id": "50 24 3c 5b a4 42 56 9e-c1 7e 5d 1d bd 52 61 14", "host_switch_type": "VDS", "host_switch_mode": "STANDARD", "host_switch_profile_ids": [ { "key": "UplinkHostSwitchProfile", "value": "0a26d126-7116-11e5-9d70-feff819cdc9f" } ], "uplinks": [ { "vds_uplink_name": "Uplink 1", "uplink_name": "uplink-1" } ], "ip_assignment_spec": { "resource_type": "AssignedByDhcp" }, "transport_zone_endpoints": [ { "transport_zone_id": "3c930f4e-1817-418d-aed6-d73f6b309e98", "transport_zone_profile_ids": [ { "resource_type": "BfdHealthMonitoringProfile", "profile_id": "52035bb3-ab02-4a08-9884-18631312e50a" } ] } ] } ], "resource_type": "StandardHostSwitchSpec" }, "transport_zone_endpoints": [], "maintenance_mode": "DISABLED", "node_deployment_info": { "os_type": "ESXI", "os_version": "7.0.0", "managed_by_server": "10.184.158.114", "discovered_node_id":"c59b9674-ce9b-4e52-9e8c-6bd1c6301ad3:host-13", "resource_type": "HostNode", "ip_addresses": [ "10.193.58.122" ], "host_credential": { "username": "username", "password": "password", "thumbprint": "dd48bed4956e5a8d3b34950b9492013d1fdef3f92430ea337d40c41848867d82" } } }

Successful Response:

Response Code:
201 Created
Response Headers:
Content-type: application/json
Response Body:
TransportNode+

Example Response:

{ "resource_type": "TransportNode", "description": "Updated NSX configured Test Transport Node", "id": "77816de2-39c3-436c-b891-54d31f580961", "display_name": "NSX Configured TN", "host_switch_spec": { "resource_type": "StandardHostSwitchSpec", "host_switches": [ { "host_switch_profile_ids": [ { "value": "e331116d-f59e-4004-8cfd-c577aefe563a", "key": "UplinkHostSwitchProfile" }, { "value": "9e0b4d2d-d155-4b4b-8947-fbfe5b79f7cb", "key": "LldpHostSwitchProfile" } ], "host_switch_name": "nsxvswitch", "pnics": [ { "device_name": "vmnic1", "uplink_name": "uplink1" } ], "ip_assignment_spec": { "resource_type": "StaticIpPoolSpec", "ip_pool_id": "ecddcdde-4dc5-4026-ad4f-8857995d4c92" }, "vmk_install_migration": [ { "device_name": "vmk1", "destination_network": "849e339e-64b7-47cb-9480-33068f70dc5a" } ], "vmk_uninstall_migration": [ ] } ] }, "transport_zone_endpoints": [ { "transport_zone_id": "e14c6b8a-9edd-489f-b624-f9ef12afbd8f", "transport_zone_profile_ids": [] } ], "node_id": "41a4eebd-d6b9-11e6-b722-875041b9955d", "node_deployment_info": { "resource_type": "HostNode", "id": "41a4eebd-d6b9-11e6-b722-875041b9955d", "display_name": "FN1", "fqdn": "sc2-rdops-vm03-dhcp-110-133.eng.vmware.com", "ip_addresses": [ "10.192.156.199" ], "external_id": "a5113680-6a56-4386-9017-adffbe56c99e", "discovered_ip_addresses": [], "os_type": "ESXI", "os_version": "", "managed_by_server": "", "_create_time": 1538632396987, "_last_modified_user": "admin", "_protection": "NOT_PROTECTED", "_last_modified_time": 1538632396987, "_create_user": "admin", "_revision": 0 }, "_create_time": 1485299990773, "_last_modified_user": "admin", "_last_modified_time": 1485301913130, "_create_user": "admin", "_revision": 1 } { "node_id": "f049ed71-44d1-4ee3-aab3-9945c184188f", "host_switch_spec": { "host_switches": [ { "host_switch_name": "nsxvswitch", "host_switch_profile_ids": [ { "key": "UplinkHostSwitchProfile", "value": "d3556a6a-9a8a-4ffd-a7f4-1f647044e195" }, { "key": "LldpHostSwitchProfile", "value": "9e0b4d2d-d155-4b4b-8947-fbfe5b79f7cb" } ], "pnics": [ { "device_name": "fp-eth1", "uplink_name": "uplink1" } ], "is_migrate_pnics": false, "ip_assignment_spec": { "ip_pool_id": "1b261770-043e-4de0-a26f-9ae75bbb5857", "resource_type": "StaticIpPoolSpec" }, "cpu_config": [], "transport_zone_endpoints": [ { "transport_zone_id": "ccc808be-4d59-40e2-b801-2e550e9a3ecc", "transport_zone_profile_ids": [ { "resource_type": "BfdHealthMonitoringProfile", "profile_id": "52035bb3-ab02-4a08-9884-18631312e50a" } ] } ], "vmk_install_migration": [], "pnics_uninstall_migration": [], "vmk_uninstall_migration": [], "not_ready": false } ], "resource_type": "StandardHostSwitchSpec" }, "maintenance_mode": "DISABLED", "node_deployment_info": { "deployment_config": { "vm_deployment_config": { "vc_id": "62c97633-e0f2-4a4e-b68e-5cf4f764b9f2", "compute_id": "domain-c8", "storage_id": "datastore-09", "management_network_id": "network-15", "data_network_ids": [ "network-15", "network-15", "network-15" ], "placement_type": "VsphereDeploymentConfig" }, "form_factor": "SMALL", "node_user_settings": { "cli_username": "admin" } }, "node_settings": { "hostname": "statEdge", "enable_ssh": false, "allow_ssh_root_login": false }, "resource_type": "EdgeNode", "id": "f049ed71-44d1-4ee3-aab3-9945c184188f", "display_name": "statEdgeas1", "external_id": "f049ed71-44d1-4ee3-aab3-9945c184188f", "_create_user": "admin", "_create_time": 1554291902909, "_last_modified_user": "admin", "_last_modified_time": 1554291902909, "_system_owned": false, "_protection": "NOT_PROTECTED", "_revision": 0 }, "is_overridden": false, "failure_domain_id": "4fc1e3b0-1cd4-4339-86c8-f76baddbaafb", "resource_type": "TransportNode", "id": "f049ed71-44d1-4ee3-aab3-9945c184188f", "display_name": "statEdgeas1", "_create_user": "admin", "_create_time": 1554291903244, "_last_modified_user": "admin", "_last_modified_time": 1554291903244, "_system_owned": false, "_protection": "NOT_PROTECTED", "_revision": 0 } { "node_id": "9820ce57-7e7f-435c-aa7d-b7a92ae41799", "host_switch_spec": { "host_switches": [ { "host_switch_name": "dvs1", "host_switch_id": "50 24 3c 5b a4 42 56 9e-c1 7e 5d 1d bd 52 61 14", "host_switch_type": "VDS", "host_switch_mode": "STANDARD", "host_switch_profile_ids": [ { "key": "UplinkHostSwitchProfile", "value": "0a26d126-7116-11e5-9d70-feff819cdc9f" } ], "pnics": [], "uplinks": [ { "vds_uplink_name": "Uplink 1", "uplink_name": "uplink-1" } ], "is_migrate_pnics": false, "ip_assignment_spec": { "resource_type": "AssignedByDhcp" }, "cpu_config": [], "transport_zone_endpoints": [ { "transport_zone_id": "3c930f4e-1817-418d-aed6-d73f6b309e98", "transport_zone_profile_ids": [ { "resource_type": "BfdHealthMonitoringProfile", "profile_id": "52035bb3-ab02-4a08-9884-18631312e50a" } ] } ], "vmk_install_migration": [], "pnics_uninstall_migration": [], "vmk_uninstall_migration": [], "not_ready": false } ], "resource_type": "StandardHostSwitchSpec" }, "transport_zone_endpoints": [], "maintenance_mode": "DISABLED", "node_deployment_info": { "os_type": "ESXI", "os_version": "7.0.0", "managed_by_server": "10.184.158.114", "discovered_node_id": "c59b9674-ce9b-4e52-9e8c-6bd1c6301ad3:host-13", "resource_type": "HostNode", "id": "9820ce57-7e7f-435c-aa7d-b7a92ae41799", "display_name": "10.193.58.122", "description": "", "tags": [], "external_id": "9820ce57-7e7f-435c-aa7d-b7a92ae41799", "fqdn": "sc2-rdops-vm09-dhcp-58-122.eng.vmware.com", "ip_addresses": [ "10.193.58.122" ], "discovered_ip_addresses": [ "10.193.58.122", "169.254.93.203", "169.254.1.1" ], "_create_user": "admin", "_create_time": 1573674156762, "_last_modified_user": "admin", "_last_modified_time": 1573677951290, "_protection": "NOT_PROTECTED", "_revision": 0 }, "is_overridden": false, "resource_type": "TransportNode", "id": "9820ce57-7e7f-435c-aa7d-b7a92ae41799", "display_name": "10.193.58.122", "description": "", "tags": [], "_create_user": "admin", "_create_time": 1573674159110, "_last_modified_user": "admin", "_last_modified_time": 1573677951481, "_system_owned": false, "_protection": "NOT_PROTECTED", "_revision": 0 }

Required Permissions:

crud

Feature:

nodes_transport_nodes

Additional Errors: