Software Defined Networking (SDN) - OpenFlow og OVSDB-forbindelse

Software Defined Networking (SDN) - OpenFlow og OVSDB-forbindelse

Embed docs direkte på din hjemmeside med et par linjer kode

Denne artikel er baseret på OpenFlow- og OVSDB-forbindelse mellem SDN-controller og Openflow-baserede switche og indeholder oplysninger om forbindelseslivscyklus. Vi vil bruge open source SDN controller, dvs. Opendaylight (ODL) Carbon release og Openflow virtual switch, dvs. OpenVswitch (OVS) version 2.6.0 for at beskrive om OVSDB og Openflow-forbindelse.

SDN controller styrer underliggende Openflow-switche via to typer af tilslutninger:

  • OVSDB
  • Openflow

OVSDB og Openflow-forbindelse

OVSDB er OVS database management protocol, der definerer skema for OVS database og specifikation for kommunikation mellem controller og switch. SDN-controller bruger denne protokol til at styre OVS-switch ved at udfylde sin database med den påtænkte konfiguration.

Typisk kører SDN-controller i passiv tilstand for at lytte til OVSDB og Openflow-forbindelser fra henholdsvis OVS på portene 6640 og 6653.

Så først, lad os starte ODL controller, du kan downloade den fra her. Det er en forudsætning for at indstille JAVA_HOME miljøvariabel i dit system til den nyeste Java-version. At køre ODL er så let, bare lav under trin:

  1. Download ODL distribution fra her.
  2. Udpak ODL-distributionen.
  3. Indtast underkataloget "bin", der er placeret under toppakken for den downloadede pakke.
  4. Kør følgende kommando for at få din controller op: karaf

Nedenfor ses billedet for ovenstående trin:

Installer OpenDaylight

Da vi har brug for at styre OVS-switche, til hvilke OVSDB og Openflow-forbindelser skal laves, skal Openflow og OVSDB plugins installeres i ODL. som skal gøres Dette kan gøres som vist nedenfor:

Openflow og OVSDB plugin installation

Når Openflow og OVSDB plugins er installeret, begynder ODL at lytte til henholdsvis Openflow og OVSDB-forbindelser på henholdsvis 6653 og 6640. Dette kan kontrolleres på controller ved at køre følgende kommandoer:

netstat -a | grep 6653

netstat -a | grep 6640

netstat resultat

Det bemærkes, at OVS-omskifter allerede skal køre, inden der udføres nogen OVS-kommando. Hvis du vil køre OVS på Ubuntu, skal du køre følgende kommando med root-tilladelser:

sudo /etc/init.d/openvswitch-switch start

Den er tilgængelig som service, så du kan også tjekke sin status.

sudo /etc/init.d/openvswitch-switch status

Når OVS kører, kan du også udføre sine CLI-kommandoer. For eksempel,

sudo ovs-vsctl show

Nedenfor ses billedet til kommandoen for udførelse af kommandoen:

ovs-vsctl show

På OVS-siden køres under kommando for at starte OVSDB-forbindelse med controller:

ovs-vsctl set-manager tcp: <controller-IP>: 6640

For at bekræfte, at forbindelsen er etableret, kan kommandoen underkøres, som viser 'is_connected' flag er sat til sand i udgangen.

sudo ovs-vsctl show

Forbindelse is_connected flag

Openflow-forbindelse er lavet på broen, så du kan enten oprette bro på OVS eller ODL kan også oprette bro på OVS ved at sende konfiguration til OVS via OVSDB-forbindelse. Over broen i OVS kan kommandoen nedenfor køres for at forbinde bro til ODL, som etablerer etableringen af ​​Openflow-forbindelse mellem ODL og OVS.

ovs-vsctl set-controller <bronavn> tcp: <controller-IP>: 6653

Se nedenfor for deres forbindelsesoplysninger.

forbindelses detaljer

Som vi har set fra OVS side, har OVSDB og Openflow forbindelser været lavet, og det samme kan verificeres på ODL side ved at køre følgende kommandoer.

netstat -a | grep 6653

netstat -a | grep 6640

Se nedenstående billede for udgangen af ​​kommandoerne, som bekræfter forbindelsen ESTABLISHED state:

Forbindelser etableret

Da OVSDB og Openflow-forbindelse er baseret på TCP, kan meddelelser, der udveksles mellem ODL og OVS, nemt indfanges via Wireshark-software. Se nedenfor pakkepakningsbillede, der viser meddelelser, der udveksles under tilslutningsopsætningen.

Wireshark

I Wireshark-pakkeopsamlingslogfiler kan du se forskellige Openflow-meddelelser, som udveksles mellem controller og OVS under forbindelsesopsætningen.

Som du ser under forbindelsesopsætningen, sendte ODL FEATURES_REQUEST Openflow-meddelelser, og ODL modtog FEATURES_REPLY fra OVS. Inde i FEATURES_REPLY meddelelser får ODL datapat ID (dvs. unik identifikation) af OVS-broen, der tager sig af videresendelse (baseret på Openflow-regler konfigureret af OFL), trafikken mellem de virtuelle maskiner, der er forbundet til OVS-portene.

På OVS side kan følgende kommando køres for at vise detaljer om broen.

sudo ovs-ofctl viser br-int -OOpenFlow13

Tjek nedenfor billedet for udgangen af ​​kommandoen:

ovfs-ofctl kommandoresultat

Her kan du se FEATURE_REPLY viser datapath-id'et (i hex-format) af broen på OVS.

Selv ODL har dashboard DLUX funktion, som giver GUI web interface til ODL controller på url http://localhost:8181/index.html på hvilken ODL-bruger kan logge ind (som standard brugernavn og adgangskode er 'admin') og tjek netværkstopologi på browseren i det system, hvor ODL kører. Tjek under billeder for samme.

ODL har dashboard DLUX funktion

Topologi

I ovenstående billede kan du se, at OVS-kontakten vises i netværkstopologien, der styres af ODL-controlleren. Siden har vi kun tilsluttet en switch, derfor vises kun en Openflow node. Her vises OVS-omskifter med datapat-id i decimaltal.

For at slette Openflow-forbindelse med ODL kan kommandoen nedenfor køres på OVS:

ovs-vsctl del-controller <bronavn>

For at slette OVSDB-forbindelse med ODL kan kommandoen nedenfor køres på OVS:

ovs-vsctl del-manager

Når forbindelsen er slettet, er 'is_conncted' flag, der var 'true', da forbindelsen blev oprettet, forsvinder fra output af 'ovs-vsctl show' CLI kommando af OVS.

Se nedenstående billede for OpenFlow- og OVSDB-forbindelse slettet initieret fra OVS-siden:

OpenFlow og OVSDB-forbindelse

Til fejlfinding og fejlfinding kan du tjekke logfiler, der opretholdes i ODL og OVS.

ODL logging sti

Når ODL distribution (som du har downloadet) er udpakket og du kører 'karaf' binær eksekverbar, så bliver 'log'-underkatalog oprettet, som indeholder karaf.log-filer, og deres generiske sti er: ~ / distribution-karaf- <version-nummer> - <udgivelsesnavn> / data / log.

Tjek nedenfor billedet for ODL side logfiler.

ODL logging sti

OVS logging sti

Når OVS kører, genererer den en OVSDB logfil med navnet 'ovsdb-server.log' og Openflow logfil med navnet 'ovs-vswitchd.log' på sti:

/ Var / log / openvswitch

Se nedenstående billede for OVS-side logfiler til OVSDB (ovsdb-server.log) og Openflow-moduler (ovs-vswitchd.log) af OVS.

OVS logging sti

+ === +

Referencer:

Kilde

Giv en kommentar

Dette websted bruger Akismet til at reducere spam. Lær, hvordan dine kommentardata behandles.