De documentatie van dit product is waar mogelijk geschreven met inclusief taalgebruik. Inclusief taalgebruik wordt in deze documentatie gedefinieerd als taal die geen discriminatie op basis van leeftijd, handicap, gender, etniciteit, seksuele oriëntatie, sociaaleconomische status of combinaties hiervan weerspiegelt. In deze documentatie kunnen uitzonderingen voorkomen vanwege bewoordingen die in de gebruikersinterfaces van de productsoftware zijn gecodeerd, die op het taalgebruik in de RFP-documentatie zijn gebaseerd of die worden gebruikt in een product van een externe partij waarnaar wordt verwezen. Lees meer over hoe Cisco gebruikmaakt van inclusief taalgebruik.
Cisco heeft dit document vertaald via een combinatie van machine- en menselijke technologie om onze gebruikers wereldwijd ondersteuningscontent te bieden in hun eigen taal. Houd er rekening mee dat zelfs de beste machinevertaling niet net zo nauwkeurig is als die van een professionele vertaler. Cisco Systems, Inc. is niet aansprakelijk voor de nauwkeurigheid van deze vertalingen en raadt aan altijd het oorspronkelijke Engelstalige document (link) te raadplegen.
Dit document beschrijft het virtuele netwerkschema dat het NFVIS-platform biedt voor het communiceren van VNF's in bedrijfs- en servicenetwerken.
De informatie in dit document is gebaseerd op deze hardware- en softwarecomponenten:
De informatie in dit document is gebaseerd op de apparaten in een specifieke laboratoriumomgeving. Alle apparaten die in dit document worden beschreven, hadden een opgeschoonde (standaard)configuratie. Als uw netwerk live is, moet u zorgen dat u de potentiële impact van elke opdracht begrijpt.
Een intern beheernetwerk (int-mgmt-net) en bridge (int-mgmt-br) worden intern gebruikt voor VNF-bewaking, waarbij IP-beheeradressen van het subnet 10.20.0.0/24 worden toegewezen.
Afbeelding 1. Hardware Switch en WAN/LAN Uplink NIC's Interne aansluitingen
NFVIS is standaard toegankelijk via de WAN-poort of GE0/2 LAN-poort voor beheer.
WAN-netwerk (wan-net en wan2-net) en WAN-brug (wan-br en wan2-br) zijn ingesteld om DHCP standaard in te schakelen. GE0-0 is standaard gekoppeld aan WAN-bridge en GE0-1 aan WAN2-bridge.
Het IP-adres voor beheer 192.168.1.1 op de Catalyst 8200 UCPE is toegankelijk via GE0-2.
GE0-2 is gekoppeld aan LAN bridge.
Er wordt een intern beheernetwerk (int-mgmt-net) en een brug (int-mgmt-br) gemaakt en intern gebruikt voor systeembewaking.
Afbeelding 2. Interne bridging en virtuele switches toegewezen aan de 8200 NIC's
1. NFVIS is standaard toegankelijk via de FPGE (Front Panel Gigabit Ethernet)WAN-poorten via de GE0-2 LAN-poort voor beheer
2. WAN-netwerk (wan-net) en een WAN-brug (wan-br) worden standaard ingesteld om DHCP in te schakelen. GE0-0 is standaard gekoppeld aan WAN-bridge
3. WAN-netwerk (wan2-net) en een WAN-brug (wan2-br) worden standaard gemaakt, maar niet gekoppeld aan fysieke poorten
4. GE0-2 is gekoppeld aan LAN bridge, alle andere poorten zijn niet gekoppeld aan OVS
5. Het beheer IP 192.168.1.1 op C8300-uCPE is toegankelijk via GE0-2
6. Er wordt een intern beheernetwerk (int-mgmt-net) en een brug (int-mgmt-br) gecreëerd en intern gebruikt voor systeembewaking.
Afbeelding 3. Interne bridging en virtuele switches toegewezen aan de 8300 NIC's
Open vSwitch (OVS) is een open-source, meerlaagse virtuele switch die is ontworpen om netwerkautomatisering mogelijk te maken door middel van programmatische extensies, terwijl ondersteuning wordt geboden voor standaard beheerinterfaces en -protocollen, zoals NetFlow, sFlow, IPFIX, RSPAN, CLI, LACP en 802.1ag. Het wordt veel gebruikt in grote gevirtualiseerde omgevingen, met name met hypervisors om netwerkverkeer tussen virtuele machines (VM's) te beheren. Het maakt het mogelijk om geavanceerde netwerktopologieën en -beleid te maken die rechtstreeks worden beheerd via de NFVIS-interface en een veelzijdige omgeving bieden voor netwerkfunctionaliteit en virtualisatie.
Afbeelding 4. OVS-configuratie binnen de Linux-kernel
Het maakt gebruik van virtuele netwerkbruggen en stroomregels om pakketten tussen hosts door te sturen. Het gedraagt zich als een fysieke switch, alleen gevirtualiseerd.
Afbeelding 5. Voorbeeld van implementatie van 2 VM's of VNF's die zijn aangesloten op de wan-br-brug
Wanneer een netwerkpakket bij een netwerkinterfacekaart (NIC) aankomt, wordt een onderbreking geactiveerd, een signaal aan de processor dat aangeeft dat deze onmiddellijk aandacht nodig heeft. De CPU pauzeert zijn huidige taken om de interrupt af te handelen, een proces dat bekend staat als interrupt processing. Tijdens deze fase leest de CPU, onder controle van de kernel van het besturingssysteem, het pakket van de NIC in het geheugen en beslist de volgende stappen op basis van de bestemming en het doel van het pakket. Het doel is om het pakket snel te verwerken of te routeren naar de beoogde toepassing, waardoor de latentie wordt geminimaliseerd en de doorvoer wordt gemaximaliseerd.
Contextswitching is het proces waarbij een CPU switches van het uitvoeren van taken in de ene omgeving (context) naar de andere. Dit is met name relevant bij het verplaatsen tussen de gebruikersmodus en de kernelmodus:
Gebruikersmodus: Dit is een beperkte verwerkingsmodus waarin de meeste toepassingen worden uitgevoerd. Toepassingen in de gebruikersmodus hebben geen directe toegang tot hardware of referentiegeheugen en moeten communiceren met de kernel van het besturingssysteem om deze bewerkingen uit te voeren.
Kernel Mode: Deze modus geeft het besturingssysteem volledige toegang tot de hardware en alle geheugen. De kernel kan elke CPU-instructie uitvoeren en naar elk geheugenadres verwijzen. De kernelmodus is vereist voor het uitvoeren van taken zoals het beheren van hardwareapparaten, geheugen en het uitvoeren van systeemaanroepen.
Wanneer een toepassing een bewerking moet uitvoeren waarvoor bevoegdheden op kernelniveau vereist zijn (zoals het lezen van een netwerkpakket), treedt een context-switch op. De CPU gaat over van de gebruikersmodus naar de kernelmodus om de bewerking uit te voeren. Na voltooiing keert een andere context-switch de processor terug naar de gebruikersmodus om de toepassing verder uit te voeren. Dit schakelproces is van cruciaal belang voor het handhaven van de stabiliteit en beveiliging van het systeem, maar introduceert overhead die de prestaties kan beïnvloeden.
OVS draait voornamelijk in de gebruikersruimte van het besturingssysteem, wat een knelpunt kan worden naarmate de gegevensdoorvoer toeneemt. Dit komt omdat er meer context-switches nodig zijn om de processor naar de kernelmodus te laten gaan om pakketten te verwerken, waardoor de prestaties afnemen. Deze beperking is vooral merkbaar in omgevingen met hoge pakketsnelheden of wanneer nauwkeurige timing cruciaal is. Om deze prestatiebeperkingen aan te pakken en te voldoen aan de eisen van moderne, snelle netwerken, werden technologieën zoals DPDK (Data Plane Development Kit) en SR-IOV (Single Root I/O Virtualization) ontwikkeld.
DPDK is een set bibliotheken en drivers die zijn ontworpen om de werkbelasting voor pakketverwerking op een breed scala aan CPU-architecturen te versnellen. Door de traditionele kernel-netwerkstack te omzeilen (contextswitching vermijden), kan DPDK de doorvoer van het gegevensvliegtuig aanzienlijk verhogen en de latentie verminderen. Dit is met name gunstig voor VNF's met hoge doorvoer die communicatie met lage latentie vereisen, waardoor NFVIS een ideaal platform is voor prestatiegevoelige netwerkfuncties.
Afbeelding 6. Traditionele OVS (linkerkant) en DPDK OVS (rechterkant) context switching optimalisaties
Ondersteuning voor DPDK voor OVS is gestart in NFVIS 3.10.1 voor ENCS en 3.12.2 voor andere platforms.
Traditionele netwerkbenaderingen vereisen vaak dat gegevens meerdere keren worden gekopieerd voordat ze de bestemming in het VM-geheugen bereiken. Een pakket moet bijvoorbeeld worden gekopieerd van de NIC naar de kernelruimte, vervolgens naar de gebruikersruimte voor verwerking door een virtuele switch (zoals OVS) en ten slotte naar het VM-geheugen. Elke kopieerbewerking veroorzaakt vertraging en verhoogt het CPU-gebruik ondanks de prestatieverbeteringen die DPDK biedt door de kernels-netwerkstack te omzeilen.
Deze overheadkosten omvatten geheugenkopieën en de verwerkingstijd die nodig is om pakketten in de gebruikersruimte te verwerken voordat ze naar de VM kunnen worden doorgestuurd. PCIe Passthrough en SR-IOV pakken deze knelpunten aan door toe te staan dat een fysiek netwerkapparaat (zoals een NIC) rechtstreeks tussen meerdere VM's wordt gedeeld zonder het hostbesturingssysteem in dezelfde mate te betrekken als traditionele virtualisatiemethoden.
De strategie omvat het omzeilen van de hypervisor om Virtual Network Functions (VNF's) directe toegang tot een Network Interface Card (NIC) mogelijk te maken, waardoor bijna maximale doorvoer wordt bereikt. Deze aanpak staat bekend als PCI-passthrough, waarmee een volledige NIC kan worden toegewezen aan een gastbesturingssysteem zonder tussenkomst van een hypervisor. In deze configuratie werkt de virtuele machine alsof deze rechtstreeks is verbonden met de NIC. Als er bijvoorbeeld twee NIC-kaarten beschikbaar zijn, kan elke kaart exclusief worden toegewezen aan verschillende VNF's, waardoor ze directe toegang hebben.
Deze methode heeft echter een nadeel: als er slechts twee NIC's beschikbaar zijn die uitsluitend door twee afzonderlijke VNF's worden gebruikt, zouden extra VNF's, zoals een derde, geen NIC-toegang hebben omdat er geen toegewezen NIC voor beschikbaar is. Een alternatieve oplossing is het gebruik van Single Root I/O Virtualization (SR-IOV).
Dit is een specificatie waarmee één fysiek PCI-apparaat, zoals een netwerkinterfacekaart (NIC), als meerdere afzonderlijke virtuele apparaten kan worden weergegeven. Deze technologie biedt directe VM-toegang tot fysieke netwerkapparaten, waardoor de overhead wordt verminderd en de I/O-prestaties worden verbeterd. Het werkt door een enkel PCIe-apparaat te verdelen in meerdere virtuele segmenten, die elk kunnen worden toegewezen aan verschillende VM's of VNF's, waardoor de beperking die wordt veroorzaakt door een eindig aantal NIC's effectief wordt opgelost. Deze virtuele segmenten, bekend als virtuele functies (VF's), maken gedeelde NIC-bronnen tussen meerdere VNF's mogelijk. De Fysieke Functie (PF) verwijst naar de feitelijke fysieke component die SR-IOV mogelijkheden vergemakkelijkt.
Door gebruik te maken van SR-IOV kan NFVIS toegewezen NIC-bronnen toewijzen aan specifieke VNF's, waardoor hoge prestaties en lage latentie worden gegarandeerd door Direct Memory Access (DMA) van netwerkpakketten rechtstreeks in het respectieve VM-geheugen te faciliteren. Deze aanpak minimaliseert CPU betrokkenheid om alleen de verwerking van de pakketten, waardoor het verlagen van CPU-gebruik. Dit is vooral handig voor toepassingen die een gegarandeerde bandbreedte vereisen of waarvoor strenge prestatie-eisen gelden.
Afbeelding 7. NFVIS SR-IOV PCIe-bronscheiding door hardwarefuncties
Het zijn volledig uitgeruste PCIe-functies en verwijzen naar een speciaal gebouwde hardwarebox die specifieke netwerkfuncties biedt; dit zijn volledig uitgeruste PCIe-functies die kunnen worden ontdekt, beheerd en gemanipuleerd zoals elk ander PCIe-apparaat. Fysieke functies omvatten de SR-IOV-mogelijkheden die kunnen worden gebruikt om een PCIe-apparaat te configureren en te besturen.
Het zijn gestroomlijnde functies met minimale configuratiebronnen (lichtgewicht), die zich uitsluitend richten op het verwerken van I/O als eenvoudige PCIe-functies. Elke virtuele functie komt voort uit een fysieke functie. De hardware van het apparaat beperkt het mogelijke aantal virtuele functies. Eén Ethernet-poort, het fysieke apparaat, kan corresponderen met tal van virtuele functies, die vervolgens kunnen worden toegewezen aan verschillende virtuele machines.
Platform | NIC's | NIC-stuurprogramma |
ENCS 54XX | backplane-Switch | i40e |
ENCS 54XX | GE0-0 en GE0-1 | IGB |
Katalysator 8200 uCPE | GE0-0 en GE0-1 | ixgbe |
Katalysator 8200 uCPE | GE0-2 en GE0-5 | IGB |
Vooral in scenario's waarin het netwerkverkeer voornamelijk oost-west stroomt (wat betekent dat het binnen dezelfde server blijft), presteert DPDK beter dan SR-IOV. De redenering is eenvoudig: wanneer het verkeer intern binnen de server wordt beheerd zonder dat toegang tot de NIC nodig is, biedt SR-IOV geen enkel voordeel. SR-IOV kan zelfs leiden tot inefficiënties door het verkeerspad onnodig uit te breiden en NIC-bronnen te gebruiken. Daarom is het gebruik van DPDK voor het interne beheer van serververkeer de efficiëntere keuze.
Afbeelding 8. DPDK en SR-IOV Packet Traversal in Oost-naar-West verkeer
In situaties waarin netwerkverkeer van noord naar zuid, of zelfs van oost naar west, maar specifiek tussen servers stroomt, blijkt het gebruik van SR-IOV voordeliger dan DPDK. Dit geldt met name voor server-to-server communicatie. Aangezien dergelijk verkeer onvermijdelijk de NIC moet passeren, kan de keuze voor OVS met DPDK-uitbreiding onnodig leiden tot extra complexiteit en potentiële prestatiebeperkingen. Daarom is SR-IOV in deze omstandigheden de beste keuze en biedt het een eenvoudige en efficiënte route voor het afhandelen van verkeer tussen servers.
Afbeelding 9. DPDK en SR-IOV Packet Traversal in Noord-naar-Zuid verkeer
Tip: vergeet niet dat het mogelijk is om de prestaties van een op SR-IOV gebaseerde installatie te verbeteren door SR-IOV te integreren met DPDK binnen een Virtual Network Function (VNF), met uitzondering van het scenario waarin DPDK wordt gebruikt in combinatie met OVS zoals eerder beschreven.
Als u DPDK wilt inschakelen vanuit de GUI, moet u navigeren naar Configuratie > Virtuele machine > Netwerken > Netwerken. Zodra u in het menu, klik op de switch om de functie te activeren
Afbeelding 10. Slide-knop beschikbaar op de GUI voor DPDK-activering
Voor de CLI moet u deze inschakelen vanuit de algemene systeeminstellingen in de configuratiemodus.
nfvis(config)# system settings dpdk enable
Let op: DPDK kan niet worden uitgeschakeld tenzij een fabrieksreset wordt uitgevoerd vanuit NFVIS.
Ga naar Configuratie > Virtuele machine > Netwerken > Netwerken. Zodra u op de pagina Netwerken bent, klikt u op het plusteken (+) linksboven voor de tabel Netwerken,
Afbeelding 11. Tabelweergave van netwerken vanuit de NFVIS-GUI
Geef het netwerk een naam en koppel het aan een nieuwe brug. De bindingsopties voor VLAN en Interface kunnen afhankelijk zijn van de behoeften van de netwerkinfrastructuur.
Afbeelding 12. Modus "Netwerk toevoegen" voor het maken van virtuele netwerken in de NFVIS GUI
Nadat u op de knop Verzenden hebt geklikt, moet u het nieuwe netwerk kunnen bekijken dat aan de tabel Netwerken is toegevoegd.
Afbeelding 13. Netwerken Tabelweergave van de NFVIS GUI waar het "Vernieuwingspictogram" in de rechterbovenhoek staat (gemarkeerd in rood)
Opmerking: als het nieuwe netwerk niet wordt weergegeven op de tabel, klikt u rechtsboven op de knop Vernieuwen of vernieuwt u de hele pagina.
Als het vanuit de CLI wordt uitgevoerd, wordt elk netwerk en elke brug gemaakt vanuit de configuratiemodus, de werkstroom is hetzelfde als de GUI-versie.
1. Maak de nieuwe brug.
nfvis(config)# bridges bridge inter-vnf-br2
nfvis(config-bridge-inter-vnf-br2)# commit
2. Een nieuw netwerk maken en koppelen aan de eerder gemaakte brug
nfvis(config)# networks network inter-vnf-net2 bridge inter-vnf-br2 trunk true native-vlan 1
nfvis(config-network-inter-vnf-net2)# commit
Als u wilt beginnen met een netwerktopologie of één VFN-implementatie, moet u naar Configuratie > Implementeren navigeren. U kunt een VM of container uit de selectielijst naar het gebied voor het maken van topologie slepen om te beginnen met het maken van uw gevirtualiseerde infrastructuur.
Afbeelding 14. Voorbeeld implementatie waar c8000v-1 is aangesloten Ge0-0 SR-IOV passthrough en een aangepaste OVS inter-vnf netwerk, c8000v-2 heeft 2 OVS verbindingen die het communiceren met c8000v-1 en c8000v-3, en c8000v-3 heeft 1 OVS intra-vnf verbinding die communicatie met c8000v-2 mogelijk maakt, evenals een exit interface via de Ge0-2 LAN poort brug (OVS).
Waar dezelfde topologie uit de afbeelding kan worden gemaakt vanuit CLI:
c8000v-1-configuratie:
nfvis(config)# vm_lifecycle tenants tenant admin deployments deployment c8000v-1 vm_group c8000v-1 image c8000v-universalk9_16G_serial.17.09.04a.tar.gz flavor C8000V-small
nfvis(config-vm_group-c8kv_group)# interfaces interface 0 network GE0-0-SRIOV-1
nfvis(config-interface-0)# exit
nfvis(config-vm_group-c8kv_group)# interfaces interface 1 network inter-vnf-net
nfvis(config-interface-1)# exit
nfvis(config-vm_group-c8kv_group)# port_forwarding port ssh protocol TCP vnf_port 22 external_port_range 2228 2228
nfvis(config-external_port_range-2228/2228)# commit
c8000v-2-configuratie:
nfvis(config)# vm_lifecycle tenants tenant admin deployments deployment c8000v-2 vm_group c8000v-2 image c8000v-universalk9_16G_serial.17.09.04a.tar.gz flavor C8000V-small
nfvis(config-vm_group-c8kv_group)# interfaces interface 0 network inter-vnf-net
nfvis(config-interface-0)# exit
nfvis(config-vm_group-c8kv_group)# interfaces interface 1 network inter-vnf-net2
nfvis(config-interface-1)# exit
nfvis(config-vm_group-c8kv_group)# port_forwarding port ssh protocol TCP vnf_port 22 external_port_range 2229 2229
nfvis(config-external_port_range-2229/2229)# commit
c8000v-3-configuratie:
nfvis(config)# vm_lifecycle tenants tenant admin deployments deployment c8000v-3 vm_group c8000v-3 image c8000v-universalk9_16G_serial.17.09.04a.tar.gz flavor C8000V-small
nfvis(config-vm_group-c8kv_group)# interfaces interface 0 network inter-vnf-net2
nfvis(config-interface-0)# exit
nfvis(config-vm_group-c8kv_group)# interfaces interface 1 lan-net
nfvis(config-interface-1)# exit
nfvis(config-vm_group-c8kv_group)# port_forwarding port ssh protocol TCP vnf_port 22 external_port_range 2230 2230
nfvis(config-external_port_range-2230/2230)# commit
Revisie | Publicatiedatum | Opmerkingen |
---|---|---|
1.0 |
14-Feb-2024 |
Eerste vrijgave |