From 3d6a0814b20360ee086d4c32107e3582cab85a54 Mon Sep 17 00:00:00 2001 From: dfitzmau Date: Wed, 2 Apr 2025 10:49:03 +0100 Subject: [PATCH] DIAGRAMS-503: Documented flat layer 2 diagram in UDN docs --- images/503_OpenShift_UDN_L2_0425.png | Bin 0 -> 71960 bytes modules/nw-udn-l2-l3.adoc | 13 +++++++++---- 2 files changed, 9 insertions(+), 4 deletions(-) create mode 100644 images/503_OpenShift_UDN_L2_0425.png diff --git a/images/503_OpenShift_UDN_L2_0425.png b/images/503_OpenShift_UDN_L2_0425.png new file mode 100644 index 0000000000000000000000000000000000000000..0257d8cc729b5284c69f670bc1a518bc20626ec1 GIT binary patch literal 71960 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 z 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 F{|9?agUJ8@ literal 0 HcmV?d00001 diff --git a/modules/nw-udn-l2-l3.adoc b/modules/nw-udn-l2-l3.adoc index 4117ea664a..daff27389f 100644 --- a/modules/nw-udn-l2-l3.adoc +++ b/modules/nw-udn-l2-l3.adoc @@ -5,16 +5,21 @@ [id="nw-udn-l2-l3_{context}"] = Layer 2 and layer 3 topologies -A layer 2 topology creates a virtual switch that is distributed across all nodes in a cluster. Virtual machines and pods connect to this virtual switch so that all these components can communicate with each other within the same subnet. If you decide not to specify a layer 2 subnet, then you must manually configure IP addresses for each pod in your cluster. When you do not specify a layer 2 subnet, port security is limited to preventing Media Access Control (MAC) spoofing only, and does not include IP spoofing. A layer 2 topology creates a single broadcast domain that can be challenging in large network environments, where the topology might cause a broadcast storm that can degrade network performance. +A flat layer 2 topology creates a virtual switch that is distributed across all nodes in a cluster. Virtual machines and pods connect to this virtual switch so that all these components can communicate with each other within the same subnet. A flat layer 2 topology is useful for live migration of virtual machines across nodes that exist in a cluster. The following diagram shows a flat layer 2 topology with two nodes that use the virtual switch for live migration purposes: -The following diagram shows two nodes that use an UDN with a layer 2 topology to live migrate a pod from `Node 1` to `Node 2`. Each node includes two interfaces: +.A flat layer 2 topology that uses a virtual switch for component communication +image::504_OpenShift_UDN_L2_0325.png[A flat layer 2 topology with a virtual switch so that virtual machines in node-1 to node-2 can communicate with each other] + +If you decide not to specify a layer 2 subnet, then you must manually configure IP addresses for each pod in your cluster. When you do not specify a layer 2 subnet, port security is limited to preventing Media Access Control (MAC) spoofing only, and does not include IP spoofing. A layer 2 topology creates a single broadcast domain that can be challenging in large network environments, where the topology might cause a broadcast storm that can degrade network performance. + +To access more configurable options for your network, you can integrate a layer 2 topology with a user-defined network (UDN). The following diagram shows two nodes that use a UDN with a layer 2 topology that includes pods that exist on each node. Each node includes two interfaces: * A node interface, which is a compute node that connects networking components to the node. * An Open vSwitch (OVS) bridge such as `br-ex`, which creates an layer 2 OVN switch so that pods can communicate with each other and share resources. -An external switch connects these two interfaces, while the gateway or router handles routing traffic between the external switch and the layer 2 OVN switch. Pods in a node can use the UDN to communicate with each other. The layer 2 OVN switch handles node traffic over UDN so that live migrate of a pod from one node to another is possible. +An external switch connects these two interfaces, while the gateway or router handles routing traffic between the external switch and the layer 2 OVN switch. VMs and pods in a node can use the UDN to communicate with each other. The layer 2 OVN switch handles node traffic over a UDN so that live migrate of a VM from one node to another is possible. .A user-defined network (UDN) that uses a layer 2 topology -image::504_OpenShift_UDN_L2_0325.png[A UDN that uses a layer 2 topology for migrating a pod from node-1 to node-2] +image::503_OpenShift_UDN_L2_0425.png[A UDN that uses a layer 2 topology for migrating a VM from node-1 to node-2] A layer 3 topology creates a unique layer 2 segment for each node in a cluster. The layer 3 routing mechanism interconnects these segments so that virtual machines and pods that are hosted on different nodes can communicate with each other. A layer 3 topology can effectively manage large broadcast domains by assigning each domain to a specific node, so that broadcast traffic has a reduced scope. To configure a layer 3 topology, you must configure `cidr` and `hostSubnet` parameters. \ No newline at end of file