Difference between revisions of "Cisco VXLAN"

From HackerNet
Jump to: navigation, search
m
 
(3 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. VXLAN i sig har inget separat control plane utan signalering får skötas av en extern controller, BGP 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]].
  
==Konfiguration==
+
==Flood and Learn==
Default VXLAN UDP destination är 8472.
+
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 udp port <number>
 
 
 
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.  
 
 
  interface lo0
 
  interface lo0
 
   ip address 11.11.11.11 255.255.255.255
 
   ip address 11.11.11.11 255.255.255.255
 
   
 
   
 
  interface nve1
 
  interface nve1
 +
  source-interface Loopback0
 
   member vni 5001 mcast-group 239.0.10.10
 
   member vni 5001 mcast-group 239.0.10.10
  source-interface Loopback0
 
 
   
 
   
 
  interface GigabitEthernet2
 
  interface GigabitEthernet2
Line 23: Line 20:
  
 
'''Unicast''' <br/>
 
'''Unicast''' <br/>
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 manuellt.
+
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
 
  interface nve1
 
   ingress-replication 22.22.22.22  
 
   ingress-replication 22.22.22.22  
Line 31: 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.
 +
 +
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
  
===GPE===
+
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]].
 +
 
 +
==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 105:
 
   tunnel vxlan vni 12345
 
   tunnel vxlan vni 12345
  
=EVPN=
+
==FHRP över VXLAN==
Ethernet VPN (RFC 7432) är en modernare variant än [[Cisco_VPLS|VPLS]] för att tillhandahålla Ethernet multipoint services över IP, MPLS eller SR. BGP EVPN är en ny adressfamilj som bl.a. har features för att hålla koll på hostar som flyttar mellan datacenter (sekvensnummer i annonseringarna) och kan då konvergera snabbt. EVPN är öppet så det finns interoperability med andra network vendors, se t.ex. [[Quagga#EVPN|Quagga EVPN]].  
+
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
  
router bgp 100
+
==Q-in-VNI==
  address-family l2vpn evpn
+
Endast VXLAN Bridging funkar med Q-in-VNI.
  neighbor 1.1.1.1 activate
+
interface nve1
  neighbor 1.1.1.1 send-community both
+
  overlay-encapsulation vxlan-with-tag
  exit-address-family
 
  !
 
  address-family ipv4 vrf evpn1
 
  advertise l2vpn evpn
 
  neighor 10.0.0.10 remote-as 65000
 
 
 
Verify
 
show ip bgp l2vpn evpn summary
 
 
 
==NX-OS==
 
I en VXLAN-EVPN based fabric så kommer MAC learning att göras via control plane (MP-BGP) istället för data plane.
 
 
 
feature nv overlay
 
feature vn-segment-vlan-based
 
nv overlay evpn
 
feature bgp
 
 
   
 
   
 +
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
 
  interface nve1
   no shutdown
+
   overlay-encapsulation vxlan-with-tag tunnel-control-frames lacp
  source-interface loopback0
+
QinQ-QinVNI
+
  interface Ethernet1/4
router bgp 65000
+
   switchport trunk allow-multi-tag
  address-family l2vpn evpn
 
  neighbor 10.0.0.10
 
    remote-as 65000
 
    update-source loopback0
 
    address-family l2vpn evpn
 
      send-community extended
 
 
vlan 100
 
  vn-segment 1000100
 
 
evpn
 
  vni 1000100 l2
 
    rd auto
 
    route-target import auto
 
    route-target export auto
 
 
 
Det går att köra Controller-less VXLAN och VTEP:arna kommer då att upptäckas med BGP. Ange att control plane learning görs med BGP.
 
  interface nve1                       
 
  host-reachability protocol bgp
 
 
 
Verify
 
show nve peers detail
 
show bgp l2vpn evpn summary
 
 
 
'''Route Reflector''' <br/>
 
Precis som med övriga adressfamiljer kan man med hjälp av route reflector öka skalbarhet och förenkla konfigurationen. Spine-switchar kan t.ex. stå för denna roll.
 
 
 
router bgp 65000
 
  address-family l2vpn evpn
 
   neighbor 10.0.0.11
 
    remote-as 65000
 
    update-source loopback0
 
    address-family l2vpn evpn
 
      send-community extended
 
      route-reflector-client
 
  
 
[[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