2.3 LISP and VXLAN¶
Blueprint 2.3: Describe network virtualization concepts
- 2.3.a LISP
- 2.3.b VXLAN
This is a describe objective. You will not configure LISP or VXLAN on ENCOR, but you must know the roles, the messages, the ports and what problem each one solves. Both protocols are the foundation of SD-Access (1.3): LISP is its control plane and VXLAN is its data plane. If you understand this page, half of SD-Access stops being vocabulary.
Overlays in one picture¶
Both technologies build an overlay on top of a routed underlay. The underlay only needs IP reachability between the tunnel endpoints' loopbacks. Endpoint addresses live only in the overlay.
graph TB
subgraph OV ["Overlay: endpoint addresses, VNIs, EIDs"]
E1["Host A<br/>10.1.1.10"] -.-> E2["Host B<br/>10.1.2.20"]
end
subgraph UN ["Underlay: routed IP between tunnel endpoints"]
T1["Edge 1<br/>RLOC or VTEP 192.0.2.1"] --- S1["Core"] --- T2["Edge 2<br/>RLOC or VTEP 192.0.2.2"]
end
E1 --- T1
E2 --- T2
| LISP | VXLAN | |
|---|---|---|
| What it is | Control plane (mapping system) plus its own data plane encapsulation | Data plane encapsulation only |
| Overlay type | Layer 3 (IP in UDP) | Layer 2 (Ethernet in UDP) |
| UDP ports | 4342 control, 4341 data | 4789 data |
| Tunnel endpoint name | xTR, identified by its RLOC | VTEP |
| Segment identifier | Instance ID (24-bit) | VNI (24-bit) |
| Standard | RFC 9300 and RFC 9301 (originally RFC 6830) | RFC 7348 |
| Role in SD-Access | Control plane | Data plane (VXLAN-GPO variant) |
2.3.a LISP¶
The problem: one address, two meanings¶
In ordinary IP, an address says both who a device is and where it is attached. Move a device and its address must change, and the internet routing table has to carry every multihomed or provider-independent prefix. Locator/ID Separation Protocol (LISP) splits the two:
| Namespace | Meaning | Example |
|---|---|---|
| EID (Endpoint Identifier) | Who: the address of a host. Stays the same when the host moves | 10.1.1.10 |
| RLOC (Routing Locator) | Where: the address of the LISP router the EID sits behind, reachable in the underlay | 192.0.2.1 |
The underlay routes only RLOCs. A mapping system tracks which RLOC each EID prefix currently sits behind, much as DNS maps names to addresses.
Roles¶
| Role | Job |
|---|---|
| ITR (Ingress Tunnel Router) | Receives packets from local hosts, looks up the destination EID in its map-cache, asks the mapping system on a miss, then encapsulates toward the destination RLOC |
| ETR (Egress Tunnel Router) | Registers its local EID prefixes with the map server, answers Map-Requests, and decapsulates incoming LISP packets |
| xTR | A router doing both ITR and ETR, which is the normal case at a site edge |
| MS (Map Server) | Accepts Map-Register messages from ETRs and holds the EID-to-RLOC database |
| MR (Map Resolver) | Accepts Map-Requests from ITRs and forwards them to the right place in the mapping system |
| MS/MR | Both functions on one device, the usual deployment and what the SD-Access control plane node is |
| PITR (Proxy ITR) | Attracts traffic from non-LISP sites and encapsulates it toward LISP sites |
| PETR (Proxy ETR) | Receives traffic from LISP sites destined for non-LISP sites and forwards it natively |
| PxTR | Both proxy functions, the gateway between LISP and non-LISP networks (the role an SD-Access border plays toward the outside world) |
Control plane messages¶
sequenceDiagram
participant H as Host A
participant ITR as ITR (site 1)
participant MR as Map Resolver
participant MS as Map Server
participant ETR as ETR (site 2)
ETR->>MS: Map-Register: 10.1.2.0/24 is at RLOC 192.0.2.2
MS-->>ETR: Map-Notify (if requested)
H->>ITR: Packet to 10.1.2.20
Note over ITR: Map-cache miss
ITR->>MR: Map-Request for 10.1.2.20
MR->>MS: Forward request
MS->>ETR: Forward to the registering ETR
ETR->>ITR: Map-Reply: 10.1.2.0/24, RLOC 192.0.2.2, priority 1, weight 100
Note over ITR: Install in map-cache
ITR->>ETR: Following packets encapsulated, UDP 4341
| Message | Sent by, to | Purpose |
|---|---|---|
| Map-Register | ETR to MS | "These EID prefixes are behind my RLOC." Authenticated with a shared key and repeated periodically |
| Map-Notify | MS to ETR | Acknowledges a registration, and tells the old ETR when an EID has moved |
| Map-Request | ITR to MR | "Where is this EID?" |
| Map-Reply | ETR (or MS acting as proxy) to ITR | The mapping: EID prefix, RLOCs, priority, weight and TTL |
| Negative Map-Reply | MR or MS to ITR | "This destination is not a LISP EID", so forward natively or to a PETR |
| Solicit-Map-Request (SMR) | ETR to ITR | "Your cached mapping is stale, ask again", used when a host moves |
Details worth memorising:
- An ITR answers its first packets to a new destination with a cache miss. Those packets are dropped (or sent to a PETR) while the Map-Request is answered, which is why the first ping across a fresh LISP path usually shows a lost packet.
- Map-cache entries have a TTL, 24 hours by default, and are refreshed by new requests or SMRs.
- Priority and weight in the Map-Reply give the ITR ingress traffic engineering. Lower priority is preferred. Locators with the same priority share traffic in proportion to their weights. That gives a multihomed site control over how traffic enters it, something hard to do with BGP.
- Control messages use UDP 4342. Encapsulated data uses UDP 4341.
Data plane¶
The ITR adds an outer IP header (source its RLOC, destination the remote RLOC), a UDP header (destination 4341) and an 8-byte LISP header in front of the original IP packet. That is 36 bytes for an IPv4 underlay. LISP can carry IPv4 in IPv6 and IPv6 in IPv4, which makes it useful for IPv6 transition too.
graph LR
A["Outer IP<br/>RLOC to RLOC"] --> B["UDP<br/>dst 4341"] --> C["LISP header<br/>8 bytes, instance ID"] --> D["Original IP<br/>EID to EID"] --> E["Payload"]
Use cases¶
| Use case | How LISP helps |
|---|---|
| Multihoming and ingress traffic engineering | Priority and weight per RLOC, no BGP needed at the site |
| Host and VM mobility | The EID keeps its address when it moves, the new ETR registers it and the MS notifies the old one |
| IPv6 transition | IPv6 EIDs over an IPv4 underlay or the reverse |
| Multitenancy | The instance ID keeps tenants apart, each mapped to a VRF |
| SD-Access | The control plane node is the MS/MR, fabric edges register endpoints, borders act as PxTRs |
Exam trap
The Map Server receives registrations from ETRs. The Map Resolver receives requests from ITRs. The roles are easy to swap under time pressure. Remember that the Resolver handles map-Requests (it resolves questions), while the Server stores the registrations it serves answers from.
Exam trap
The underlay never carries EID prefixes. A question that says the core routers need routes to the endpoint subnets for LISP to work is wrong: the core only needs to route between RLOCs.
What LISP configuration looks like¶
You will not type this on ENCOR, but recognising it helps on "refer to the exhibit" items. This is the classic IOS syntax. Newer IOS XE releases use a service ipv4 and instance-id structure and may display the same configuration in that form.
2.3.b VXLAN¶
The problem: Layer 2 that scales¶
Data centres and campus fabrics want two things that VLANs cannot give together: Layer 2 adjacency anywhere (for VM mobility and for keeping a subnet across many switches), and a routed, loop-free underlay with ECMP. VLANs also stop at 4094 IDs. Virtual Extensible LAN (VXLAN) solves both by tunnelling Ethernet frames over IP.
Encapsulation¶
graph LR
A["Outer Ethernet<br/>14 bytes"] --> B["Outer IPv4<br/>20 bytes, VTEP to VTEP"] --> C["Outer UDP<br/>8 bytes, dst 4789"] --> D["VXLAN header<br/>8 bytes, 24-bit VNI"] --> E["Original Ethernet frame"]
| Field | Detail |
|---|---|
| VXLAN Network Identifier (VNI) | 24 bits, about 16 million segments, compared with 4094 VLANs |
| UDP destination port | 4789 (IANA) |
| UDP source port | Derived from a hash of the inner frame's headers, so different flows take different ECMP paths through the underlay |
| Overhead | 50 bytes with an IPv4 underlay (54 if the outer frame carries an 802.1Q tag) |
| Underlay MTU | Must be raised (commonly to 9000 or more, at least 1550) so that 1500-byte host frames fit |
VTEPs and VNIs¶
A VXLAN Tunnel Endpoint (VTEP) encapsulates and decapsulates. It is usually a switch (hardware VTEP) but can be a hypervisor's virtual switch (software VTEP). Each VTEP has an IP address on a loopback, reachable through the underlay. On Cisco switches the VTEP is the NVE (Network Virtualization Edge) interface.
| VNI type | Maps to | Used for |
|---|---|---|
| Layer 2 VNI | A VLAN or bridge domain | Bridging within a segment across the fabric |
| Layer 3 VNI | A VRF | Routing between segments of one tenant across the fabric (symmetric IRB) |
How VTEPs learn where MAC addresses are¶
VXLAN itself defines only the encapsulation. Something must tell each VTEP which remote VTEP a destination MAC lives behind, and how to deliver broadcast, unknown unicast and multicast (BUM) traffic.
| Control plane option | How it works | Where you see it |
|---|---|---|
| Flood and learn, multicast underlay | Each VNI maps to a multicast group. BUM traffic goes to the group and VTEPs learn remote MACs from data traffic | Early VXLAN (RFC 7348 baseline) |
| Flood and learn, ingress replication | The source VTEP sends a unicast copy of each BUM frame to every VTEP in a configured list | Underlays without multicast |
| BGP EVPN | MP-BGP (L2VPN EVPN address family) advertises MAC and IP routes and VTEP membership. Learning becomes control-plane based | Cisco data centre (Nexus) and Catalyst BGP EVPN campus |
| LISP | Edges register endpoints with the MS/MR and query it, as in the LISP section above | SD-Access |
VXLAN in SD-Access¶
SD-Access uses VXLAN-GPO (Group Policy Option), which uses reserved bits in the VXLAN header to carry a 16-bit group policy ID. That field carries the Scalable Group Tag (SGT) across the fabric, so policy can be enforced at the egress edge based on the source group, not just the IP address. The VNI identifies the virtual network (VRF) or the Layer 2 segment.
Exam trap
VXLAN is not a control plane and does not use TCP. It is a stateless UDP encapsulation. If an option says VXLAN "distributes endpoint reachability" or "retransmits lost frames", it is wrong. The control plane is flood and learn, BGP EVPN or LISP.
Exam trap
The 50-byte VXLAN overhead lands on the underlay. If the fabric underlay is left at 1500 bytes, small pings work and full-size frames are dropped. The fix is a larger underlay MTU, not a smaller host MTU.
What VXLAN configuration looks like¶
Recognition only. A Catalyst 9000 BGP EVPN leaf maps a VLAN to a VNI and defines the NVE interface:
vlan configuration 10
member evpn-instance 10 vni 10010
!
interface nve1
no ip address
source-interface Loopback1
host-reachability protocol bgp
member vni 10010 ingress-replication
!
show nve peers ! remote VTEPs and their state
show nve vni ! VNIs, their mode and state
LISP and VXLAN together¶
| Question | Answer |
|---|---|
| Which protocol finds where an endpoint is? | LISP (in SD-Access), BGP EVPN (in EVPN fabrics) |
| Which protocol carries the user frame between switches? | VXLAN |
| Why not LISP's own data plane in SD-Access? | LISP's standard data plane (RFC 9300) is built to carry IP packets. VXLAN carries whole Ethernet frames, so SD-Access can offer Layer 2 services and carry the SGT in the GPO header |
| Port numbers to remember | LISP control 4342, LISP data 4341, VXLAN 4789 |
Lab: watch LISP resolve an EID¶
Topology: three Catalyst 8000v routers. CORE is the MS/MR. xTR1 and xTR2 are site edges. Only RLOCs are in the underlay routing protocol; the EID loopbacks are not advertised anywhere.
graph LR
E1["Lo10 EID<br/>192.168.1.1/24"] --- X1["xTR1"]
X1 -- "Gi1 10.1.3.1/30" --- C["CORE MS/MR<br/>Lo0 10.255.255.3"]
C -- "Gi2 10.2.3.2/30" --- X2["xTR2"]
X2 --- E2["Lo10 EID<br/>192.168.2.1/24"]
- Address the links as shown (CORE uses 10.1.3.2 on Gi1 and xTR2 uses 10.2.3.1). Run OSPF area 0 on the three links and CORE's Lo0 only. Do not advertise Lo10 on either xTR.
- Confirm the underlay:
ping 10.2.3.1 source 10.1.3.1works from xTR1, andshow ip route 192.168.2.0on xTR1 returns nothing. - Configure CORE as MS/MR with sites SITE1 (192.168.1.0/24) and SITE2 (192.168.2.0/24), as in the MS/MR tab above.
- Configure xTR1 with the xTR tab above. Configure xTR2 the same way with
database-mapping 192.168.2.0/24 10.2.3.1 priority 1 weight 100. - On CORE, check registrations. On xTR1, ping the remote EID and inspect the map-cache.
Expected verification (formats vary slightly by release):
CORE# show lisp site
Site Name Last Up Who Last Inst EID Prefix
Register Registered ID
SITE1 00:00:31 yes 10.1.3.1 192.168.1.0/24
SITE2 00:00:29 yes 10.2.3.1 192.168.2.0/24
xTR1# ping 192.168.2.1 source Loopback10
.!!!!
xTR1# show ip lisp map-cache
LISP IPv4 Mapping Cache for EID-table default (IID 0), 2 entries
0.0.0.0/0, uptime: 00:04:10, expires: never, via static send map-request
Negative cache entry, action: send-map-request
192.168.2.0/24, uptime: 00:00:06, expires: 23:59:53, via map-reply, complete
Locator Uptime State Pri/Wgt
10.2.3.1 00:00:06 up 1/100
The first ping packet is lost while the Map-Request is resolved. The map-cache then holds the remote EID prefix with its RLOC and a 24-hour TTL. The global routing table on xTR1 still has no route to 192.168.2.0/24, which is the whole point: reachability comes from the mapping system, not from routing.
Explore: change the key on xTR2 only and watch SITE2 stop registering on CORE (show lisp site shows no under Up). Then capture on the CORE links in CML and find UDP 4342 (Map-Register, Map-Request) and UDP 4341 (data).
Quick check¶
In SD-Access, which protocol provides the data plane and which provides the control plane?
VXLAN (the GPO variant) is the data plane. LISP is the control plane, with the control plane node acting as MS/MR.
Why does VXLAN use a hash of the inner headers for the outer UDP source port?
To give the underlay entropy for ECMP. Different inner flows produce different outer source ports, so underlay routers spread them across equal-cost paths instead of sending all VTEP-to-VTEP traffic down one link.
A multihomed LISP site has two RLOCs with priority 1, weights 75 and 25. How is incoming traffic distributed?
Both RLOCs have the same (best) priority, so ITRs share traffic between them in proportion to the weights: about 75 percent to the first RLOC and 25 percent to the second.
References¶
- RFC 9300, LISP data plane, RFC 9301, LISP control plane, RFC 7348, VXLAN
- Cisco IOS XE "IP Routing: LISP Configuration Guide": search "LISP configuration guide IOS XE" on cisco.com
- Cisco "BGP EVPN VXLAN Configuration Guide" for Catalyst 9000 switches: search that title on cisco.com
- Cisco SD-Access design guide (CVD): search "Software-Defined Access Solution Design Guide" on cisco.com
- Cisco Live On-Demand Library: search "LISP", "VXLAN EVPN" and "SD-Access fabric"
- Diagram library: E16 LISP registration and resolution and E17 VXLAN encapsulation
Unlock the full question banks and cram sheets
A free account opens every question bank, the timed practice exams, the printable cram sheets, all the simulations and the lab files. Without one you see a 5-question sample of each.
No card needed. Study tips by email are optional and off unless you tick the box. Your address is never sold or shared. Privacy policy ยท Terms
Signed in as . Your account
You're on the free account, so lessons after the first module, question banks, exams and cram sheets show a sample. See Track Pass and All-Access
Also from NetManager Systems: NetManager, network monitoring for multi-vendor networks. Try the NetManager, NetDiag, PCAP Analyzer and OpsDash demos: every new account gets a free 7-day read-only login to each.