BP Ahv Networking
BP Ahv Networking
Copyright
Copyright 2020 Nutanix, Inc.
Nutanix, Inc.
1740 Technology Drive, Suite 150
San Jose, CA 95110
All rights reserved. This product is protected by U.S. and international copyright and intellectual
property laws.
Nutanix is a trademark of Nutanix, Inc. in the United States and/or other jurisdictions. All other
marks and names mentioned herein may be trademarks of their respective companies.
Copyright | 2
AHV Networking
Contents
1. Executive Summary.................................................................................5
2. Introduction.............................................................................................. 6
2.1. Audience.........................................................................................................................6
2.2. Purpose.......................................................................................................................... 6
3
AHV Networking
7. Conclusion..............................................................................................46
Appendix..........................................................................................................................47
AHV Networking Terminology............................................................................................. 47
AHV Networking Best Practices Checklist..........................................................................47
AHV Command Line Tutorial.............................................................................................. 51
AHV Networking Command Examples............................................................................... 54
References...........................................................................................................................56
About the Authors............................................................................................................... 56
About Nutanix...................................................................................................................... 56
List of Figures................................................................................................................ 57
List of Tables.................................................................................................................. 58
4
AHV Networking
1. Executive Summary
The default networking that we describe in the AHV Best Practices Guide covers a wide range of
scenarios that Nutanix administrators encounter. However, for those situations with unique VM
and host networking requirements that are not covered elsewhere, use this advanced networking
guide.
The default AHV networking configuration provides a highly available network for user VMs
and the Nutanix Controller VM (CVM). This default configuration includes simple control and
segmentation of user VM traffic using VLANs, as well as IP address management. Network
visualization for AHV available in Prism also provides a view of the guest and host network
configuration for troubleshooting and verification.
This advanced guide is useful when the defaults don't match customer requirements.
Configuration options include host networking high availability and load balancing mechanisms
beyond the default active-backup, tagged VLAN segmentation for host and CVM traffic, and
detailed command line configuration techniques for situations where a GUI may not be sufficient.
The tools we present here enable you to configure AHV to meet the most demanding network
requirements.
1. Executive Summary | 5
AHV Networking
2. Introduction
2.1. Audience
This best practices guide is part of the Nutanix Solutions Library. We wrote it for AHV
administrators configuring advanced host and VM networking. Readers of this document should
already be familiar with the AHV Best Practices Guide, which covers basic networking.
2.2. Purpose
In this document, we cover the following topics:
• Open vSwitch in AHV.
• VLANs for hosts, CVMs, and user VMs.
• IP address management (IPAM).
• Network adapter teaming within bonds.
• Network adapter load balancing.
• Command line overview and tips.
Version
Published Notes
Number
1.0 February 2017 Original publication.
Added jumbo frame configuration, bond name
1.1 February 2018 recommendation, and considerations for staging
installation with flat switch.
Updated product naming and recommendations
1.2 October 2018
regarding the balance-slb bond mode.
Updated the Open vSwitch Bridge and Bond
1.3 December 2018
Recommendations section.
Added production workflow instructions, bridge
2.0 March 2020
chaining, and VM networking enhancements.
2. Introduction | 6
AHV Networking
Version
Published Notes
Number
Updated the Nutanix overview, jumbo frame
2.1 June 2020
recommendations, and terminology.
2. Introduction | 7
AHV Networking
4.2. Bridges
A bridge acts as a virtual switch to manage traffic between physical and virtual network
interfaces. The default AHV configuration includes an OVS bridge called br0 and a native Linux
bridge called virbr0. The virbr0 Linux bridge carries management and storage communication
between the CVM and AHV host. All other storage, host, and VM network traffic flows through
the br0 OVS bridge by default. The AHV host, VMs, and physical interfaces use "ports" for
connectivity to the bridge.
4.3. Ports
Ports are logical constructs created in a bridge that represent connectivity to the virtual switch.
Nutanix uses several port types, including internal, tap, VXLAN, and bond.
• An internal port—with the same name as the default bridge (br0)—acts as the AHV host
management interface.
• Tap ports connect VM virtual NICs to the bridge.
• VXLAN ports are only used for the IP address management (IPAM) functionality provided by
AHV.
• Bonded ports provide NIC teaming for the physical interfaces of the AHV host.
4.4. Bonds
Bonded ports aggregate the physical interfaces on the AHV host for fault tolerance and load
balancing. By default, the system creates a bond named br0-up in bridge br0 containing all
physical interfaces. Changes to the default bond (br0-up) using manage_ovs commands can
rename it to bond0 when using older examples, so keep in mind that your system may be named
differently than the diagram below. Nutanix recommends using the name br0-up to quickly
identify this interface as the bridge br0 uplink. Using this naming scheme, you can also easily
distinguish uplinks for additional bridges from each other.
OVS bonds allow for several load-balancing modes to distribute traffic, including active-backup,
balance-slb, and balance-tcp. Administrators can also activate LACP for a bond to negotiate link
aggregation with a physical switch. During installation, the bond_mode defaults to active-backup,
which is the configuration we recommend for ease of use.
The following diagram illustrates the networking configuration of a single host immediately after
imaging. The best practice is to use only the 10 Gb or faster NICs and to disconnect the 1 Gb
NICs if you do not need them. For additional information on bonds, please refer to the Best
Practices section below.
Note: Only utilize NICs of the same speed within the same bond.
Connections from the server to the physical switch use 10 GbE or faster networking. You can
establish connections between the switches with 40 GbE or faster direct links, or through a leaf-
spine network topology (not shown). The IPMI management interface of the Nutanix node also
connects to the out-of-band management network, which may connect to the production network.
Each node always has a single connection to the management network, but we have omitted this
element from further images in this document for clarity and simplicity.
For more information on the physical network recommendations for a Nutanix cluster, refer to the
Physical Networking Best Practices Guide.
brX.local. Between these two bridges are br.microseg for microsegmentation and br.nf for
directing traffic to network function VMs. The br.mx and br.dmx bridges allow multiple uplink
bonds in a single AHV host (such as br0-up and br1-up) to use these advanced networking
features.
Traffic from VMs enters the bridge chain at brX.local and flows through the chain to brX, which
makes local switching decisions. The brX bridge either forwards the traffic to the physical network
or sends it back through the chain to reach another VM. Traffic from the physical network takes
the opposite path, from brX all the way to brX.local. All VM traffic must flow through the bridge
chain, which applies microsegmentation and network functions.
The management of the bridge chain is automated, and no user configuration of the chain is
required or supported. Because there are no configurable components, we don’t include this
bridge chain, which exists between the physical interfaces and the user VMs, in other diagrams.
By default, all VM virtual NICs are created in “access” mode on br0, which permits only one
VLAN per virtual network. However, you can choose to configure a virtual NIC in “trunked” mode
using the aCLI instead, allowing multiple VLANs on a single VM NIC for network-aware user
VMs. For more information on virtual NIC modes or multiple bridges, refer to the Best Practices
section below.
Figure 5: IPAM
Administrators can use AHV with IPAM to deliver a complete virtualization deployment, including
network address management, from the Prism interface. To avoid address overlap, be sure to
work with your network team to reserve a range of addresses for VMs before enabling the IPAM
feature.
Note: When using multiple bridges, only a single bridge and VLAN combination can
be a managed network for each VLAN. For example, if br0 vlan100 is a managed
network, then br1 vlan100 cannot be a managed network.
AHV assigns an IP address from the address pool when creating a managed VM NIC; the
address releases back to the pool when the VM NIC or VM is deleted. With a managed network,
AHV intercepts DHCP requests from user VMs and bypasses traditional network-based DHCP
servers. AHV uses the last network IP address in the assigned network for the managed network
DHCP server unless you select Override DHCP server when creating the network.
You can see individual VM network details under the Table view on the VM page by selecting the
desired VM and choosing Update, as shown in the figure below.
Tip: For better security and a single point of management, avoid connecting directly
to the AHV hosts. All AHV host operations can be performed from the CVM by
connecting to 192.168.5.1, the internal management address of the AHV host.
We strongly recommend performing changes on one node (AHV host and CVM) at a time, after
making sure that the cluster can tolerate a single node outage. To prevent network and storage
disruption, place the AHV host and CVM of each node in maintenance mode before making
network changes. While in maintenance mode, the system migrates VMs off the AHV host and
directs storage services to another CVM.
Follow the steps in this section on one node at a time to make network changes to a Nutanix
cluster that is connected to a production network.
• Use SSH to connect to the first CVM you want to update. Check its name and IP to make sure
you are connected to the correct CVM. Verify failure tolerance, and do not proceed if cluster
cannot tolerate at least one node failure.
• Verify that the target AHV host can enter maintenance mode.
nutanix@CVM$ acli host.enter_maintenance_mode_check <host ip>
• Find the <host ID> in the output of the command ncli host list.
nutanix@CVM$ ncli host list
Id : 00058977-c18c-af17-0000-000000006f89::2872
?- "2872" is the host ID
Uuid : ddc9d93b-68e0-4220-85f9-63b73d08f0ff
...
• Enable maintenance mode for the CVM on the target AHV host. You may skip this step if the
CVM services are not running, or if the cluster state is stopped.
nutanix@CVM$ ncli host edit id=<host ID> enable-maintenance-mode=true
• Because network changes can disrupt host connectivity, use IPMI to connect to the host
console and perform the desired network configuration changes. Once you have changed the
configuration, ping the default gateway and another Nutanix node to verify connectivity.
• After all tests have completed successfully, remove the CVM and AHV host from maintenance
mode.
• From a different CVM, run the following command to take the affected CVM out of
maintenance mode.
nutanix@cvm$ ncli host edit id=<host ID> enable-maintenance-mode=false
• Exit host maintenance mode to restore VM locality, migrating VMs back to their original AHV
host.
nutanix@cvm$ acli host.exit_maintenance_mode <host ip>
Move to the next node in the Nutanix cluster and repeat the previous steps to enter maintenance
mode, make the desired changes, and exit maintenance mode. Repeat this process until you
have made the changes on all hosts in the cluster.
Note: The order in which flags and actions pass to manage_ovs is critical. Flags
must come before the action. Any flag passed after an action is not parsed.
nutanix@CVM$ manage_ovs --helpshort
USAGE: manage_ovs [flags] <action>
To list all physical interfaces on all nodes, use the show_interfaces command. The
show_uplinks command returns the details of a bonded adapter for a single bridge.
nutanix@CVM$ allssh "manage_ovs show_interfaces"
nutanix@CVM$ allssh "manage_ovs --bridge_name <bridge> show_uplinks"
Note: If you do not enter a bridge_name, the command runs on the default bridge,
br0.
nutanix@CVM$ manage_ovs --bridge_name <bridge> --interfaces <interfaces> update_uplinks
nutanix@CVM$ manage_ovs --bridge_name <bridge> --interfaces <interfaces> --require_link=false
update_uplinks
The manage_ovs update_uplinks command deletes an existing bond and creates it with the new
parameters when a change to bond members or load balancing algorithm is required. Unless you
specify the correct bond mode parameter, using manage_ovs to update uplinks deletes the bond,
then recreates it with the default load balancing configuration. If you are using active-backup
load balancing, update_uplinks can cause a short network interruption. If you are using balance-
slb or balance-tcp (LACP) load balancing and do not specify that correct bond mode parameter,
update_uplinks resets the configuration to active-passive. At this point, the host stops responding
to keepalives and network links relying on LACP go down.
You can use the manage_ovs command for host uplink configuration in various common
scenarios, including initial cluster deployment, cluster expansion, reimaging a host during boot
disk replacement, or general host network troubleshooting.
Note: With AHV clusters running versions 5.10.x prior to 5.10.4, using manage_ovs
to make configuration changes on an OVS bridge configured with a single uplink may
result in a network loop. If the AHV node is configured with a single interface in the
bridge, upgrade AOS to 5.10.4 or later before making any changes. If you have a
single interface in the bridge, engage Nutanix Support if you cannot upgrade AOS
and must change the bond configuration.
• Exit maintenance mode after completing the network changes, then repeat these steps on the
next Compute Only node.
Tip: Nutanix recommends that each bond always have at least two interfaces for
high availability.
Keep the following recommendations in mind for all bond scenarios to prevent undesired
behavior and maintain NIC compatibility.
• Do not mix NIC models from different vendors in the same bond.
• Do not mix NICs of different speeds in the same bond.
6.1. Scenario 1: 2x 10 Gb
The most common network configuration is to utilize the 10 Gb or faster interfaces within the
default bond for all networking traffic. The CVM and all user VMs use the 10 Gb interfaces. In
this configuration, we don’t use the 1 Gb interfaces. Note that this is different from the factory
configuration, because we have removed the 1 Gb interfaces from the OVS bond. For simplicity,
we have not included the IPMI connection in these diagrams.
This scenario uses two physical upstream switches, and each 10 Gb interface within the
bond plugs into a separate physical switch for high availability. Within the bond, only one
physical interface is active when using the default active-backup load balancing mode. Nutanix
recommends using active-backup because it is easy to configure, works immediately after install,
and requires no upstream switch configuration. See the Load Balancing within Bond Interfaces
section below for more information and alternate configurations.
Remove NICs that are not in use from the default bond, especially when they are of different
speeds. To do so, perform the following manage_ovs action for each Nutanix node in the cluster:
• From the CVM, remove eth0 and eth1 from the default bridge br0 on all CVMs by specifying
that only eth2 and eth3 remain in the bridge. The 10g shortcut lets you include all 10 Gb
interfaces without having to specify the interfaces explicitly by name. Shortcuts also exist for
25 Gb (25g) and 40 Gb (40g) interfaces. Some Nutanix models have different ethX names for
1 Gb and 10 Gb links, so these shortcuts are helpful in multiple ways.
Note: Previous versions of this guide used the bond name bond0 instead of br0-
up. We recommend using br0-up because it identifies the associated bridge and the
uplink function of this bond.
Run the following command on each Nutanix node in the cluster to achieve the configuration
shown in the previous figure:
nutanix@CVM$ manage_ovs --bridge_name br0 --bond_name br0-up --interfaces 10g update_uplinks
If you want to use the 1 Gb physical interfaces, separate the 10 Gb and 1 Gb interfaces into
different bridges and bonds to ensure that CVM traffic always traverses the fastest possible link.
Here, we’ve grouped the 10 Gb interfaces (eth2 and eth3) into br0-up and dedicated them to the
CVM and User VM1. We’ve grouped the 1 Gb interfaces into br1-up; only a second link on User
VM2 uses br1. Bonds br0-up and br1-up are added into br0 and br1, respectively.
In this configuration, the CVM and user VMs use the 10 Gb interfaces on bridge br0. Bridge
br1 is available for VMs that require physical network separation from the CVM and VMs on
br0. Devices eth0 and eth1 could alternatively plug into a different pair of upstream switches for
further physical traffic separation as shown.
Run the following commands on each Nutanix node in the cluster to achieve the configuration
shown in the previous figure:
• In AOS 5.5 or later, manage_ovs handles bridge creation. On each CVM, add bridge br1.
Bridge names must not exceed six characters. We suggest using the name br1.
Note: When adding a bridge, ensure that the bridge is created on every host in the
cluster. Failure to add bridges to all hosts can lead to VM migration errors.
nutanix@CVM$ manage_ovs --bridge_name br1 create_single_bridge
• From the CVM, remove eth0 and eth1 from the default bridge br0 on all CVMs. Run the
following show commands to make sure that all interfaces are in a good state before
performing the update.
nutanix@CVM$ allssh "manage_ovs show_interfaces"
nutanix@CVM$ allssh "manage_ovs --bridge_name br0 show_uplinks"
The output from these show commands should verify that the 10 Gb and 1 Gb interfaces have
connectivity to the upstream switches—just look for the columns labeled link and speed.
The following sample output of the manage_ovs show_interfaces command verifies connectivity:
nutanix@CVM$ manage_ovs show_interfaces
name mode link speed
eth0 1000 True 1000
eth1 1000 True 1000
eth2 10000 True 10000
eth3 10000 True 10000
The following sample output of the manage_ovs show_uplinks command verifies bond
configuration before making the change.
nutanix@CVM$ manage_ovs show_uplinks
Bridge: br0
Bond: br0-up
bond_mode: active-backup
interfaces: eth3 eth2 eth1 eth0
lacp: off
lacp-fallback: true
lacp_speed: off
Once you’ve entered maintenance mode and confirmed connectivity, update the bond to include
only 10 Gb interfaces. This command removes all other interfaces from the bond.
nutanix@CVM$ manage_ovs --bridge_name br0 --bond_name br0-up --interfaces 10g update_uplinks
Add the eth0 and eth1 uplinks to br1 in the CVM using the 1g interface shortcut.
Note: You can use the --require_link=false flag to create the bond even if the all 1
Gb adapters are not connected.
nutanix@CVM$ manage_ovs --bridge_name br1 --bond_name br1-up --interfaces 1g --
require_link=false update_uplinks
Exit maintenance mode and repeat the previous update_uplinks steps for every host in the
cluster.
For example:
nutanix@CVM$ acli net.create br1_production vswitch_name=br1 vlan=1001
nutanix@CVM$ acli net.create br2_production vswitch_name=br2 vlan=2001
A bond distributes traffic between multiple physical interfaces according to the bond mode.
Maximum
Maximum Host
Bond Mode Use Case VM NIC
Throughput*
Throughput*
Recommended. Default
active-backup configuration, which transmits all 10 Gb 10 Gb
traffic over a single active adapter.
Has caveats for multicast traffic.
Increases host bandwidth utilization
beyond a single 10 Gb adapter.
balance-slb 10 Gb 20 Gb
Places each VM NIC on a single
adapter at a time. Do not use with
link aggregation such as LACP.
LACP and link aggregation required.
Increases host and VM bandwidth
utilization beyond a single 10 Gb
LACP and balance-tcp adapter by balancing VM NIC TCP 20 Gb 20 Gb
and UDP sessions among adapters.
Also used when network switches
require LACP negotiation.
* Assuming 2x 10 Gb adapters. Simplex speed.
Active-Backup
The recommended and default bond mode is active-backup, where one interface in the bond is
randomly selected at boot to carry traffic and other interfaces in the bond are used only when the
active link fails. Active-backup is the simplest bond mode, easily allowing connections to multiple
upstream switches without additional switch configuration. The limitation is that traffic from all
VMs uses only the single active link within the bond at one time. All backup links remain unused
until the active link fails. In a system with dual 10 Gb adapters, the maximum throughput of all
VMs running on a Nutanix node is limited to 10 Gbps, or the speed of a single link.
Active-backup mode is enabled by default, but you can also configure it with the following ovs-
vsctl command on the CVM:
nutanix@CVM$ ssh [email protected] "ovs-vsctl set port br0-up bond_mode=active-backup"
In the active-backup configuration, this command returns a variation of the following output,
where eth2 and eth3 are marked as interfaces used in the bond br0-up.
Bridge: br0
Bond: br0-up
bond_mode: active-backup
interfaces: eth3 eth2
lacp: off
lacp-fallback: false
lacp_speed: slow
For more detailed bond information such as the currently active adapter, use the following ovs-
appctl command on the CVM:
nutanix@CVM$ ssh [email protected] "ovs-appctl bond/show"
Balance-SLB
Nutanix does not recommend balance-slb due to the multicast traffic caveats noted later in this
section. To combine the bandwidth of multiple links, consider using link aggregation with LACP
and balance-tcp instead of balance-slb. Do not use balance-slb unless you verify the multicast
limitations described here are not present in your network.
Note: Do not use IGMP snooping on physical switches connected to Nutanix servers
using balance-slb. Balance-slb forwards inbound multicast traffic on only a single
active adapter and discards multicast traffic from other adapters. Switches with IGMP
snooping may discard traffic to the active adapter and only send it to the backup
adapters. This mismatch leads to unpredictable multicast traffic behavior. Disable
IGMP snooping or configure static IGMP groups for all switch ports connected to
Nutanix servers using balance-slb. IGMP snooping is often enabled by default on
physical switches.
The balance-slb bond mode in OVS takes advantage of all links in a bond and uses measured
traffic load to rebalance VM traffic from highly used to less used interfaces. When the
configurable bond-rebalance interval expires, OVS uses the measured load for each interface
and the load for each source MAC hash to spread traffic evenly among links in the bond. Traffic
from some source MAC hashes may move to a less active link to more evenly balance bond
member utilization. Perfectly even balancing may not always be possible, depending on the
number of source MAC hashes and their stream sizes.
Each individual VM NIC uses only a single bond member interface at a time, but a hashing
algorithm distributes multiple VM NICs (multiple source MAC addresses) across bond member
interfaces. As a result, it is possible for a Nutanix AHV node with two 10 Gb interfaces to use up
to 20 Gbps of network throughput, while individual VMs have a maximum throughput of 10 Gbps,
the speed of a single physical interface.
The default rebalance interval is 10 seconds, but Nutanix recommends setting this interval to
30 seconds to avoid excessive movement of source MAC address hashes between upstream
switches. Nutanix has tested this configuration using two separate upstream switches with AHV.
No additional configuration (such as link aggregation) is required on the switch side, as long as
the upstream switches are interconnected physically or virtually and both uplinks allow the same
VLANs.
Note: Do not use link aggregation technologies such as LACP with balance-slb. The
balance-slb algorithm assumes that upstream switch links are independent layer-2
interfaces and handles broadcast, unknown, and multicast (BUM) traffic accordingly,
selectively listening for this traffic on only a single active adapter in the bond.
After entering maintenance mode for the desired host, configure the balance-slb algorithm for the
bond with the following commands:
nutanix@CVM$ ssh [email protected] "ovs-vsctl set port br0-up bond_mode=balance-slb"
nutanix@CVM$ ssh [email protected] "ovs-vsctl set port br0-up other_config:bond-rebalance-
interval=30000"
Exit maintenance mode for this node and repeat this configuration on all nodes in the cluster.
Verify the proper bond mode on each CVM with the following command:
nutanix@CVM$ manage_ovs show_uplinks
Bridge: br0
Bond: br0-up
bond_mode: balance-slb
interfaces: eth3 eth2
lacp: off
lacp-fallback: false
lacp_speed: slow
Note: Nutanix recommends enabling LACP on the AHV host with fallback to active-
backup. Then configure the connected upstream switches. Different switch vendors
may refer to link aggregation as port channel or LAG. Using multiple upstream
switches may require additional configuration such as a multichassis link aggregation
group (MLAG) or virtual PortChannel (vPC). Configure switches to fall back to
active-backup mode in case LACP negotiation fails (sometimes called fallback or
no suspend-individual). This switch setting assists with node imaging and initial
configuration where LACP may not yet be available on the host.
With link aggregation negotiated by LACP, multiple links to separate physical switches appear
as a single layer-2 link. A traffic-hashing algorithm such as balance-tcp can split traffic between
multiple links in an active-active fashion. Because the uplinks appear as a single L2 link, the
algorithm can balance traffic among bond members without any regard for switch MAC address
tables. Nutanix recommends using balance-tcp when LACP and link aggregation are configured,
because each TCP or UDP stream from a single VM can potentially use a different uplink in
this configuration. The balance-tcp algorithm hashes traffic streams by source IP, destination IP,
source port, and destination port. With link aggregation, LACP, and balance-tcp, a single user VM
with multiple TCP or UDP streams could use up to 20 Gbps of bandwidth in an AHV node with
two 10 Gb adapters.
After entering maintenance mode for the desired host, configure link aggregation with LACP and
balance-tcp using the commands below.
Note: Upstream physical switch LACP settings such as timers should match the
AHV host settings for configuration consistency.
If upstream LACP negotiation fails, the default AHV host configuration disables the bond, thus
blocking all traffic. The following command allows fallback to active-backup bond mode in the
AHV host in the event of LACP negotiation failure:
nutanix@CVM$ ssh [email protected] "ovs-vsctl set port br0-up other_config:lacp-fallback-
ab=true"
In the AHV host and on most switches, the default OVS LACP timer configuration is slow, or
30 seconds. This value—which is independent of the switch timer setting—determines how
frequently the AHV host requests LACPDUs from the connected physical switch. The fast setting
(1 second) requests LACPDUs from the connected physical switch every second, thereby helping
to detect interface failures more quickly. Failure to receive three LACPDUs—in other words,
after 3 seconds with the fast setting—shuts down the link within the bond. Nutanix recommends
setting lacp-time to fast on the AHV host and physical switch to decrease link failure detection
time from 90 seconds to 3 seconds.
nutanix@CVM$ ssh [email protected] "ovs-vsctl set port br0-up other_config:lacp-time=fast"
Next, enable LACP negotiation and set the hash algorithm to balance-tcp.
nutanix@CVM$ ssh [email protected] "ovs-vsctl set port br0-up lacp=active"
nutanix@CVM$ ssh [email protected] "ovs-vsctl set port br0-up bond_mode=balance-tcp"
Enable LACP on the upstream physical switches for this AHV host with matching timer and load
balancing settings. Confirm LACP negotiation using ovs-appctl commands, looking for the word
"negotiated" in the status lines.
nutanix@CVM$ ssh [email protected] "ovs-appctl bond/show br0-up"
nutanix@CVM$ ssh [email protected] "ovs-appctl lacp/show br0-up"
Exit maintenance mode and repeat the preceding steps for each node and every connected
switch port one node at a time, until you have configured the entire cluster and all connected
switch ports.
After entering maintenance mode on the desired host, configure a bonding mode that does not
require LACP (such as active-backup).
nutanix@CVM$ ssh [email protected] "ovs-vsctl set port br0-up bond_mode=active-backup"
Exit maintenance mode and repeat the preceding steps for each node and connected switch port
one node at a time, until you have configured the entire cluster and all connected switch ports.
Note: All Controller VMs and hypervisor hosts must be on the same subnet and
broadcast domain. No systems other than the CVMs and hypervisor hosts should be
on this network, which should be isolated and protected.
Figure 14: Default Untagged VLAN for CVM and AHV Host
The setup depicted in the previous figure works well for situations where the switch administrator
can set the CVM and AHV VLAN to untagged. However, if you do not want to send untagged
traffic to the AHV host and CVM, or if security policy doesn’t allow this configuration, you can add
a VLAN tag to the host and the CVM with the procedure that follows the next image.
Note: Ensure that IPMI console access is available for recovery before starting this
configuration.
• After entering maintenance mode on the target host, configure VLAN tags on the AHV host.
nutanix@CVM$ ssh [email protected] "ovs-vsctl set port br0 tag=10"
nutanix@CVM$ ssh [email protected] "ovs-vsctl list port br0"
Exit maintenance mode and repeat the preceding steps on every node to configure the entire
cluster.
Exit maintenance mode and repeat the previous steps on every node to configure the entire
cluster.
Tip: From AOS 5.10 onward, it is no longer necessary or recommended to turn off
the VM to change the network.
Perform the following steps to change the VLAN tag of VM NIC without deleting and recreating
the vNIC.
• If you are running a version of AOS prior to 5.10, turn off the VM. Otherwise, leave the VM on.
• Create a new network with a different VLAN ID that you want to assign to the VM NIC.
• Run the following command on any CVM.
nutanix@cvm$ acli vm.nic_update <VM_name> <NIC MAC address> network=<new network>
• Trunked
• Direct
Access mode is the default for VM NICs, where a single VLAN travels to and from the VM as
untagged but is encapsulated with the appropriate VLAN tag on the physical NIC. VM NICs in
trunked mode allow multiple tagged VLANs and a single untagged VLAN on a single NIC for VMs
that are VLAN aware. A NIC in trunked mode can only be added via the aCLI. It is not possible
to distinguish between access and trunked NIC modes in Prism UI. Direct mode NICs connect to
brX and bypass the bridge chain; do not use them unless advised by Nutanix support to do so.
Run following command on any CVM in cluster to add a new trunked NIC:
nutanix@CVM~$ acli vm.nic_create <vm name> network=<network name> trunked_networks=<comma
separated list of allowed VLAN IDs> vlan_mode=kTrunked
The native VLAN for the trunked NIC is the VLAN assigned to the network specified in the
network parameter. Additional tagged VLANs are designated by the trunked_networks
parameter.Run the following command on any CVM in the cluster to verify the VM NIC mode:
nutanix@CVM~$ acli vm.get <vm name>
Sample output:
nutanix@CVM~$ acli vm.get testvm
testvm {
config {
...
nic_list {
ip_address: "X.X.X.X"
mac_addr: "50:6b:8d:8a:46:f7"
network_name: "network"
network_type: "kNativeNetwork"
network_uuid: "6d8f54bb-4b96-4f3c-a844-63ea477c27e1"
trunked_networks: 3 <--- list of allowed VLANs
trunked_networks: 4
trunked_networks: 5
type: "kNormalNic"
uuid: "9158d7da-8a8a-44c8-a23a-fe88aa5f33b0"
vlan_mode: "kTrunked" <--- mode
}
...
}
...
}
To change the VM NIC’s mode from Access to Trunked, use the command acli vm.get <vm
name> to find its MAC address. Using this MAC address, run the following command on any
CVM in the cluster:
nutanix@CVM~$ acli vm.nic_update <vm name> <vm nic mac address> trunked_networks=<comma
separated list of allowed VLAN IDs> update_vlan_trunk_info=true
To change the mode of a VM NIC from trunked to access, find its MAC address in the output from
the acli vm.get <vm name> command and run the following command on any CVM in the cluster:
nutanix@CVM~$ acli vm.nic_update <vm name> <vm nic mac address> vlan_mode=kAccess
update_vlan_trunk_info=true
From AOS 5.11 onward, you can also separate iSCSI traffic for Nutanix Volumes onto a
dedicated virtual network interface on the CVMs using the Create New Interface dialog. The new
iSCSI virtual network interface can use a shared or dedicated bridge. Ensure that the selected
bridge uses multiple redundant uplinks.
choose to use jumbo frames on hypervisor hosts, be sure to enable them end to end in the
desired network and consider both the physical and virtual network infrastructure impacted by the
change.
7. Conclusion
Nutanix recommends using the default AHV networking settings, configured via the Prism GUI,
for most Nutanix deployments. But when your requirements demand specific configuration
outside the defaults, this advanced networking guide provides detailed CLI configuration
examples that can help.
Administrators can use the Nutanix CLI to configure advanced networking features on all
hosts. VLAN trunking for user VMs allows a single VM NIC to pass traffic on multiple VLANs for
network-intensive applications. You can apply VLAN tags to the AHV host and CVM in situations
that require all traffic to be tagged. Grouping host adapters in different ways can provide physical
traffic isolation or allow advanced load balancing and link aggregation to provide maximum
throughput and redundancy for VMs and hosts.
With these advanced networking techniques, administrators can configure a Nutanix system with
AHV to meet the demanding requirements of any VM or application.
For feedback or questions, contact us using the Nutanix NEXT Community forums.
7. Conclusion | 46
AHV Networking
Appendix
Appendix | 47
AHV Networking
⁃ Do not use manage_ovs to make network changes once you have used Prism uplink
configuration.
⁃ Use the allssh and hostssh shortcuts only with view and show commands. Use extreme
caution with commands that make configuration changes, as these shortcuts execute them
on every CVM or AHV host. Running a disruptive command on all hosts risks disconnecting
all hosts. When making network changes, only use the allssh or hostssh shortcuts in a
staging environment.
⁃ Ensure that IPMI console connectivity is available and place the host and CVM in
maintenance mode before making any host networking changes.
⁃ Connect to a CVM instead of to the AHV hosts when using SSH. Use the hostssh or
192.168.5.1 shortcut for any AHV host operation.
⁃ For high availability, connect to the cluster Virtual IP (VIP) for cluster-wide commands
entered in the aCLI rather than to a single CVM.
⁃ Use the --host shortcut to configure networking for Compute Only nodes.
• Open vSwitch
⁃ Do not modify the OpenFlow tables associated with any OVS bridge.
⁃ Although it is possible to set QoS policies and other network configuration on the VM tap
interfaces manually (using the ovs-vsctl command), we do not recommend or support it.
Policies do not persist across VM power cycles or migrations between hosts.
⁃ Do not delete, rename, or modify the OVS bridge br0 or the bridge chain.
⁃ Do not modify the native Linux bridge virbr0.
• OVS bonds
⁃ Include at least two physical interfaces in every bond.
⁃ Aggregate the 10 Gb or faster interfaces on the physical host to an OVS bond named br0-
up on the default OVS bridge br0 and trunk VLANs to these interfaces on the physical
switch.
⁃ Use active-backup load balancing unless you have a specific need for LACP with balance-
tcp.
⁃ Create a separate bond and bridge for the connected 1 Gb interfaces, or remove them from
the primary bond br0-up.
⁃ Do not mix NIC models from different vendors in the same bond.
⁃ Do not mix NICs of different speeds in the same bond.
⁃ If required, connect the 1 Gb interfaces to different physical switches than those connecting
to the 10 Gb or faster to provide physical network separation for user VMs.
Appendix | 48
AHV Networking
⁃ Use LACP with balance-tcp only if user VMs require link aggregation for higher speed or
better fault tolerance. Ensure that you have completed LACP configuration on the physical
switches after enabling LACP on AHV.
⁃ Do not use the balance-tcp algorithm without upstream switch link aggregation such as
LACP.
⁃ Do not use the balance-slb algorithm if the physical switches use IGMP snooping and
pruning.
⁃ Do not use the balance-slb algorithm with link aggregation such as LACP.
⁃ Do not use static link aggregation such as etherchannel with AHV.
• Physical network layout
⁃ Use redundant top-of-rack switches in a leaf-spine architecture. This simple, flat network
design is well suited for a highly distributed, shared-nothing compute and storage
architecture.
⁃ Connect all the nodes that belong to a given cluster to the same layer-2 network segment.
⁃ If you need more east-west traffic capacity, add spine switches or uplinks between the leaf
and spine.
⁃ Use redundant 40 Gbps (or faster) connections to the spine to ensure adequate bandwidth
between upstream switches.
• Upstream physical switch specifications
⁃ Connect the 10 Gb or faster uplink ports on the AHV node to switch ports that are
nonblocking datacenter-class switches that provide line-rate traffic throughput.
⁃ Use an Ethernet switch that has a low-latency, cut-through design, and that provides
predictable, consistent traffic latency regardless of packet size, traffic pattern, or the
features enabled on the 10 Gb interfaces. Port-to-port latency should be no higher than two
microseconds.
⁃ Use fast-convergence technologies (such as Cisco PortFast) on switch ports that are
connected to the AHV host.
⁃ To prevent packet loss from oversubscription, avoid switches that use a shared port-buffer
architecture.
• Switch and host VLANs
⁃ Keep the CVM and AHV host in the same VLAN. By default, the CVM and the hypervisor
are placed on the native untagged VLAN configured on the upstream physical switch.
⁃ Configure switch ports connected to AHV as VLAN trunk ports.
Appendix | 49
AHV Networking
⁃ Configure a dedicated native untagged VLAN other than 1 on switch ports facing AHV
hosts to carry CVM and AHV host traffic.
• User VM VLANs
⁃ Configure user VM network VLANs on br0 using the Prism GUI.
⁃ Use VLANs other than the dedicated CVM and AHV VLAN.
⁃ Use the aCLI to add user VM network VLANs for additional bridges. Include the bridge
name in the network name for easy bridge identification.
⁃ Use VM NIC VLAN trunking only in cases where user VMs require multiple VLANs on the
same NIC. In all other cases, add a new VM NIC with a single VLAN in access mode to
bring new VLANs to user VMs.
⁃ Do not use direct mode NICs unless Nutanix Support directs you to do so.
• CVM network configuration
⁃ Do not remove the CVM from either the OVS bridge br0 or the native Linux bridge virbr0.
⁃ If required for security, add a dedicated CVM backplane VLAN with a nonroutable subnet to
separate CVM storage backplane traffic from CVM management traffic.
⁃ Do not use backplane segmentation or additional service segmentation unless separation
of backplane or storage traffic is a mandatory security requirement.
⁃ If the network for the backplane or additional services is connected to a bridge other than
br0, ensure that this bridge has redundant uplinks with fault tolerant load balancing.
• Jumbo frames
⁃ Nutanix does not support configuring the MTU on a CVM's network interfaces to higher
values.
⁃ If you choose to use jumbo frames on hypervisor hosts, be sure to enable them end to end
in the desired network and consider both the physical and virtual network infrastructure
impacted by the change.
• IP address management
⁃ Coordinate the configuration of IP address pools to avoid address overlap with existing
network DHCP pools.
⁃ Confirm IP address availability with the network administrator before configuring an IPAM
address pool in AHV.
• IPMI ports
Appendix | 50
AHV Networking
⁃ Do not allow multiple VLANs on switch ports that connect to the IPMI interface. For
management simplicity, only configure the IPMI switch ports as access ports in a single
VLAN.
CLI shortcuts exist to make cluster management a bit easier. Often, you need to execute a
command on all CVMs, or on all AHV hosts, rather than on just a single host. It would be tedious
to log on to every system and enter the same command on each of them, especially in a large
cluster. That's where the allssh and hostssh shortcuts come in. allssh takes a given command
entered on the CVM BASH CLI and executes that command on every CVM in the cluster.
Appendix | 51
AHV Networking
hostssh works similarly, taking a command entered on the CVM BASH CLI and executing that
command on every AHV host in the cluster, as shown in the previous figure.
To streamline the management of CVMs and AHV hosts, the SSH shortcut connects a single
CVM directly to the local AHV host. From any single CVM, you can use SSH to connect to the
AHV host’s local address at IP address 192.168.5.1. Similarly, any AHV host can SSH to the
local CVM using the static IP address 192.168.5.254. Because the address 192.168.5.2 on a
CVM is used for dynamic high availability purposes in the AHV host, it may not always direct to
the local CVM. This SSH connection uses the internal Linux bridge virbr0.
Let's take a look at a few examples to demonstrate the usefulness of these commands.
Example 1: allssh
Imagine that we need to determine which network interfaces are plugged in on all nodes in the
cluster, and the link speed of each interface. We could use manage_ovs show_interfaces at
each CVM, but instead let's use the allssh shortcut. First, SSH into any CVM in the cluster as
the nutanix user, then execute the command allssh "manage_ovs show_interfaces" at the CVM
BASH shell:
nutanix@NTNX-A-CVM:~$ allssh "manage_ovs show_interfaces"
In the sample output below, we've truncated the results after the second node to save space.
Executing manage_ovs show_interfaces on the cluster
================== a.b.c.d =================
name mode link speed
eth0 1000 True 1000
eth1 1000 True 1000
eth2 10000 True 10000
eth3 10000 True 10000
Connection to a.b.c.d closed.
================== e.f.g.h =================
name mode link speed
eth0 1000 True 1000
eth1 1000 True 1000
eth2 10000 True 10000
eth3 10000 True 10000
Connection to e.f.g.h closed.
Appendix | 52
AHV Networking
Example 2: hostssh
If we wanted to view the MAC address of the eth0 interface on every AHV host, we could connect
to each AHV host individually and use ifconfig eth0. To make things faster, let's use the hostssh
shortcut instead. In this example, we still use SSH to connect to the CVM BASH shell, then prefix
our desired command with hostssh.
nutanix@NTNX-A-CVM~$ hostssh "ifconfig eth0 | grep HWaddr"
============= a.b.c.d ============
eth0 Link encap:Ethernet HWaddr 0C:C4:7A:46:B1:FE
============= e.f.g.h ============
eth0 Link encap:Ethernet HWaddr 0C:C4:7A:46:B2:4E
Example 3: aCLI
Administrators can use the aCLI shell to view Nutanix cluster information that might not be easily
available in the Prism GUI. For example, let's list all of the VMs in a given network. First, connect
to any CVM using SSH, then enter the aCLI.
nutanix@NTNX-A-CVM~$ acli
<acropolis> net.list_vms 1GBNet
VM UUID VM name MAC address
0d6afd4a-954d-4fe9-a184-4a9a51c9e2c1 VM2 50:6b:8d:cb:1b:f9
With these command line utilities, we can manage a large number of Nutanix nodes at once.
Centralized management helps administrators apply configuration consistently and verify
configuration across a number of servers.
Appendix | 53
AHV Networking
Appendix | 54
AHV Networking
• Disable LACP
nutanix@CVM$ ssh [email protected] "ovs-vsctl set port br0-up bond_mode=active-backup"
nutanix@CVM$ ssh [email protected] "ovs-vsctl set port br0-up lacp=off"
nutanix@CVM$ ssh [email protected] "ovs-vsctl set port br0-up other_config:lacp-fallback-
ab=true"
• VM VLAN configuration
nutanix@cvm$ acli vm.nic_update <vm_name> <nic mac address> network=<network name>
nutanix@CVM~$ acli vm.nic_update <vm name> <vm nic mac address> trunked_networks=<comma
separated list of allowed VLAN IDs> update_vlan_trunk_info=true
nutanix@CVM~$ acli vm.nic_update <vm name> <vm nic mac address> vlan_mode=kAccess
update_vlan_trunk_info=true
Appendix | 55
AHV Networking
References
1. AHV Best Practices Guide
2. AHV Administration Guide: Host Network Management
3. AHV Administration Guide: VM Network Management
4. Nutanix Security Guide: Securing Traffic Through Network Segmentation
5. Open vSwitch Documentation
6. Physical Networking Best Practices Guide
7. Prism Web Console Guide: Network Visualization
About Nutanix
Nutanix makes infrastructure invisible, elevating IT to focus on the applications and services that
power their business. The Nutanix enterprise cloud software leverages web-scale engineering
and consumer-grade design to natively converge compute, virtualization, and storage into
a resilient, software-defined solution with rich machine intelligence. The result is predictable
performance, cloud-like infrastructure consumption, robust security, and seamless application
mobility for a broad range of enterprise applications. Learn more at www.nutanix.com or follow us
on Twitter @nutanix.
Appendix | 56
AHV Networking
List of Figures
Figure 1: Nutanix Enterprise Cloud OS Stack................................................................... 9
Figure 5: IPAM................................................................................................................. 15
Figure 14: Default Untagged VLAN for CVM and AHV Host...........................................39
57
AHV Networking
List of Tables
Table 1: Document Version History................................................................................... 6
58