Difference between revisions of "Cisco VXLAN"

From HackerNet
Jump to: navigation, search
m
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
Virtual Extensible LAN (VXLAN) är en network virtualization technology, med andra ord enkapsuleringsteknik (overlay). Det maximala antalet VLAN på ett Ethernet-nätverk är 4094 (IEEE 802.1Q). Med VXLAN höjs denna gräns till 16 miljoner. Ethernet frames enkapsuleras i IP-paket och transporteras med UDP, default UDP destination port är 4789. VXLAN i sig har inget separat control plane utan signalering får skötas av en extern controller, BGP EVPN eller flood and learn. Vid det senare så kommer L2 flooding (unknown unicast, broadcast) att emuleras med multicast och VTEP:arna kommer på så sätt att lära sig vilka MAC-adresser som finns på andra sidan. Detta leder till att VXLAN i sig har ingen inbyggd felisolering så som t.ex. [[Cisco_OTV|OTV]] har. VXLAN har inte stöd för service tags så som Geneve har. Se även [[Cisco_VLAN|Cisco VLAN]].
+
Virtual Extensible LAN (VXLAN) är en network virtualization technology, med andra ord enkapsuleringsteknik (overlay). Det maximala antalet VLAN på ett Ethernet-nätverk är 4094 (IEEE 802.1Q). Med VXLAN höjs denna gräns till 16 miljoner. Ethernet frames enkapsuleras i IP-paket och transporteras med UDP, default UDP destination port är 4789. Tack vare att det är vanliga IP-paket som traverserar fabricen kan alla länkar användas och det finns stöd för ECMP. VXLAN i sig har inget separat control plane utan signalering får skötas av en extern controller, BGP EVPN eller flood and learn. Vid det senare så kommer L2 flooding (unknown unicast, broadcast) att emuleras med multicast och VTEP:arna kommer på så sätt att lära sig vilka MAC-adresser som finns på andra sidan. Detta leder till att VXLAN i sig har ingen inbyggd felisolering så som t.ex. [[Cisco_OTV|OTV]] har. VXLAN har inte stöd för service tags så som t.ex. Geneve har. Ska NX-OS manageras av en third-party controller måste man slå på NXDB. Se även [[Cisco_VLAN|Cisco VLAN]].
 
 
===Flood and Learn===
 
  
 +
==Flood and Learn==
 
VXLAN Gateway använder sig av Network Virtualization Endpoint (NVE) Interface. För att kunna använda multicast måste man köra [[Cisco_PIM|PIM]] på underlay network. Om man ska enkapsulera frames som är VLAN-taggade måste man ta bort taggen när det skickas VLAN -> VXLAN och sätta på den igen i andra riktningen, se exemplet (BD-oriented mode).  
 
VXLAN Gateway använder sig av Network Virtualization Endpoint (NVE) Interface. För att kunna använda multicast måste man köra [[Cisco_PIM|PIM]] på underlay network. Om man ska enkapsulera frames som är VLAN-taggade måste man ta bort taggen när det skickas VLAN -> VXLAN och sätta på den igen i andra riktningen, se exemplet (BD-oriented mode).  
 
  interface lo0
 
  interface lo0
Line 29: Line 28:
 
  show nve peers
 
  show nve peers
 
  show bridge-domain 1
 
  show bridge-domain 1
 +
show mac address-table nve
 +
 +
===Nexus===
 +
VXLAN är en vanlig overlay-teknik i datacenter. Underlay ska lösa routing mellan IPv4-loopbacks samt ha stöd för jumbo frames (mtu 9216). Man kan köra IP Unnumbered mellan leaf och spine. UDP port number är 4789, detta går ej att ställa om. ARP suppression är supporterat. För tenants IGMP notera att interface nve1 default är en static mrouter-port.
 +
feature nv overlay
 +
feature vn-segment-vlan-based
 +
interface nve1
 +
  no shutdown
 +
  source-interface loopback0
 +
Bridge domain med static flood list.
 +
vlan 100
 +
  vn-segment 10100
 +
 +
interface nve1
 +
  member vni 10100
 +
    ingress-replication protocol static
 +
      peer-ip 10.0.0.3
 +
      peer-ip 10.0.0.4
 +
      peer-ip 10.0.0.5
 +
 +
Verify
 +
show nve int nve1
 +
show nve peers
 +
show nve vni
 +
show nve vni ingress-replication
 +
 +
'''Multicast underlay''' <br/>
 +
Ingress replication supporteras på Nexus 9000 men inte Nexus 5600 eller Nexus 7000. Man får då lösa BUM med multicast. Alla noder måste routa multicast. Best practice är att ha RP i spine-lagret. Använd anycast RP för lastdelning samt redundans. Notera att multicast kontra unicast är ett designval som innebär en trade-off mellan control plane scalability och data plane efficiency.
  
===EVPN===
+
Spine
 +
ip pim rp-address 10.0.0.100 group-list 224.0.0.0/4
 +
ip pim anycast-rp 10.0.0.100 10.0.0.2
 +
ip pim anycast-rp 10.0.0.100 10.0.0.3
 +
 +
show ip mroute
 +
 
 +
'''Nexus 5600''' <br/>
 +
Nexus 5600 måste köra i store-and-forward switching mode för att supportera VXLAN encapsulation.
 +
hardware ethernet store-and-fwd-switching
 +
copy run start
 +
reload
 +
show switching-mode
 +
 
 +
====vPC====
 +
När man kör [[Nexus_vPC|vPC]] med VXLAN måste man sätta en secondary IP address på det loopback som är source för NVE. Denna ska vara samma på både vPC-peers och det är så dom presenterar sig själva som en enda VTEP till remote NVE peers. CFS dubbelkollar att man har gjort rätt. Däremot om peer-linken går ner så kommer loopback primary address att användas som source på de VXLAN-enkapsulerade paketen som skickas iväg.
 +
 
 +
vPC Best practice när man kör VXLAN.
 +
vpc domain 1
 +
  peer-switch
 +
  peer-keepalive destination 10.0.0.2 source 10.0.0.1
 +
  peer-gateway
 +
  ipv6 nd synchronize
 +
  ip arp synchronize
 +
 
 +
Man bör också sätta upp ett nve-peer-link-vlan för att förhindra suboptimal routing. Detta vlan ska endast tillåtas på trunken som är peer-link.
 +
vlan 10
 +
 +
vpc nve peer-link-vlan 10
 +
 +
interface vlan10
 +
  ip router ospf 1 area 0
 +
  ip ospf cost 2
 +
  ip pim sparse-mode
 +
  no shut
 +
 
 +
==EVPN==
 
Se [[Cisco_EVPN|Cisco EVPN]].
 
Se [[Cisco_EVPN|Cisco EVPN]].
  
===GPE===
+
==GPE==
 
VXLAN Generic Protocol Extension finns till för att ge VXLAN tillägg såsom OAM och versionsmöjligheter.
 
VXLAN Generic Protocol Extension finns till för att ge VXLAN tillägg såsom OAM och versionsmöjligheter.
 
  interface Tunnel1  
 
  interface Tunnel1  
Line 41: Line 104:
 
   tunnel destination 10.0.0.20
 
   tunnel destination 10.0.0.20
 
   tunnel vxlan vni 12345
 
   tunnel vxlan vni 12345
 +
 +
==FHRP över VXLAN==
 +
Man kan använda [[Cisco_FHRP|FHRP]]-protokoll tillsammans med VXLAN. De skickar hello packets som då floodas över VXLAN overlayet. Man måste ge tcam till detta, ''hardware access-list tcam region arp-ether 256''. Detta funkar endast med flood and learn VXLAN.
 +
interface vlan 100
 +
  ip address 192.168.1.2/24
 +
  hsrp 100
 +
    ip 192.168.1.1
 +
 +
==Q-in-VNI==
 +
Endast VXLAN Bridging funkar med Q-in-VNI.
 +
interface nve1
 +
  overlay-encapsulation vxlan-with-tag
 +
 +
interface ethernet 1/4
 +
  switchport mode dot1q-tunnel
 +
  switchport access vlan 100
 +
  spanning-tree bpdufilter enable
 +
Man kan även släppa över LACPDU:er.
 +
interface nve1
 +
  overlay-encapsulation vxlan-with-tag tunnel-control-frames lacp
 +
QinQ-QinVNI
 +
interface Ethernet1/4
 +
  switchport trunk allow-multi-tag
  
 
[[Category:Cisco]]
 
[[Category:Cisco]]

Latest revision as of 12:31, 28 August 2019

Virtual Extensible LAN (VXLAN) är en network virtualization technology, med andra ord enkapsuleringsteknik (overlay). Det maximala antalet VLAN på ett Ethernet-nätverk är 4094 (IEEE 802.1Q). Med VXLAN höjs denna gräns till 16 miljoner. Ethernet frames enkapsuleras i IP-paket och transporteras med UDP, default UDP destination port är 4789. Tack vare att det är vanliga IP-paket som traverserar fabricen kan alla länkar användas och det finns stöd för ECMP. VXLAN i sig har inget separat control plane utan signalering får skötas av en extern controller, BGP EVPN eller flood and learn. Vid det senare så kommer L2 flooding (unknown unicast, broadcast) att emuleras med multicast och VTEP:arna kommer på så sätt att lära sig vilka MAC-adresser som finns på andra sidan. Detta leder till att VXLAN i sig har ingen inbyggd felisolering så som t.ex. OTV har. VXLAN har inte stöd för service tags så som t.ex. Geneve har. Ska NX-OS manageras av en third-party controller måste man slå på NXDB. Se även Cisco VLAN.

Flood and Learn

VXLAN Gateway använder sig av Network Virtualization Endpoint (NVE) Interface. För att kunna använda multicast måste man köra PIM på underlay network. Om man ska enkapsulera frames som är VLAN-taggade måste man ta bort taggen när det skickas VLAN -> VXLAN och sätta på den igen i andra riktningen, se exemplet (BD-oriented mode).

interface lo0
 ip address 11.11.11.11 255.255.255.255

interface nve1
 source-interface Loopback0
 member vni 5001 mcast-group 239.0.10.10

interface GigabitEthernet2
 service instance 1 ethernet
  encapsulation dot1q 100
  rewrite ingress tag pop 1 symmetric

bridge-domain 1
 member vni 5001
 member GigabitEthernet2 service-instance 1

Unicast
Om man inte kan köra multicast går det lösa med unicast och headend replication (HER). Då konfigurerar man member vni utan mcast-group och istället pekar ut andra sidan VTEP:s manuellt.

interface nve1
 ingress-replication 22.22.22.22 

Verify

show nve vni
show nve peers
show bridge-domain 1
show mac address-table nve

Nexus

VXLAN är en vanlig overlay-teknik i datacenter. Underlay ska lösa routing mellan IPv4-loopbacks samt ha stöd för jumbo frames (mtu 9216). Man kan köra IP Unnumbered mellan leaf och spine. UDP port number är 4789, detta går ej att ställa om. ARP suppression är supporterat. För tenants IGMP notera att interface nve1 default är en static mrouter-port.

feature nv overlay
feature vn-segment-vlan-based
interface nve1
  no shutdown
  source-interface loopback0

Bridge domain med static flood list.

vlan 100
 vn-segment 10100

interface nve1
  member vni 10100
    ingress-replication protocol static
     peer-ip 10.0.0.3
     peer-ip 10.0.0.4
     peer-ip 10.0.0.5

Verify

show nve int nve1
show nve peers
show nve vni
show nve vni ingress-replication 

Multicast underlay
Ingress replication supporteras på Nexus 9000 men inte Nexus 5600 eller Nexus 7000. Man får då lösa BUM med multicast. Alla noder måste routa multicast. Best practice är att ha RP i spine-lagret. Använd anycast RP för lastdelning samt redundans. Notera att multicast kontra unicast är ett designval som innebär en trade-off mellan control plane scalability och data plane efficiency.

Spine

ip pim rp-address 10.0.0.100 group-list 224.0.0.0/4 
ip pim anycast-rp 10.0.0.100 10.0.0.2 
ip pim anycast-rp 10.0.0.100 10.0.0.3 

show ip mroute

Nexus 5600
Nexus 5600 måste köra i store-and-forward switching mode för att supportera VXLAN encapsulation.

hardware ethernet store-and-fwd-switching
copy run start
reload
show switching-mode

vPC

När man kör vPC med VXLAN måste man sätta en secondary IP address på det loopback som är source för NVE. Denna ska vara samma på både vPC-peers och det är så dom presenterar sig själva som en enda VTEP till remote NVE peers. CFS dubbelkollar att man har gjort rätt. Däremot om peer-linken går ner så kommer loopback primary address att användas som source på de VXLAN-enkapsulerade paketen som skickas iväg.

vPC Best practice när man kör VXLAN.

vpc domain 1
 peer-switch
 peer-keepalive destination 10.0.0.2 source 10.0.0.1
 peer-gateway
 ipv6 nd synchronize
 ip arp synchronize

Man bör också sätta upp ett nve-peer-link-vlan för att förhindra suboptimal routing. Detta vlan ska endast tillåtas på trunken som är peer-link.

vlan 10

vpc nve peer-link-vlan 10

interface vlan10
 ip router ospf 1 area 0
 ip ospf cost 2
 ip pim sparse-mode
 no shut

EVPN

Se Cisco EVPN.

GPE

VXLAN Generic Protocol Extension finns till för att ge VXLAN tillägg såsom OAM och versionsmöjligheter.

interface Tunnel1 
 ip address 192.168.1.1 255.255.255.0 
 tunnel source GigabitEthernet2 
 tunnel mode vxlan-gpe ipv4 
 tunnel destination 10.0.0.20
 tunnel vxlan vni 12345

FHRP över VXLAN

Man kan använda FHRP-protokoll tillsammans med VXLAN. De skickar hello packets som då floodas över VXLAN overlayet. Man måste ge tcam till detta, hardware access-list tcam region arp-ether 256. Detta funkar endast med flood and learn VXLAN.

interface vlan 100
 ip address 192.168.1.2/24
  hsrp 100
   ip 192.168.1.1

Q-in-VNI

Endast VXLAN Bridging funkar med Q-in-VNI.

interface nve1
 overlay-encapsulation vxlan-with-tag

interface ethernet 1/4
 switchport mode dot1q-tunnel
 switchport access vlan 100
 spanning-tree bpdufilter enable

Man kan även släppa över LACPDU:er.

interface nve1
 overlay-encapsulation vxlan-with-tag tunnel-control-frames lacp

QinQ-QinVNI

interface Ethernet1/4
 switchport trunk allow-multi-tag