Networking for Nutanix Flow: The Prerequisites

Fundamentals · Prerequisites · Nutanix Flow

The general networking you need in order to read a Flow Virtual Networking and Flow Network Security study guide without stopping every third paragraph. Vendor neutral fundamentals, with a note at the end of each section on where Flow uses them.

Most people who end up owning Nutanix Flow did not come from a networking background. They came from virtualization, or storage, or the platform team, and Flow arrived as a checkbox in Prism Central that suddenly required them to have opinions about BGP session states and MTU arithmetic. The Nutanix documentation is good at telling you which field to fill in. It is not written to teach you why the field exists.

This is the missing layer underneath. It is not a networking course and it is not exam material. It is the set of concepts that a Flow study guide assumes you already have, arranged in the order you will hit them, with the Flow specific payoff called out so you can see why each one matters.

What this is. Standards based networking fundamentals, independent of any vendor. Where a concept has a Nutanix specific twist, that appears in a marked Where Flow uses this block so you can tell the general from the product specific.

What this is not. Nutanix documentation, exam content, or a substitute for either. Nothing here is sourced from a Nutanix guide, because none of it is Nutanix specific. Protocol references are given for orientation; verify them at the source before quoting them anywhere that matters.

1. Layer 2: frames, MAC addresses, and VLANs

A switch moves frames. A frame carries a source and destination MAC address, which is a 48 bit hardware identifier burned into a NIC, or assigned to a virtual NIC by the hypervisor.

Switches are not configured with a map of where things are. They learn. When a frame arrives on a port, the switch records “source MAC X lives on port 3” in its MAC address table. When a frame needs to go to a destination it has already learned, it sends it out that one port. This is why switching scales.

The three things a switch does with a frame

CaseBehaviourName
Destination MAC is in the tableSend out that single portForwarding
Destination MAC is not in the tableSend out every port except the one it arrived onUnknown unicast flooding
Destination is the broadcast address ff:ff:ff:ff:ff:ffSend out every port except the one it arrived onBroadcast

Unknown unicast flooding is the one worth remembering, because it is a behaviour some applications quietly depend on, and modern virtual networking often disables it. Clustered applications that expect to receive traffic for a MAC they have not yet announced will break when flooding is turned off, and the failure looks like an application problem rather than a network one.

Broadcast domains and why VLANs exist

Every port that can receive a given broadcast is in the same broadcast domain. One flat switched network is one broadcast domain, and every device in it hears every broadcast. That does not scale, and it provides no separation at all.

A VLAN cuts one physical switch into several logical switches. Ports in VLAN 10 cannot see traffic in VLAN 20 without something routing between them. VLAN IDs run from 1 to 4094, which is both the strength and the ceiling of the technology.

Access port versus trunk port VM in VLAN 10 sends untagged frames access port switch adds VLAN 10 Switch VLAN 10 VLAN 20 VLAN 30 separate domains trunk port 802.1Q tag, 4 bytes Upstream switch all three VLANs An access port belongs to one VLAN and the endpoint never sees a tag. A trunk carries many VLANs and tags each frame so the far end can tell them apart. The native VLAN on a trunk is the one left untagged.
Two port types, one common source of confusion. Most VM facing ports are access ports. Host uplinks are usually trunks.
  • Access port. Belongs to exactly one VLAN. The endpoint sends and receives ordinary untagged frames and has no idea VLANs exist. This is how most VMs are connected.
  • Trunk port. Carries several VLANs, tagging each frame with a 4 byte 802.1Q header so the far end can separate them. This is how a hypervisor host uplink normally connects to the physical switch.
  • Native or untagged VLAN. The one VLAN on a trunk whose frames travel with no tag. Mismatched native VLANs on the two ends of a trunk is a classic and very confusing outage.

ARP, the glue between Layer 2 and Layer 3

A host that wants to send to an IP address on its own subnet does not know the destination MAC. It broadcasts an ARP request: “who has 10.0.0.5?” The owner replies with its MAC, the sender caches it, and the conversation proceeds.

Two consequences worth carrying:

  • ARP is a broadcast, so it is confined to the broadcast domain. This is why a VLAN boundary is a real boundary.
  • ARP caches go stale. When something moves, or something else starts answering for an address, traffic follows the cache and not reality until the entry ages out. A surprising number of “the network is broken” incidents are stale or contested ARP.
Where Flow uses this
Flow subnets come in two shapes, VLAN backed and overlay backed, and the guide distinguishes them constantly. Flow also disables unknown unicast flooding on its own VLAN subnets, which is called out as a limitation rather than a feature, and it is the reason some workloads cannot be migrated onto them. When a subnet is stretched between sites, ARP behaviour becomes the central problem rather than a detail: something has to answer ARP for an address that lives somewhere else.

2. Layer 3: addresses, prefixes, and routes

Routing moves packets between subnets. Where switching asks “which port has this MAC”, routing asks “which next hop gets me closer to this network”.

Reading CIDR without thinking about it

An address like 10.20.30.0/24 is a network address and a prefix length. The prefix length says how many leading bits are the network portion. Everything after is host space.

PrefixMaskUsable hostsTypical use
/24255.255.255.0254The standard VM subnet
/25255.255.255.128126Half a /24
/30255.255.255.2522Classic router to router link
/31255.255.255.2542Modern point to point link
/32255.255.255.2551A single host route
/16255.255.0.065,534A large block, often subdivided
/00.0.0.0everythingThe default route

Smaller number means bigger network. A /16 contains 256 /24s. That inversion is the single most common stumbling block for people new to this.

Private address space

Three ranges are reserved for internal use and are never routed on the public internet, defined in RFC 1918:

  • 10.0.0.0/8, a very large flat block
  • 172.16.0.0/12, which is 172.16 through 172.31 and catches people out
  • 192.168.0.0/16

Because everyone uses the same private ranges, overlapping address space between two organizations, or between two tenants, is normal rather than exceptional. Every technology in this document that involves joining two networks has to have an answer for it.

The routing table and longest prefix match

A routing table is a list of destinations and next hops. When a packet arrives, the router checks every entry that could contain the destination and picks the one with the longest prefix, meaning the most specific match. It does not pick the first match, or the cheapest, until specificity has already tied.

Longest prefix match: destination 10.20.30.40 0.0.0.0/0 → external gateway matches, 0 bits specific 10.0.0.0/8 → router A matches, 8 bits specific 10.20.30.0/24 → router B matches, 24 bits specific. WINNER 10.20.31.0/24 → router C does not match at all
Specificity wins before anything else does. A default route only ever gets used when nothing more specific matches.

The default route, 0.0.0.0/0, matches everything and is therefore always the least specific entry in the table. It is the catch all for “I do not have a better idea, send it to the edge”. Any network that needs to reach things outside itself needs one, or an explicit route for every destination it cares about.

The next hop is the address of the neighbouring router that will take the packet onward. It is always an address the router can already reach directly, which is why a next hop outside the local subnet is a configuration error rather than a clever shortcut.

Static versus dynamic routing

  • Static routes are typed in by a human. They are predictable, they never converge on a new path, and they are silently wrong the moment the topology changes.
  • Dynamic routing protocols let routers tell each other what they can reach, and recompute when something fails. In this world that means BGP, with OSPF appearing occasionally inside a single site.
Where Flow uses this
A Flow VPC has its own routing table, and the guide talks constantly about the default route pointing at an external subnet as the next hop, about destination prefixes deciding which external subnet a given destination uses, and about selection between them being by longest prefix match. Externally Routable Prefixes are just a list of prefixes the VPC is willing to advertise. None of that is unusual routing, it is ordinary routing expressed in Nutanix nouns.

3. BGP, only the parts Flow uses

BGP is the routing protocol of the internet and, increasingly, of the data centre. It is large. Flow uses a small and well defined corner of it, and you can read the entire Flow BGP surface knowing six things.

One: autonomous systems and the two flavours of BGP

An autonomous system is a network under one administrative control, identified by an ASN. Private ASNs exist for internal use, the same way private IP ranges do.

  • eBGP runs between different autonomous systems. Different ASN on each end.
  • iBGP runs inside one autonomous system. Same ASN on both ends.

They behave differently in ways that matter to a network engineer and barely at all here. What matters is that when a product says “eBGP”, it is telling you the two ends are meant to be separately administered networks that agree to exchange routes.

Two: a session is a TCP connection, and its state has a trap in it

BGP peers establish a TCP connection, on port 179, and exchange routes over it. The session walks through a state machine. Only one state means the session is working.

StateMeaningGood?
IdleNot attempting. Usually administratively down or backing off after failuresNo
ConnectWaiting for the TCP connection to completeIn progress
ActiveActively trying to establish and failing. The name is a trapNo
OpenSent / OpenConfirmNegotiating parametersIn progress
EstablishedThe session is up and routes are being exchangedYes
The single most useful thing in this section In BGP, “Active” does not mean healthy. It means trying and not succeeding. A session sitting in Active is a broken session, and it usually points at the peer, the underlay path, or an ASN or address mismatch, rather than at anything in your own session configuration. Every monitoring screen that shows you “Established or Active” is showing you “up or down” in protocol vocabulary.

Three: advertisement is a choice, not a consequence

A BGP speaker does not automatically tell its neighbour about everything it knows. It advertises what its policy says to advertise. If a prefix is not reaching a peer, the first question is not “is the session up” but “is this prefix in what we advertise to that peer”.

Four: path selection, and the two ways to influence it

When the same destination is learned from more than one peer, BGP picks one path using a long ordered list of tie breakers. Two of them are the ones you will actually see exposed in products.

LeverDirectionWhat it does
Local preference, or any vendor’s “route priority” knobInbound, affects your own choicesTells your routers which learned path to prefer. Higher wins. Never leaves your AS
AS Path prependingOutbound, affects the neighbour’s choicesRepeats your own ASN in the path so the route looks longer and therefore worse. This is how you make a path less preferred as seen by someone else

The asymmetry is the point. You control your own preferences directly. You can only influence someone else’s, and the polite way to do it is to make your own route look worse, not to try to make it look better.

AS Path prepending: making your own route look worse on purpose Your AS 65001 path A advertised as [65001] 1 hop, preferred path B advertised as [65001, 65001, 65001] looks like 3 hops, avoided Neighbour AS Nothing about path B actually got worse. You simply padded the AS Path so the neighbour’s own selection logic prefers path A. This is the standard way to steer inbound traffic without asking the other side to change anything.
Prepending is a lever on someone else’s decision, applied by degrading your own advertisement.

Five: communities are tags, and that is all

A BGP community is a label attached to a route, conventionally written ASN:value. BGP itself does nothing with them. They exist so that routers downstream can match on the tag and apply policy. Think of them as sticky notes that survive the journey.

Six: what a healthy BGP relationship needs

  • IP reachability between the two peer addresses before BGP can do anything. BGP rides on TCP and TCP needs a working path.
  • Matching expectations about ASN and peer address on both ends.
  • Optionally an MD5 password on the session. Worth knowing because address translation between the peers breaks password verification, since the authentication covers header fields that NAT rewrites.
Where Flow uses this
Flow exposes exactly this subset: eBGP sessions to physical routers, an ASN on each side, a route priority number, AS Path prepending, community tags, and a choice of which Externally Routable Prefixes to advertise. The status fields it shows you are the protocol states above. It does not expose BFD, timer tuning or graceful restart, so if you go looking for them you will not find them. And the MD5 password caveat is why the documentation says passwords cannot be used where the gateway sits behind NAT.

4. NAT, SNAT, and floating IPs

Network Address Translation rewrites addresses in a packet as it crosses a boundary. It exists because private address space is not routable outside, and because organizations run out of public addresses.

KindWhat it rewritesDirection it enablesTypical use
SNAT, source NATThe source address of outbound packets, usually to one shared address, tracking sessions by portOutbound only. Many private hosts share one public addressGiving a whole subnet internet access
DNAT, destination NATThe destination address of inbound packetsInbound. Publishes an internal service on an external addressPort forwarding, publishing a web server
Static or 1:1 NATBoth directions, one external address bound to one internal addressBoth. The host is reachable in and outA server that must both initiate and receive

The asymmetry is the thing to internalise. SNAT alone gives you outbound connectivity and no inbound reachability, because there is nothing to tell the translator which internal host an unsolicited inbound packet was meant for. That is not a bug, it is often the point.

SNAT versus a floating IP Private subnet VM .11 VM .12 VM .13 no address of their own on the outside network outbound SNAT all three share one address no unsolicited inbound VM .20 with a floating IP bound both directions 1:1 NAT one dedicated address Outside world routable network
A floating IP is the cloud name for static 1:1 NAT with an address that can be detached from one workload and attached to another.

Floating IPs

A floating IP is an externally routable address held by the platform rather than by a machine, and bound to a workload on request. It is 1:1 NAT with a management story: the address survives the workload, so you can move it to a replacement instance without anything downstream needing to change.

What NAT quietly breaks

  • Anything that authenticates the header. BGP MD5 and IPsec AH both cover fields NAT rewrites.
  • Anything that carries an address inside the payload. The classic examples are FTP and SIP, which announce addresses in the data stream that the translator does not know to rewrite.
  • End to end identity in logs. Behind SNAT, everything appears to come from one address, which matters more than people expect when investigating an incident.
Where Flow uses this
A Flow VPC attaches to the outside through an external subnet that is either NAT or No-NAT. NAT gives the VPC a SNAT address for outbound and floating IPs for selective inbound. No-NAT skips translation entirely and advertises the internal prefixes to the physical network over BGP, which is why No-NAT and Externally Routable Prefixes always appear together. The choice between them is the choice between “hide behind one address” and “make these prefixes genuinely routable”.

5. Overlay and underlay

This is the concept that makes modern virtual networking make sense, and it is one idea: put a whole network inside packets on another network.

  • The underlay is the real physical network. Switches, cables, IP addresses, ordinary routing. It has one job: carry packets between hosts.
  • The overlay is a virtual network built on top, whose packets are wrapped inside underlay packets and carried across as ordinary payload.

The underlay does not know the overlay exists. It sees normal UDP traffic between two host addresses. All the tenant structure, the VLANs, the addressing, lives in the wrapper.

Encapsulation: what the underlay actually carries What the VM sent Eth + IP + TCP payload, up to 1500 bytes total What the underlay carries Outer Eth Outer IP UDP Geneve Eth + IP + TCP the same payload, untouched this is the overhead, and it has to come from somewhere The original frame becomes payload. Everything to its left is new. If the underlay MTU has not been raised to absorb the new headers, the guest has to send smaller packets instead. There is no third option.
Every overlay technology looks like this. Only the size and shape of the wrapper differs.

The encapsulation formats you will meet

FormatHeader shapeNotes
VXLANOuter Ethernet, outer IP, UDP, then a fixed 8 byte VXLAN headerThe older and simpler of the two. Widely supported in hardware. Carries a 24 bit segment ID, so roughly 16 million segments against a VLAN’s 4094
GeneveThe same outer headers, then an 8 byte base header plus variable length optionsDesigned to be extensible, which is why its overhead is larger and not a single fixed number
Where the byte counts come from, and a caution The outer wrapper for both formats is 14 bytes of Ethernet, 20 bytes of IPv4 and 8 bytes of UDP, which is 42 bytes. VXLAN adds a fixed 8, giving the 50 bytes you will see quoted everywhere. Geneve adds an 8 byte base header plus whatever options the implementation uses, so Geneve overhead is a range, not a constant, and a vendor quoting a single Geneve number is quoting their own implementation.

That arithmetic is mine, not a citation. It is standard and easy to verify, but if a specific byte count matters to a design, take it from the platform’s own documentation rather than from a general calculation.

VTEP: where the wrapping happens

A VTEP, tunnel endpoint, is the thing that adds the wrapper on the way in and strips it on the way out. It can be a physical switch, or software inside a hypervisor. Two VTEPs with underlay reachability between them can carry an overlay segment between them, and the underlay never needs to be told.

This is the whole trick, and it explains why overlays are attractive: the tenant topology becomes software, and the physical network stops needing to change every time the tenant topology does.

Where Flow uses this
Flow overlay subnets are Geneve encapsulated between AHV hosts. Flow also uses VXLAN, separately, when extending a Layer 2 segment to another site or to a non Nutanix device, and it calls those endpoints VTEP gateways. So both formats appear, doing different jobs: Geneve for intra cluster overlay, VXLAN for inter site extension. When both are in play the overheads stack, which is the subject of the next section.

6. MTU, which is where most of this actually goes wrong

If you learn one thing here, learn this one. Encapsulation problems almost always present as MTU problems, and MTU problems present as some of the most misleading symptoms in networking.

The two numbers

  • MTU, maximum transmission unit, is the largest payload a link will carry in one frame. The classic Ethernet value is 1500 bytes.
  • MSS, maximum segment size, is the largest chunk of TCP data in one segment. For IPv4 it is conventionally MTU minus 40, being 20 bytes of IP header and 20 of TCP header.

Jumbo frames

A jumbo frame is anything above the standard 1500, and 9000 is the near universal convention. It exists to reduce per packet overhead on high throughput links, and in the overlay world it exists to give you headroom to absorb encapsulation without shrinking the guest.

Jumbo frames only work end to end Every device in the path has to agree. One switch port left at 1500 in an otherwise 9000 path does not degrade gracefully. Small packets succeed and large packets vanish, which means ping works, SSH works, logins work, and then a file copy or a database query hangs. People spend days on this. When you configure jumbo frames on the physical switches, configure a little headroom above 9000 so the switch can carry the frame plus its own tags.

The arithmetic of stacked overhead

If the underlay stays at 1500 and the guest keeps its own MTU at 1500, the encapsulated frame does not fit. Something must give. Either the underlay grows, or the guest shrinks by exactly the overhead:

What is in the pathOverheadGuest MTU if the underlay stays at 1500
Overlay only, Geneve581442
Overlay plus Layer 2 extension over VXLAN58 + 501392
Overlay plus IPsec VPN58 + 861356
Overlay plus VXLAN plus IPsec58 + 50 + 861306

Overheads stack. Each tunnel you nest costs its own headers. This is why the guidance for a simple overlay and the guidance for an extended, encrypted overlay are not the same number, and why a fallback value that works for the simple case is not enough for the complex one.

Path MTU Discovery, and how it gets broken

A sender does not know the smallest MTU along the path. Path MTU Discovery finds it: the sender marks packets Do Not Fragment, and any router that cannot forward one replies with an ICMP Destination Unreachable, Fragmentation Needed message, type 3 code 4, carrying the MTU it can accept. The sender shrinks and retries.

The ICMP black hole If something in the path blocks ICMP, that reply never arrives. The sender keeps sending packets that are too large, gets no error, and simply sees them disappear. The connection establishes, small exchanges work, and bulk transfer hangs forever.

This is why “we block ICMP for security” is one of the most expensive habits in enterprise networking, and why a security policy that drops ICMP can break things that look nothing like ICMP. It is also why several health check mechanisms treat an ICMP unreachable as meaningful signal rather than noise.
Where Flow uses this
This is the source of the apparent contradiction that trips up most Flow readers: the Controller VM MTU must stay at 1500, yet Flow wants jumbo frames. Both are true and they are about different interfaces. The CVM’s own traffic is never encapsulated, so it has no overhead to absorb. The jumbo frame recommendation applies to the physical switches, the host uplinks and the virtual switch, which is where the Geneve wrapper is actually paid for. Raising the underlay lets guests keep a 1500 byte MTU; leaving it at 1500 means every guest in a VPC has to come down to 1442. The documented fallback is exactly that, and it is a real option, just an operationally annoying one.

7. The hypervisor is a switch

Inside every virtualization host there is a software switch. VM virtual NICs plug into it, and it plugs into the physical NICs. Understanding its parts removes most of the mystery from host networking.

TermWhat it is
BridgeThe software switch itself, on one host. Open vSwitch calls the default one br0
Virtual switchA management abstraction over the same bridge on every host in the cluster, so you configure once instead of per host. The default is usually named vs0
UplinkA physical NIC attached to the bridge, connecting it to the outside world
Bond, or NIC teamSeveral uplinks grouped together for redundancy, throughput, or both

Bond modes, and why the choice matters

ModeHow traffic is placedNeeds switch configuration?
Active backupOne uplink carries everything. The others waitNo. Simplest and most forgiving. No aggregate throughput gain
Balance SLB, source load balancingSpreads by source MAC across uplinksNo. Gives some spread without switch involvement
Balance TCP, with LACPHashes each flow across all uplinksYes. The physical switch must run LACP on a matching port channel

LACP, standardised as 802.3ad, is the protocol two ends use to agree that a set of links is one logical link. It has a negotiation rate, fast or slow, and both ends should agree. It also has a failure behaviour worth knowing: if negotiation does not complete, you want the switch to fall back to treating the ports as individual links rather than leaving them all down, otherwise a partial misconfiguration takes the host completely offline.

Consistency is a hard requirement, not a preference Bond modes and bridge names have to be identical on every host in a cluster. A cluster where some hosts run active backup and others run balance TCP will pass every test you run on a quiet day and then fail during a rolling upgrade, when a VM migrates onto a host whose networking behaves differently. Most platform level “virtual switch migration failed” errors trace back to exactly this.
Where Flow uses this
Flow inherits all of it. Virtual switch vs0 and bridge br0 are the defaults everywhere in the documentation, and Flow adds its own bridge for overlay traffic alongside them. Segregating overlay traffic onto a second virtual switch is the standard method for keeping tenant traffic off the management VLAN. The requirements about identical bond types across hosts, LACP fast rate, and spanning tree portfast on the switch ports are not Flow inventions; they are ordinary host networking requirements that Flow surfaces because Flow operations trigger rolling restarts that expose them.

8. Stateful firewalling and microsegmentation

The five tuple

A network conversation is identified by five values. Nearly every firewall, load balancer and flow record in existence is built on them:

FieldExample
Source IP10.20.30.40
Destination IP10.50.60.70
Source port51234, usually ephemeral
Destination port443
ProtocolTCP

Stateless versus stateful

  • A stateless filter evaluates each packet on its own. It has no memory. To allow a conversation you must write a rule for the request and a matching rule for the reply, which is how classic router access lists work and why they are so error prone.
  • A stateful firewall records each permitted conversation in a connection tracking table, and automatically permits packets belonging to a conversation it already approved.
Why this matters more than it sounds On a stateful firewall you only write rules for the direction that initiates. Return traffic is allowed because the firewall remembers the request, not because you wrote a rule for it. People coming from an access list background routinely write both directions, and then cannot understand why a policy appears twice as permissive as they intended.
Stateful inspection: one rule, both directions Client 10.20.30.40 Firewall rule: allow client to server tcp/443 conn track .40:51234 → .70:443 Server 10.50.60.70 1. request, matches the rule 2. reply allowed by the tracked connection, with no rule of its own
The connection tracking table is what turns one written rule into a working two way conversation. It is also a finite resource, which is why its utilisation is worth monitoring.

The tracking table is finite. Under a connection flood, or a workload that opens huge numbers of short lived sessions, it fills, and new connections fail while existing ones continue. That failure mode looks like partial, intermittent outage rather than a clean break, which is why platforms expose conntrack utilisation as a health metric.

East west and north south

  • North south traffic crosses the boundary of the environment. It goes to or from the outside. This is what a traditional perimeter firewall inspects.
  • East west traffic moves between workloads inside the environment. Historically nothing inspected it at all.

In a virtualized data centre east west is the majority of traffic by volume, and it is the direction an attacker moves after gaining an initial foothold. A perimeter firewall sees none of it.

Microsegmentation

Microsegmentation enforces policy at each workload’s own virtual NIC rather than at a choke point. Every VM effectively gets its own firewall, enforced by the hypervisor, and traffic between two VMs on the same host is filtered without ever touching the physical network.

Three ideas travel with it:

  • Default deny. Nothing is allowed unless a policy allows it. The opposite of the traditional default allow inside a trusted zone.
  • Allowlist. You enumerate what is permitted rather than what is blocked, because the set of permitted things is knowable and the set of bad things is not.
  • Identity based grouping. Policy targets labels or tags such as “production” or “web tier” rather than IP addresses, so it survives the workload moving or being rebuilt.
Why every microsegmentation product has a monitor mode Turning on default deny in a real environment without knowing the actual traffic is how you cause an outage. So these products universally offer a mode that applies the policy for visibility but does not block, letting you discover the flows you did not know about and turn them into rules before enforcing. If you remember one operational habit from this document, it is: run in monitor mode until the discovered traffic stops surprising you.
Where Flow uses this
Flow Network Security is a microsegmentation product, so all of the above is its subject matter. Its policies target categories, which are the labels, rather than addresses. It offers monitor and enforce modes for exactly the reason above. Its enforcement happens at the AHV host, per virtual NIC. And conntrack appears in the documentation as a component you may need to check when troubleshooting, which makes more sense once you know it is the table that makes return traffic work.

9. Load balancing at Layer 4

A load balancer presents one address and spreads connections across several backends.

TermMeaning
VIP, virtual IPThe address clients connect to. It belongs to the load balancer, not to any backend
Backend pool, or target groupThe set of real servers behind the VIP
ListenerThe protocol and port combination the load balancer accepts on
Health check, or probeA periodic test that decides whether a backend still receives traffic

Layer 4 versus Layer 7

  • Layer 4 balances TCP and UDP connections. It sees addresses and ports. It is fast, protocol agnostic, and cannot make decisions based on content.
  • Layer 7 understands the application protocol, typically HTTP, and can route on URL path, header or cookie, terminate TLS, and rewrite requests. It is far more capable and considerably more expensive.

If a product says it provides native Layer 4 load balancing, it is telling you it will not route on URL path, and that anything requiring content awareness needs a separate appliance.

How a connection is placed: hashing

The common approach is to hash the five tuple and use the result to pick a backend. Because every packet of one connection has the same five tuple, every packet of a connection lands on the same backend, which is what makes stateful protocols work. Because different connections hash differently, load spreads.

Note what this is not. It is not round robin, and it is not least connections. A five tuple hash gives you consistency, not fairness. Two heavy clients can hash to the same backend, and the balancer will not correct for it.

Health checks, in detail, because they are where the surprises live

A TCP health probe, and the two ways it fails Prober Target SYN to the configured port SYN-ACK, meaning the port is open RST to tear the connection down immediately No response at all host down, or silently dropped ICMP unreachable something actively refused it
The prober never completes the handshake. It confirms the port answers, then resets, which keeps the target from accumulating half open probe connections.
  • A TCP probe opens a connection to the configured port and immediately closes it. If the port answers, the backend is healthy. It says nothing about whether the application behind the port is actually working, only that something is listening.
  • A UDP probe is harder, because UDP has no handshake. The usual approach is to send a datagram and treat silence as success, since an ICMP unreachable is the only clear negative signal available.
  • Thresholds. Health checks are almost always configured with a check interval, a timeout, and a count of consecutive results needed to change state. Requiring several consecutive results is what keeps a single lost packet from ejecting a healthy backend.
The failure mode worth memorising A firewall rule that returns an ICMP unreachable will fail a health check even when the service behind it is perfectly fine. The probe never reaches the application; something in between answers on its behalf, and the load balancer correctly concludes the target is unreachable. When backends are marked unhealthy but respond fine to a manual test from somewhere else, look at what sits between the prober and the target rather than at the target.
Where Flow uses this
Flow provides a native Layer 4 load balancer. Its default algorithm is a five tuple hash, its health check is exactly the SYN, ACK, RST sequence above, and it treats no response or an ICMP unreachable as unhealthy. Its Layer 7 answer is to point you at policy based routing or service insertion, which is another way of saying “put a real appliance in the path”.

10. VPN and IPsec

A site to site VPN builds an encrypted tunnel across an untrusted network so two private networks can talk as if directly connected.

PieceJob
IKE, currently IKEv2The negotiation protocol. Authenticates the two ends and agrees the keys and algorithms
IPsec ESPThe data protocol. Actually encrypts and carries the traffic once IKE has set things up
Tunnel modeWraps the entire original packet in a new one. This is what site to site VPN uses, and it is another encapsulation, with another MTU cost
Pre shared keyThe simplest way for the two ends to authenticate. A shared secret. Certificates are the alternative

Initiator and responder

Someone has to start. One end is configured to initiate and the other to accept. This matters when one side sits behind NAT or a firewall that only permits outbound connections: that side must be the initiator, because the other end cannot reach it unsolicited.

The two routing questions every VPN has to answer

  1. Which traffic goes into the tunnel? Either a static list of prefixes on each side, or a routing protocol running inside the tunnel so each side learns the other’s networks dynamically.
  2. What happens when the address space overlaps? Two sites both using 10.0.0.0/8 cannot simply be joined. Something has to translate, or the design has to change.
VPN is inherently point to point One tunnel joins exactly two endpoints. Connecting three sites in a full mesh needs three tunnels, four sites needs six, and the count grows quadratically. Any product that offers “connect to multiple endpoints” is offering you something other than a plain VPN tunnel, usually a VXLAN based fabric.
Where Flow uses this
Flow’s VPN is Nutanix’s own appliance running IKEv2 and IPsec, with an initiator and an acceptor end, and either eBGP or static routes deciding what crosses. Its remote gateway object is not a VM, it is a database entry describing the peer, and the peer’s stated source address is the only address the local gateway will accept IKE packets from. That is a sensible security control and also the first thing to check when a tunnel stops coming up after someone changed an address. And because IPsec tunnel mode is another wrapper, it shows up in the MTU table from section 6.

11. Stretching Layer 2 between sites

Sometimes a workload has to keep its IP address while moving somewhere the address does not belong. The usual drivers are a migration you cannot re address, a disaster recovery plan that needs identical addressing, or an application that hard codes addresses somewhere nobody can find.

Layer 2 extension, also called stretched Layer 2 or Layer 2 stretch, makes one broadcast domain span two locations by tunnelling frames between them, usually over VXLAN.

Why network engineers wince at it

  • You are extending a failure domain. A broadcast storm or a loop at one site is now a problem at both.
  • Broadcast and ARP traffic crosses the link, consuming inter site bandwidth doing nothing useful.
  • The default gateway problem. The subnet exists in two places, but the gateway usually does not, so traffic leaving the subnet at the remote site may have to travel back to the original site first.

Tromboning, also called hairpinning

Tromboning: the cost of a gateway that lives somewhere else Site A gateway VM 1 10.10.10.0/24 the gateway lives here Site B VM 2 VM 3 10.10.10.0/24, same subnet no gateway of its own stretched Layer 2 VM 2 leaving its subnet must cross to Site A and back, even to reach something in Site B
The fix is a gateway address that is valid at both ends. Providing one on only one side is a deliberate choice to hairpin all of that traffic through that side.

Tromboning is traffic travelling somewhere it does not need to go and coming back, because the only device that can make a decision about it lives there. On a stretched subnet it is the default outcome unless you deliberately design against it, by giving each site a locally valid gateway for the shared subnet.

Two operational hazards worth knowing in advance

  • Overlapping addressing on the two sides. Once one subnet exists in two places, two things being given the same address is no longer a theoretical problem. Whichever side manages addresses has to know about the other.
  • Stale ARP responders. If something keeps answering ARP for a workload that has moved or been powered off, traffic follows the answer and disappears. This is a common and genuinely difficult failure during migrations, because nothing at the destination indicates what is wrong.
Where Flow uses this
Flow supports Layer 2 extension over VXLAN, optionally inside a VPN when the path between sites is not already secure. All three hazards above appear in the documentation as best practice guidance: keep address ranges unique between the paired subnets, give both sides a valid gateway address to avoid tromboning, and delete the source virtual NICs when moving a workload out to a non Nutanix environment, because otherwise the platform keeps answering ARP for a machine that is now powered off. That last one is exactly the stale ARP responder problem, and it is worth reading twice before a migration.

12. Flow telemetry, and what IPFIX actually is

Packet capture tells you everything and does not scale. Counters scale and tell you almost nothing. Flow telemetry is the middle ground: a summary record per conversation.

PieceRole
ExporterThe device that observes traffic and generates records. A switch, router, or hypervisor host
CollectorThe system that receives, stores and analyses records
Flow recordOne summary of one conversation: the five tuple, byte and packet counts, timestamps, and often interface and routing detail

NetFlow is the original, from Cisco. IPFIX is the IETF standardisation of the same idea, sometimes described as NetFlow version 10. Its distinguishing feature is that it is template based: the exporter first sends a template describing the fields in a record, then sends records matching it. That is what lets vendors add their own fields without breaking collectors, and it is also why a collector that has not yet received the template cannot interpret the records that follow.

What flow data is good and bad at

Good atBad at
Who talked to whom, when, how muchWhat was actually said. There is no payload
Finding unexpected conversations across a whole estateSub second precision. Records are emitted on timers and on session end
Capacity trends and top talkersAnything encrypted, beyond the fact that it happened
Building an allowlist from observed realityProving something did not happen, since sampling is common

That last row on the left is the reason flow telemetry and microsegmentation are always found together. You cannot write a default deny policy for an application you do not fully understand, and flow data is how you come to understand it.

Where Flow uses this
Flow exports IPFIX from AHV hosts, and the documentation covers the transport, the ports and the failure alerts thoroughly. What it does not document is the record content itself, which is normal: the fields are defined by the IPFIX standard and by the collector, not by the platform. If you need to know what is in a record, capture one or ask the collector. Flow visualization, the feature that draws discovered traffic and lets you turn it into rules, is this data rendered as a picture.

13. Identity plumbing

Two separate things get confused constantly, and separating them explains most access control documentation.

AuthenticationAuthorization
QuestionWho are you?What are you allowed to do?
MechanismDirectory, identity provider, certificate, local accountRoles, permissions, policies
Failure looks likeCannot log inLogged in, but the button is missing or the action is denied

Directory services

  • Active Directory is Microsoft’s directory. It holds users, groups and computers.
  • LDAP is the protocol for querying a directory, on TCP 389, or 636 for LDAPS. Port 3268 is Active Directory’s global catalog, which searches the whole forest rather than one domain, and is often the right port when a single domain query returns incomplete results.
  • Kerberos is the authentication protocol Active Directory actually uses for logons.
  • WMI is Microsoft’s management interface, reached over RPC. It starts on TCP 135 and then moves to a dynamically assigned high port, which is why WMI through a firewall requires opening a wide ephemeral range and is a recurring source of pain.

Identity based firewalling

The idea: instead of writing policy about addresses, write policy about users. “Members of the Finance group may reach the finance application” rather than “10.20.30.0/24 may reach 10.50.60.0/24”.

The mechanism is always the same. Something watches the directory for logon events, learns that user X just logged on to machine Y, and programs a rule for Y’s address for as long as that session lasts. It follows that this style of policy:

  • Depends entirely on reading logon events from domain controllers, which is why the WMI and LDAP port requirements above suddenly matter.
  • Works best for desktop sessions, where one user maps cleanly to one machine, and much less well for multi user servers.
  • Breaks quietly when the directory connection breaks, because there are no new logon events to learn from, and the existing mappings age out.

Role based access control

RBAC grants permissions to roles, and roles to users, rather than permissions directly to users. Two details are worth carrying into any platform:

  • A role is usually not enough on its own. Many platforms separate the role, which is a set of permissions, from the assignment that binds a role to a user over a defined scope of objects. Granting the role without the assignment produces a user who appears configured and can do nothing.
  • Check the unconfigured default. Some systems fail open, granting broad access when no mapping exists. Others fail closed, granting nothing. Assuming the wrong one is a security incident in the first case and a support ticket in the second.
Where Flow uses this
Flow’s ID Firewall is exactly the identity based model above, reading Active Directory logon events, which is why its port requirements include WMI and LDAP and why it is documented primarily against VDI use cases. On the access control side, Nutanix separates the built in role from the authorization policy that binds it to users and scope, and the documentation is explicit that a role by itself is not effective. It is also a good example of the fail open versus fail closed distinction: the Prism Element directory role mapping grants everyone full administrator when unconfigured, while Prism Central grants nothing until a policy exists.

14. The supporting cast

DNS and NTP, which are not optional

Modern infrastructure treats both as dependencies rather than conveniences. Appliances that cannot resolve names or agree on the time frequently refuse to start, and report themselves as unhealthy without saying why. Certificate validation, Kerberos authentication and log correlation all fail when clocks drift. When a newly deployed appliance comes up unhealthy for no visible reason, check DNS and NTP before anything else.

ICMP is not optional either

TypeNameWhy it matters
8Echo requestThe outbound half of ping
0Echo replyThe return half. Health checks that use ping need both
3Destination unreachableCode 4 is fragmentation needed, the message Path MTU Discovery depends on
11Time exceededWhat makes traceroute work

Blanket ICMP blocking breaks path MTU discovery, breaks health checks, and blinds you during troubleshooting. Blocking echo request selectively is a defensible choice; blocking type 3 is not.

Syslog severities

Eight levels, numbered 0 as the most severe, which is the opposite of most people’s intuition:

01234567
EmergencyAlertCriticalErrorWarningNoticeInformationalDebug

Configuring a collector to receive “severity 4 and below” means warning and everything more serious, not warning and everything less. Getting this backwards produces either a silent log server or a flood.

Ports you will see repeatedly

PortServiceContext
53DNSUDP normally, TCP for large responses
123NTPUDP
135RPC endpoint mapperThe entry point for WMI, which then moves to a high port
179BGPTCP
389 / 636LDAP / LDAPSDirectory queries
500 / 4500IKE / IKE with NAT traversalUDP. VPN negotiation
514SyslogUDP traditionally, TCP and TLS commonly now
3268LDAP global catalogForest wide directory search
4789VXLANUDP. The standard assigned port
6081GeneveUDP. The standard assigned port

Decoder ring: generic term to Nutanix term

Much of the difficulty in reading any vendor’s networking documentation is that familiar concepts arrive under unfamiliar names. This is the mapping.

What the industry calls itWhat Nutanix Flow calls itNote
Software defined routing domain, tenant networkVPCSame idea as the cloud term, on premises
Overlay segmentOverlay subnetGeneve encapsulated between hosts
VLAN backed port groupVLAN subnet, or VLAN Basic subnetTwo variants, one managed by the network controller and one by the hypervisor
Prefixes advertised to the physical fabricExternally Routable Prefixes, ERPsWhat a No-NAT external subnet advertises over BGP
Static 1:1 NAT with a detachable addressFloating IPStandard cloud terminology
Outbound many to one NATThe NAT external subnet, providing SNATThe alternative is a No-NAT external subnet with no translation
Local preference, route weightingDynamic Route PriorityHigher wins, same as local preference
Tunnel endpointVTEP gatewayFor Layer 2 extension over VXLAN
Label or tag used as a policy targetCategoryKey and value pairs. The unit Flow policy targets
Policy target groupSecured entity, or entity groupWhat a security policy protects
Monitor or learning modeApply (Monitor) modeApplies the policy for visibility without blocking
Distributed virtual switchVirtual switch, vs0Cluster wide abstraction over the per host bridge br0
Service chaining, traffic redirection to an applianceService insertionOften paired with policy based routing
Control planeNetwork Controller, sometimes Atlas or ANCThe component that programs the hosts

If you read nothing else

#The thing
1Smaller prefix number means bigger network. A /16 holds 256 /24s
2Longest prefix match wins before any other consideration. The default route only applies when nothing more specific does
3In BGP, “Active” means broken. Only “Established” means the session is working
4AS Path prepending makes your own route look worse, so someone else prefers a different one. It is the only real lever on inbound path selection
5SNAT gives outbound only. Inbound reachability needs a dedicated address, which is what a floating IP is
6Encapsulation costs bytes, and the cost stacks. Either the underlay grows or the guest shrinks
7Jumbo frames only work end to end. One device left at 1500 produces “small things work, big things hang”
8Blocking ICMP type 3 breaks Path MTU Discovery and creates failures that look like anything but a network problem
9On a stateful firewall you write one rule, not two. Return traffic is handled by the connection tracking table
10Run microsegmentation in monitor mode until the discovered traffic stops surprising you
11A five tuple hash gives consistency, not fairness. It is not round robin
12An ICMP unreachable fails a health check even when the service behind it is healthy
13Stretched Layer 2 tromboning is the default unless you give both sides a valid gateway
14A role without an assignment does nothing. And check whether the unconfigured default fails open or closed
15Check DNS and NTP first when a new appliance is unhealthy for no visible reason

Scope. General, vendor neutral networking fundamentals, selected and ordered around what a Nutanix Flow Virtual Networking and Flow Network Security study guide assumes you already know. Protocol behaviour described here is standards based and not specific to any platform.

On sourcing. Nothing here is drawn from Nutanix documentation, because none of it is Nutanix specific. The Where Flow uses this blocks describe how the concept surfaces in Flow, and any figure or behaviour that matters to a real design should be confirmed against the current product documentation rather than taken from a primer. Protocol names and RFC references are given for orientation; verify them at the source before quoting them. Where an arithmetic result is my own rather than a published figure, it is labelled as such in the text.

What this is not. Not official Nutanix content, not exam material, and not a substitute for a networking course if you need one. Nutanix, AHV, Prism and Flow are trademarks of Nutanix, Inc.

Comments

Leave a Reply

Discover more from VWannabe

Subscribe now to keep reading and get access to the full archive.

Continue reading