オーバーレイ ネットワークでは、NSX-T Data Center は L3 ドメインでの VLAN 間トラフィックのルーティングをサポートします。仮想分散論理ルーター (VDR) は、VLAN ID を使用して VLAN サブネット間のパケットをルーティングします。
VLAN 間のルーティングにより、仮想マシンごとに使用可能な vNIC の上限(最大 10 個まで)が解消されます。NSX-T Data Center では、VLAN 間のルーティングがサポートされているため、vNIC に多くの VLAN サブインターフェイスを作成し、異なるネットワーク サービスで使用できます。たとえば、仮想マシンの 1 つの vNIC を複数のサブインターフェイスに分割できます。各サブインターフェイスをサブネットに追加し、SNMP や DHCP などのネットワーク サービスをホストできます。たとえば、VLAN 間のルーティングでは、VLAN-10 のサブインターフェイスは、VLAN-10 またはその他の VLAN のサブインターフェイスに到達できます。
仮想マシン上の各 vNIC は、親論理ポートを介して N-VDS に接続します。これにより、タグのないパケットを管理します。
サブインターフェイスを作成するには、前述の API 呼び出しを行い、関連する VIF を使用して拡張 N-VDS スイッチに子ポートを作成します。VLAN ID を使用してタグ付けされたサブインターフェイスは、新しい論理スイッチに関連付けられます。たとえば、VLAN10 は論理スイッチ LS-VLAN-10 に接続されます。VLAN10 のすべてのサブインターフェイスは、LS-VLAN-10 に接続する必要があります。サブインターフェイスの VLAN ID とそれに関連する論理スイッチは 1 対 1 でマッピングされている必要があります。たとえば、VLAN-10 にマッピングされている論理スイッチ LS-VLAN-10 に VLAN20 の子ポートを追加すると、VLAN 間のパケット ルーティングが機能しなくなります。このような構成エラーがあると、VLAN 間のルーティングは機能しません。
NSX-T Data Center 3.2.2 以降では、論理ポートのトンネル API が対応するセグメント ポート ポリシー API に置き換えられました。
手順
- vNIC にサブインターフェイスを作成する場合は、vNIC が親ポートに更新されていることを確認してください。次の REST API 呼び出しを実行します。
PATCH https://<nsx-mgr-ip>/policy/api/v1/infra/segments/<Segment to which vNIC is connected>/ports/<Seg-Port-vNIC>
{
"attachment": {
"id": "<Attachment UUID of the vNIC>",
"type": "PARENT"
},
"admin_state": "UP",
"resource_type": "SegmentPort",
"display_name": "parentport"
}
}
論理スイッチに対応するセグメントがない場合は、次の REST API 呼び出し(論理ポート Proton API)を実行できます。
PUT https://<nsx-mgr-ip>/api/v1/logical-ports/<Logical-Port UUID-of-the-vNIC>
{
"resource_type" : "LogicalPort",
"display_name" : "parentport",
"attachment" : {
"attachment_type" : "VIF",
"context" : {
"resource_type" : "VifAttachmentContext",
"vif_type": "PARENT"
},
"id" : "<Attachment UUID of the vNIC>"
},
"admin_state" : "UP",
"logical_switch_id" : "UUID of Logical Switch to which the vNIC is connected",
"_revision" : 0
}
- 仮想マシンのサブインターフェイスに関連付けられた N-VDS で、vNIC の親ポートに子ポートを作成するには、次の API 呼び出しを実行します。
注: API 呼び出しを実行する前に、子ポートを仮想マシンのサブインターフェイスに接続するためのセグメントが存在することを確認してください。
PUT https://<nsx-mgr-ip>/policy/api/v1/infra/segments/<Segment to which child port is connected>/ports/<Child-port>
{
"attachment": {
"id": "<Attachment UUID of the CHILD port>",
"type": "CHILD",
"context_id": "<Attachment UUID of the PARENT port from Step 1>",
"traffic_tag": <VLAN ID>,
"app_id": "<ID of the attachment>", ==> display id(can be any string). Must be unique.
},
"address_bindings": [
{
"ip_address": "<IP address to the corresponding VLAN>",
"mac_address": "<vNIC MAC Address>",
"vlan_id": <VLAN ID>
}
],
"admin_state": "UP",
"resource_type": "SegmentPort",
"display_name": "<Name of the Child PORT>"
}
論理スイッチに対応するセグメントがない場合は、次の REST API 呼び出し(論理ポート Proton API)を実行できます。
POST https://<nsx-mgr-ip>/api/v1/logical-ports/
{
"resource_type" : "LogicalPort",
"display_name" : "<Name of the Child PORT>",
"attachment" : {
"attachment_type" : "VIF",
"context" : {
"resource_type" : "VifAttachmentContext",
"parent_vif_id" : "<UUID of the PARENT port from Step 1>",
"traffic_tag" : <VLAN ID>,
"app_id" : "<ID of the attachment>", ==> display id(can give any string). Must be unique.
"vif_type" : "CHILD"
},
"id" : "<ID of the CHILD port>"
},
"logical_switch_id" : "<UUID of the Logical switch(not the PARENT PORT's logical switch) to which Child port would be connected to>",
"address_bindings" : [ { "mac_address" : "<vNIC MAC address>", "ip_address" : "<IP address to the corresponding VLAN>", "vlan" : <VLAN ID> } ],
"admin_state" : "UP"
}
結果
NSX-T Data Center が仮想マシンにサブインターフェイスを作成します。