image

Konfiguration av VXLAN

I förra delen av VXLAN gick vi igenom vad VXLAN har att erbjuda, grunderna till hur det fungerar och dom olika komponenterna som gör att VXLAN fungerar. Om ni inte redan läst del 1 av vad VXLAN är så kan ni göra det här!

Men innan vi börjar konfigurerar VXLAN ska vi kolla på ett scenario där VXLAN kan vara användbart och därefter konfigurera utifrån det.

Bakgrund

I labben kommer vi att använda oss av dessa enheter:

  • 3 st Cisco CSR 1000v routrar

  • 2st virtuella PC:s

Labben bygger på topologin nedan. I den här topologin har vi 2 siter, Västerås och Falun med en VTEP i respektive site. Siterna sitter ihopkopplade via en router som agerar transit.

image

VASTERAS och FALUN har ett varsit loopback interface. Västerås har loopback med IP 1.1.1.1 och Falun har Loopback med IP 2.2.2.2 Hos Transit-Router har vi också en loopback med IP 10.10.10.10

Under VASTERAS och FALUN har vi en varsin PC på subnätet 192.168.0.0/24.

Konfiguration

Multicast Routing:

VXLAN kan konfigureras på många sätt. I den här labben kommer vi att använda oss ett av de enklaste sätten för att konfigurera VXLAN där vi inte har något separat kontrollplan vilket man annars ofta gör i form av BGP EVPN. Utan ett separat kontrollplan så måste vi göra någon form av replikering av BUM-trafik, alltså trafik som ska floodas, detta kan man också göra på lite olika sätt. Idag sätter vi upp en multicastgroupp för att hantera floodingen mellan våra VTEP:s,

För att konfigurera multicast routing måste vi genomföra 3 steg:

Först kan vi börja med att konfigurera multicast-routing på alla 3 enheter. Detta gör vi genom att skriva in:ROUTER(config)#ip multicast-routing distributed.

Vi ska också sätta igång Bidir-PIM, för att göra det så ska vi använda oss av detta kommando: ROUTER(config)#ip pim bidir-enable.

Sedan måste vi sätta en rendezvous point (RP) adress. Denna adress kommer vi att sätta som 10.10.10.10 på alla routrar. 10.10.10.10 adressen kommer att finnas hos vår Transit-Router. RP adressen kommer att agera som en “mötesplats” för all multicast trafik. För att konfigurera en RP-adress skriver vi in följande: ROUTER(config)#ip pim rp-address 10.10.10.10 bidir

OSPF Routing:

För att se till att det finns nåbarhet mellan VASTERAS, Transit-Router & FALUN kommer vi att använda OSPF. Vi kommer att köra single area OSPF (area 0) på alla enheter.

För att sätta i gång OSPF processen kör vi ROUTER(config)#router ospf 1.

Router ID:

  • VASTERAS: 1.1.1.1

  • FALUN: 2.2.2.2

  • Transit-Router: 10.10.10.10

När vi ska sätta router ID använder vi oss av kommandot: ROUTER(config-router)#router-id X.X.X.X

När det kommer till länkarna mellan routerna kommer vi att använda oss av dessa IP adresser:

  • VASTERAS - Transit-Router: 10.0.0.0/30

  • FALUN - Transit-Router: 10.0.0.4/30

Vi kommer inte att använda oss av “network” kommandot under ospf konfigurationen. OSPF kommer att aktiveras på interfacenivå. Dock fungerar båda precis lika bra!

Västerås:

Nu är det dags att konfigurera interface per router. Vi kommer att börja med konfigurationen hos VASTERAS.

Först konfigurerar vi ett loopback interface med IP adress 1.1.1.1. Vi konfigurerar även OSPF på loopback 0 interfacet för nåbarhet.

VASTERAS(config)#interface loopback 0

VASTERAS(config-if)#ip address 1.1.1.1 255.255.255.0

VASTERAS(config-if)#ip ospf 1 area 0

Under de interfacen som vi använder måste vi även specificera att de ska köra PIM sparse-mode, detta behövs eftersom vi använder bidirektionell multicast-routing där Transit-Router är specificerad som en “mötesplats” (RP) för all multicast trafik. Vi aktiverar PIM sparse-mode på interfacet genom att köra nedan kommando på interfacet:

VASTERAS(config-if)#ip pim sparse-mode

Efter vi konfigurerat loopback interfacet kan vi börja titta på länken mot Transit-Routern från Västerås. Konfigurationen är snarlik, det som skiljer sig är IP adressen och interfacet i sig. VI konfigurerar länken mot Transit-Routern på detta sätt:

VASTERAS(config)#interface gigabitEthernet 1

VASTERAS(config-if)#description Till_Transit_Router

VASTERAS(config-if)#ip address 10.0.0.1 255.255.255.252

VASTERAS(config-if)#ip pim sparse-mode

VASTERAS(config-if)#ip ospf 1 area 0

VASTERAS(config-if)#no shutdown

VXLAN KOnfiguration:

Nu ska vi konfigurera ett NVE (Network Virtualization Edge) interface. Detta interface kommer att användas för paketering och uppackning av paket. Det är även till detta interface vi knyter vårt VNI. Ett NVE interface som namnet säger är ett logiskt interface (virtuellt).

För att skapa ett NVE interface använder vi oss av kommandot VASTERAS(config)#interface nve 1. När man skapar detta interface kommer det att vara nere, detta är för att vi inte har associerat det med något interface som är uppe ännu.

Vi kommer att associera det med vårt loopback interface vi skapade tidigare genom att skriva in VASTERAS(config-if)#source-interface loopback 0, när vi associerar NVE1 med loopback0 som är uppe kommer det att öppnas ett tunnelinterface och NVE1 kommer att gå upp.

På NVE interfacet sätts ingen IP adress men nu ska vi associera det med vårt VNI och en multicast grupp. När det kommer till att välja VNI kan man välja mellan 4096-16777215, nu blir det nästan svårt att välja! Vi kommer att köra på 10000 för enkelhetens skull.

Nu är det dags att sätta en multicast grupp. Här kan man välja mellan 239.0.0.0 - 239.255.255.255, denna range av multicast adresser är till för lokal användning inom organisationer. Detta är specificerat enligt RFC 2365. Vi kommer att använda oss av 239.0.0.1 som multicast grupp.

För att associera VNI och multicast grupp till vårt NVE interface skriver vi in följande: VASTERAS(config-if)#member vni 10000 mcast-group 239.0.0.1

Nu är det dags att konfigurera ett LAN interface, för att göra detta måste vi gå igenom följande steg:

VASTERAS(config)#interface gigabitEthernet 4

Först ska vi skapa en serviceinstans på den porten vi valt (i detta fall gigabitEthernet 4). Men vad är en serviceinstans? En serviceinstans används för att kunna skapa flera logiska nätverk på ett fysiskt interface. För att konfigurera en serviceinstans använder vi oss av kommandot: VASTERAS(config-if)#service instance 1 ethernet. Nummer ett (“1”) i kommandot är för att kunna identifiera vilken serviceinstans man använder. Man kan välja mellan 1–8000.

Efter vi skapat en serviceinstans på interfacet kommer vi hamna i ett nytt interfacekonfigurations läge som heter “(config-if-srv)”. I detta läge ska vi konfigurera paketering av paket, genom att använda kommandot: VASTERAS(config-if-srv)#encapsulation untagged. Vi kör detta som untagged då switching inte supporteras på CSR routrarna.

Innan vi går vidare till FALUN och Transit-Routern måste vi konfigurera en bridge-domain. Men vad är en bridge domain? Det är en virtuell “bro” mellan VNI och LAN interfacet. En bridge-domain knyter samman ett interface och dess serviceinstans med ett VNI. För att konfigurera detta gör vi följande:

Innan vi börjar konfigurera är det viktigt att stå i det globala konfigurations läget, annars skapas en bridge-domain på service instansen.

Skapa bridge-domain 1: VASTERAS(config)#bridge-domain 1

Länka VNI till bridge-domain 1: VASTERAS(config-bdomain)#member vni 10000

Länka LAN interface samt serviceinstans till bridge-domain 1: VASTERAS(config-bdomain)#member gigabitEthernet 4 service-instance 1

Nu är Västerås klar, nu går vi vidare till Falun!

Falun:

Hos Falun är konfigurationen snarlik, det enda som skiljer sig är interface & IP adresser.

Loopback:

FALUN(config)#interface loopback 0

FALUN(config-if)#ip address 2.2.2.2 255.255.255.0

FALUN(config-if)#ip ospf 1 area 0

FALUN(config-if)#ip pim sparse-mode

FALUN till Transit-Router länk:

FALUN(config)#interface gigabitEthernet 2

FALUN(config-if)#description Till_Transit-Router

FALUN(config-if)#ip address 10.0.0.5 255.255.255.252

FALUN(config-if)#ip pim sparse-mode

FALUN(config-if)#ip ospf 1 area 0

FALUN(config-if)#no shutdown

NVE interface:

FALUN(config)#interface nve 1

FALUN(config-if)#source-interface loopback 0

FALUN(config-if)#member vni 10000 mcast-group 239.0.0.1

LAN interface samt serviceinstans:

FALUN(config)#interface nve 1

FALUN(config-if)#source-interface loopback 0

FALUN(config-if)#member vni 10000 mcast-group 239.0.0.1

Bridge domain:

FALUN(config)#interface gigabitEthernet 4

FALUN(config-if)#no shutdown

FALUN(config-if)#service instance 1 ethernet

FALUN(config-if-srv)#encapsulation untagged

Transit-Router:

Då Transit-Routern enbart används för att illustrera att trafiken går genom internet så hos Transit-Routern är det ingen VXLAN konfiguration. Det vi ska konfigurera hos Transit-Routern är ett Loopback interface samt länkarna mot Västerås och Falun.

Länk mot Västerås:

Transit-Router(config)#interface gigabitEthernet 1

Transit-Routerconfig-if)#description Till_VASTERAS

Transit-Router(config-if)#ip address 10.0.0.2 255.255.255.252

Transit-Router(config-if)#ip pim sparse-mode

Transit-Router(config-if)#ip ospf 1 area 0

Transit-Router(config-if)#no shutdown

Länk mot Falun:

Transit-Router(config)#interface gigabitEthernet 2

Transit-Router(config-if)#description Till_FALUN

Transit-Router(config-if)#ip address 10.0.0.6 255.255.255.252

Transit-Router(config-if)#ip pim sparse-mode

Transit-Router(config-if)#ip ospf 1 area 0

Transit-Router(config-if)#no shutdown

Loopback:

Transit-Router(config)#interface loopback 0

Transit-Router(config-if)#ip address 10.10.10.10 255.255.255.255

Transit-Router(config-if)#ip ospf 1 area 0

Transit-Router(config-if)#ip pim sparse-mode

När vi aktiverar länkarna mot FALUN och VASTERAS kommer de att skapa ett OSPF grannskap. Nu är det dags att verifiera vår konfiguration!

Verifiering

Routing:

Först och främst är det alltid bäst vid både verifiering och felsökning att kolla sin routing tabell för att se till att vi får in alla rötter. Om vi kollar på routing tabellen för samtliga routrar (VASTERAS, Transit-Router och FALUN) så kan vi se att vi får in alla rötter. För att kolla routing tabellen så skriver vi in: ROUTER#show ip route

VASTERAS:

Här ser vi att vi har vårt loopback interface subnät och IP (1.1.1.0/24 samt 1.1.1.1/32). Vi ser även att vi får in Faluns loopback 2.2.2.2 via GigabitEthernet1 vilket är genom Transit-Routern. Sen ser vi vår länk till Transit-Routern samt Transit-Routerns loopback 10.10.10.10, vilket också är vår rendezvous point.

image

Transit-Router:

Hos Transit-Routern ser vi en snarlik routing tabell med alla rötter till Västerås och Falun.

image

Falun:

Sen hos Falun ser vi också Västerås loopback, länken mot Transit-Routern samt vårt eget loopback interface!

image

Ovan tabeller tyder på att vi har nåbarhet mellan Västerås, Transit-Router och Falun, vilket alltid är kul att se!

Tunnel verifiering mellan Västerås och Falun:

För att vår tunnel mellan Västerås och Falun ska initieras måste vi skicka trafik mellan Västerås och Falun, detta kan vi göra genom att logga in på en av datorerna hos antingen Västerås och Falun och pinga den andra PCn.

Här pingar vi PCn i Falun från Västerås och ser att trafik flödar:

image

Nu kan vi kolla hos Falun och Västerås hur tunneln ser ut, detta kan vi göra genom att köra ROUTER#show nve interface 1 detail

image

Här kan vi se information om vårt NVE interface i Västerås, vi ser att interfacet är uppe och den använder VXLAN som paketering. Vi ser även vårt source-interface loopback0 och dess IP adress. Här ser man även statistik om hur många paket som mottagits och hur många som interfacet har skickat ut.

image

Men detta kommando visar inte vilket VNI som används eller vilken enhet som tunneln ansluter sig med. Detta kan man se i kommandot ROUTER#show nve peers. Något som är viktigt att tänka på med detta kommando är att peeringen mellan Västerås och Falun har en timer, om ingen trafik skickas eller tas emot kommer peeringen att gå ner. Det kan alltså vara bra att ha en ping som körs i bakgrunden hos båda datorerna.

image

image

Vad ser vi detta kommando? Jo, vi ser att både VASTERAS och FALUN använder nve1 som peering interface och att VNI:t är 10000. Vi kan även se att tunnel typen är L2DP. Här ser vi också att VASTERAS peerar med IP 2.2.2.2 vilket är Faluns nve1 source-interface. Falun peerar då med Västerås 1.1.1.1 source-interface.

Konfigurationer:

Här finns en sammanställning på alla konfigurationer vi gjort i denna labb!

Västerås:

hostname VASTERAS 
! 
ip multicast-routing distributed 
! 
bridge-domain 1 
member vni 10000 
member GigabitEthernet4 service-instance 1 
! 
interface Loopback0 
no shutdown 
ip address 1.1.1.1 255.255.255.0 
ip pim sparse-mode 13ip ospf 1 area 0 
! 
interface GigabitEthernet1 
no shutdown 
description Till_Transit_Router
ip address 10.0.0.1 255.255.255.252 
ip pim sparse-mode 
ip ospf 1 area 0 
! 
interface GigabitEthernet4 
no shutdown 
no ip address 
service instance 1 ethernet 
encapsulation untagged 
! 
interface nve1 
no shutdown 
source-interface Loopback0 
member vni 10000 mcast-group 239.0.0.1 
! 
router ospf 1 
router-id 1.1.1.1 
! 
ip pim bidir-enable 
ip pim rp-address 10.10.10.10 bidir

Transit-Router:

hostname Transit-Router
!
ip multicast-routing distributed
!
interface Loopback0
no shutdown
ip address 10.10.10.10 255.255.255.255
ip pim sparse-mode
ip ospf 1 area 0
!
interface GigabitEthernet1
no shutdown
description Till_VASTERAS
ip address 10.0.0.2 255.255.255.252
ip pim sparse-mode
ip ospf 1 area 0
!
interface GigabitEthernet2
no shutdown
description Till_FALUN
ip address 10.0.0.6 255.255.255.252
ip pim sparse-mode
ip ospf 1 area 0
!
router ospf 1
router-id 10.10.10.10
!
ip pim bidir-enable
ip pim rp-address 10.10.10.10 bidir

Falun:

hostname FALUN
!
ip multicast-routing distributed
!
bridge-domain 1
member vni 10000
member GigabitEthernet4 service-instance 1
!
interface Loopback0
no shutdown
ip address 2.2.2.2 255.255.255.0
ip pim sparse-mode
ip ospf 1 area 0
!
interface GigabitEthernet2
no shutdown
description Till_Transit_Router
ip address 10.0.0.5 255.255.255.252
ip pim sparse-mode
ip ospf 1 area 0
!
interface GigabitEthernet4
no shutdown
no ip address
service instance 1 ethernet
encapsulation untagged
!
interface nve1
no shutdown
no ip address
source-interface Loopback0
member vni 10000 mcast-group 239.0.0.1
!
router ospf 1
router-id 2.2.2.2
!
ip pim bidir-enable
ip pim rp-address 10.10.10.10 bidir

Sammanfattning

Om vi kollar tillbaka på första delen av VXLAN så talade vi mycket om hur lager 2 trafik paketeras och skickas över lager 3, här kan vi se hur detta händer i praktiken. Det är alltid kul att få se hur saker fungerar i praktiken, men det är minst lika viktigt att veta hur det fungerar i teorin. Personligen tycker jag detta har varit extremt lärorikt!

Vad tycker du om detta inlägg? Tveka inte om att höra av er!

Tack för att du läst detta inlägg!

Consultant


2025

Acebit expanderar

1 minute read

Acebit expanderar – automationsess från Dalarna öppnar i Stockholm

Back to Top ↑

2024

Acebit i Falu-Kuriren

less than 1 minute read

Även Falu-Kuriren har intresserat sig för Acebit och besökt oss i Falun!

Back to Top ↑

2023

Meraki API & Mgmt interface

4 minute read

Nyligen stötte jag på ett scenario som innebar att ca 200 Meraki-enheter behövde byta inställning från DHCP till statisk IP-adressering. Istället för att gör...

Arbeta med VPC Del3 - Konfiguration

3 minute read

I mina tidigare inlägg om virtuella port-channels kikade vi på vad det är och vilka delar de utgör. Det här avsnittet kommer beröra hur en grundkonfiguration...

Få upp farten med concurrency

3 minute read

Bakgrund Idag tänkt jag skriva några rader om att skriva concurrent kod, eller “samtidighet” om vi prompt ska översätta det till svenska. För att enklare för...

Back to Top ↑

2022

Back to Top ↑

2021

Back to Top ↑