Sie können untergeordnete Segmente erstellen, um erweitertes IPAM, Routing und NAT für Kubernetes-Arbeitslasten mit Antrea zu aktivieren. Untergeordnete Segmente sind so konzipiert, dass sie Antrea-Funktionen wie flexibles IPAM routingfähiger Pods und Antrea-Egress unterstützen.

Hinweis: Diese Funktion ist nur über die API verfügbar.

Das folgende Diagramm zeigt, wie untergeordnete Segmente mit anderen Komponenten verbunden sind.

Ein übergeordnetes Segment ist ein reguläres NSX-Segment. Es ist keine Konfiguration erforderlich, um ein Segment zu einem übergeordneten Segment zu machen. Ein untergeordnetes Segment ist einem oder mehreren übergeordneten Segmenten zugeordnet und erhält für jedes seiner übergeordneten Segmente eine VLAN-ID. Ein übergeordnetes Segment sendet nur den Datenverkehr eines untergeordneten Segments, der mit der spezifischen VLAN-ID gekennzeichnet ist.

Eigenschaften von untergeordneten und übergeordneten Segmenten:
  • Ein untergeordnetes Segment kann mehreren übergeordneten Segmenten zugeordnet werden.
  • Ein übergeordnetes Segment kann über zahlreiche untergeordnete Segmente verfügen.
  • Jedes untergeordnete Segment, das mit einem übergeordneten Element verknüpft ist, muss über eine eindeutige VLAN-ID verfügen, und keine zwei untergeordneten Segmente, die mit demselben übergeordneten Element verbunden sind, können die gleiche VLAN-ID nutzen.
  • Ein untergeordnetes Segment, das eine Verbindung mit mehreren übergeordneten Elementen herstellt, kann für diese Verbindungen dieselbe oder unterschiedliche VLAN-IDs verwenden.
  • Ein untergeordnetes Segment kann nicht das übergeordnete Element eines anderen untergeordneten Segments sein.
  • Ein untergeordnetes Segment kann entweder ein Overlay-Segment oder ein VLAN-Segment sein.
  • Virtuelle Maschinen (VMs) können eine Verbindung zu untergeordneten Segmenten herstellen. Dabei wird ein Segmentport erstellt, ähnlich dem bei Verbindung einer VM mit einem Standardsegment.
  • Auf dem untergeordneten Segment wird für die über-/untergeordnete Verbindung kein Segmentport erstellt.
  • Untergeordnete und übergeordnete Segmente sind unabhängig. Das bedeutet:
    • Sie können eine Verbindung mit demselben oder unterschiedlichen Tier-1- oder Tier-0-Gateways herstellen.
    • Sie können unterschiedliche Konfigurationen oder Switching-Profile aufweisen.
    • Konfigurationen in einem übergeordneten Segment werden nicht von dessen untergeordneten Segmenten übernommen.
    • Eine Gruppe, die ein übergeordnetes Segment enthält, umfasst nicht automatisch dessen untergeordnete Segmente.
    • Dienste, die in einem übergeordneten Segment konfiguriert sind, z. B. eine verteilte Firewall, werden nicht auf untergeordnete Segmente erweitert.

Für VMs, die mit einem untergeordneten Segment verbunden sind, werden alle segmentbezogenen Funktionen unterstützt. Für den Container-Datenverkehr, der durch ein untergeordnetes Segment verläuft, werden in der folgenden Tabelle die unterstützten und nicht unterstützten Funktionen aufgelistet:

Funktion Unterstützt
Verteilte Firewall Nein
IP Discovery-Segmentprofil Nein
MAC Discovery-Segmentprofil Nein
Segmentsicherheits-Segmentprofil Nein
SpoofGuard-Segmentprofil Nein
QoS-Segmentprofil Nein
Port-Mirroring Nein
IPFix Nein
Uplink-Teaming Ja
Spiegelkonfiguration (Uplink-Spanne) Ja
NSGroup Nein
Latenz Nein

Nutzung untergeordneter Segmente mit Antrea

Jedes routingfähige Subnetz (z. B. IP-Pools für routingfähige Pods, externe IP-Pools für Egresses), die in Antrea konfiguriert sind, wird einem untergeordneten Segment zugeordnet, und die Segmente der Kubernetes-Knoten-VMs sind die übergeordneten Elemente des untergeordneten Segments. OVS (Open vSwitch) auf der Kubernetes-Knoten-VM versieht Datenverkehr mit Tags für die korrekte VLAN-ID, bevor die Pakete über die VNIC gesendet werden.

Workflow zum Erstellen einer Verbindung zwischen einem übergeordneten Segment und einem untergeordneten Segment:
  • Erstellen Sie das übergeordnete Segment. Sie können die API oder die Benutzeroberfläche von NSX Manager verwenden.
  • Erstellen Sie das untergeordnete Segment. Sie können die API oder die Benutzeroberfläche von NSX Manager verwenden.
  • Verwenden Sie die API, um eine Verbindungsbindungszuordnung im untergeordneten Segment zu erstellen, indem Sie den übergeordneten Segmentpfad und die VLAN-ID angeben.
Workflow zum Löschen eines untergeordneten Segments:
  • Verwenden Sie die API, um alle vorhandenen Verbindungsbindungszuordnungen des untergeordneten Segments zu löschen.
  • Löschen Sie das untergeordnete Segment. Sie können die API oder die Benutzeroberfläche von NSX Manager verwenden.
Workflow zum Löschen eines übergeordneten Segments:
  • Verwenden Sie die API, um alle vorhandenen Verbindungsbindungszuordnungen zu löschen, die dieses übergeordnete Segment mit seinen untergeordneten Segmenten verbinden.
  • Löschen Sie das übergeordnete Segment. Sie können die API oder die Benutzeroberfläche von NSX Manager verwenden.

API

Die folgenden API-Aufrufe können verwendet werden, um untergeordnete Segmente zu verwalten. Weitere Informationen finden Sie im Handbuch zu NSX-API (navigieren Sie im Navigationsbereich der NSX-Dokumentation auf der linken Seite zum API-Handbuch).

GET /policy/api/v1/infra/segments/{segment-id}/segment-connection-binding-maps
GET /policy/api/v1/orgs/{org-id}/projects/{project-id}/infra/segments/{segment-id}/segment-connection-binding-maps
DELETE /policy/api/v1/infra/segments/{segment-id}/segment-connection-binding-maps/{map-id}
DELETE /policy/api/v1/orgs/{org-id}/projects/{project-id}/infra/segments/{segment-id}/segment-connection-binding-maps/{map-id}
GET /policy/api/v1/infra/segments/{segment-id}/segment-connection-binding-maps/{map-id}
GET /policy/api/v1/orgs/{org-id}/projects/{project-id}/infra/segments/{segment-id}/segment-connection-binding-maps/{map-id}
PATCH /policy/api/v1/infra/segments/{segment-id}/segment-connection-binding-maps/{map-id}
PATCH /policy/api/v1/orgs/{org-id}/projects/{project-id}/infra/segments/{segment-id}/segment-connection-binding-maps/{map-id}
PUT /policy/api/v1/infra/segments/{segment-id}/segment-connection-binding-maps/{map-id}
PUT /policy/api/v1/orgs/{org-id}/projects/{project-id}/infra/segments/{segment-id}/segment-connection-binding-maps/{map-id}
GET /policy/api/v1/infra/tier-1s/{tier-1-id}/segments/{segment-id}/segment-connection-binding-maps
GET /policy/api/v1/orgs/{org-id}/projects/{project-id}/infra/tier-1s/{tier-1-id}/segments/{segment-id}/segment-connection-binding-maps
DELETE /policy/api/v1/infra/tier-1s/{tier-1-id}/segments/{segment-id}/segment-connection-binding-maps/{map-id}
DELETE /policy/api/v1/orgs/{org-id}/projects/{project-id}/infra/tier-1s/{tier-1-id}/segments/{segment-id}/segment-connection-binding-maps/{map-id}
GET /policy/api/v1/infra/tier-1s/{tier-1-id}/segments/{segment-id}/segment-connection-binding-maps/{map-id}
GET /policy/api/v1/orgs/{org-id}/projects/{project-id}/infra/tier-1s/{tier-1-id}/segments/{segment-id}/segment-connection-binding-maps/{map-id}
PATCH /policy/api/v1/infra/tier-1s/{tier-1-id}/segments/{segment-id}/segment-connection-binding-maps/{map-id}
PATCH /policy/api/v1/orgs/{org-id}/projects/{project-id}/infra/tier-1s/{tier-1-id}/segments/{segment-id}/segment-connection-binding-maps/{map-id}
PUT /policy/api/v1/infra/tier-1s/{tier-1-id}/segments/{segment-id}/segment-connection-binding-maps/{map-id}
PUT /policy/api/v1/orgs/{org-id}/projects/{project-id}/infra/tier-1s/{tier-1-id}/segments/{segment-id}/segment-connection-binding-maps/{map-id}

Beim Erstellen einer Verbindungsbindungszuordnung muss die Zuordnungs-ID, die Sie in der PUT-API angeben, eindeutig sein. Beispiel für die Verwendung von PUT /policy/api/v1/infra/segments/{segment-id}/segment-connection-binding-maps/{map-id} zum Erstellen einer Verbindungszuordnung:

API-Anforderung:
PUT https://<nsx-manager>/policy/api/v1/infra/segments/test2/segment-connection-binding-maps/map-id-1
{
    "vlan_traffic_tag": "1002",
    "segment_path": "/infra/segments/openshift-segment"
}
API-Antwort:
{
  "vlan_traffic_tag" : 1002,
  "segment_path" : "/infra/segments/openshift-segment",
  "resource_type" : "SegmentConnectionBindingMap",
  "id" : "map-id-1",
  "display_name" : "map-id-1",
  "path" : "/infra/segments/test2/segment-connection-binding-maps/map-id-1",
  "relative_path" : "map-id-1",
  "parent_path" : "/infra/segments/test2",
  "remote_path" : "",
  "unique_id" : "7ac8c0fb-a0e1-471a-bed6-d15f1b85e0c6",
  "realization_id" : "7ac8c0fb-a0e1-471a-bed6-d15f1b85e0c6",
  "owner_id" : "210584d9-6329-452e-bb01-0133945ab675",
  "marked_for_delete" : false,
  "overridden" : false,
  "_system_owned" : false,
  "_protection" : "NOT_PROTECTED",
  "_create_time" : 1712718210160,
  "_create_user" : "admin",
  "_last_modified_time" : 1712718210160,
  "_last_modified_user" : "admin",
  "_revision" : 0
}

Traceflow

Traceflow unterstützt die folgenden Szenarien im Zusammenhang mit untergeordneten Segmenten:
  • Die Quelle ist ein Container in einem untergeordneten Segment und das Ziel ein Container in einem untergeordneten Segment.
  • Die Quelle ist ein Container in einem untergeordneten Segment und das Ziel ist ein regulärer Port.
  • Die Quelle ist ein übergeordneter Port. Es gibt kein untergeordnetes Segment, da die Antrea-Container innerhalb einer VM ausgeführt werden.

Um einen Traceflow eines Pakets durchzuführen, das durch ein untergeordnetes Segment geleitet wird, müssen Sie die API verwenden. Um einen Traceflow einzurichten, verwenden Sie den API-Aufruf PUT https://<mgr-ip>/policy/api/v1/infra/traceflows/<traceflow-id>. Beispiel:

PUT https://<mgr-ip>/policy/api/v1/infra/traceflows/<traceflow-id>
{
  "segment_port_path": "/infra/segments/parent/ports/default:658c6c45-286f-4a23-832f-a646253b200b",
  "connected_segment_path_as_source": "/infra/segments/child",
  "packet": {
    "eth_header": {
      "src_mac": "00:50:56:ad:28:d5",
      "dst_mac": "00:50:56:ad:c0:a4",
      "eth_type": 2048
    },
    "ip_header": {
      "src_ip": "192.168.100.10",
      "dst_ip": "192.168.100.20",
      "protocol": 1,
      "ttl": 64,
      "flags": 0
    },
    "transport_header": {
      "icmp_echo_request_header": {
        "id": 0,
        "sequence": 0
      }
    },
    "payload": "",
    "resource_type": "FieldsPacketData",
    "frame_size": 128,
    "routed": false,
    "transport_type": "UNICAST"
  },
  "timeout": 10,
  "is_transient": true
}

Beachten Sie, dass der Parameter connected_segment_path_as_source auf das untergeordnete Segment verweist. Wenn dieser Parameter nicht festgelegt ist, durchläuft das Paket nicht das untergeordnete Segment.

Weitere Informationen finden Sie im Handbuch zu NSX-API (navigieren Sie im Navigationsbereich der NSX-Dokumentation auf der linken Seite zum API-Handbuch).

Statistiken zu untergeordneten und übergeordneten Segmenten

Statistiken für ein untergeordnetes Segment enthalten nur Statistiken für VMs, die mit dem Segment verbunden sind. Sie enthalten keine Statistiken für Antrea-Container.

Für ein übergeordnetes Segment enthalten die Ingress-Statistiken Statistiken für Antrea-Container. Die Egress-Statistik enthält keine Statistiken für Antrea-Container.