+ All Categories
Home > Documents > Felhő alapú hálózatok (VITMMA02) Hálózat virtualizálás ...

Felhő alapú hálózatok (VITMMA02) Hálózat virtualizálás ...

Date post: 03-Oct-2021
Category:
Upload: others
View: 6 times
Download: 0 times
Share this document with a friend
31
Távközlési és Médiainformatikai Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem Villamosmérnöki és Informatikai Kar Távközlési és Médiainformatikai Tanszék Felhő alapú hálózatok (VITMMA02) Hálózat virtualizálás: Overlay hálózatok OpenStack Neutron Networking Dr. Maliosz Markosz 1 2020. tavasz
Transcript
Page 1: Felhő alapú hálózatok (VITMMA02) Hálózat virtualizálás ...

Távközlési és Médiainformatikai Tanszék

Budapesti Műszaki és Gazdaságtudományi Egyetem

Villamosmérnöki és Informatikai Kar

Távközlési és Médiainformatikai Tanszék

Felhő alapú hálózatok (VITMMA02)Hálózat virtualizálás: Overlay hálózatokOpenStack Neutron Networking

Dr. Maliosz Markosz

1

2020. tavasz

Page 2: Felhő alapú hálózatok (VITMMA02) Hálózat virtualizálás ...

Távközlési és Médiainformatikai Tanszék

OVERLAY HÁLÓZATOK

2020.tavasz 2

Page 3: Felhő alapú hálózatok (VITMMA02) Hálózat virtualizálás ...

Távközlési és Médiainformatikai Tanszék

Hálózat virtualizáció

» Ügyfél szintű szeparáció támogatás» Virtual Extensible LAN (VXLAN) – RFC 7348

» Cisco, VMware

» virtuális L2 hálózati forgalom átvitele L3 fizikai hálózaton

» Network Virtualization using Generic RoutingEncapsulation (NVGRE)

» Microsoft, Intel, HP, Dell

» Generic Network Virtualization Encapsulation (GENEVE)» a fenti kettő fúziója

» Stateless Transport Tunneling (STT)» Nicira VMware

2020.tavasz 3

Page 4: Felhő alapú hálózatok (VITMMA02) Hálózat virtualizálás ...

Távközlési és Médiainformatikai Tanszék

VXLAN

» ügyfél eredeti L2 kerete » eredeti MAC címmel és VLAN címkével

» MAC-in-UDP» VXLAN és UDP fejléc

» VXLAN network ID (VNID) – ez azonosítja az ügyfelet» 24 bit 16 millió ügyfél

» fizikai hálózat: IP útvonalválasztás (Layer3)

2020.tavasz 4

Page 5: Felhő alapú hálózatok (VITMMA02) Hálózat virtualizálás ...

Távközlési és Médiainformatikai Tanszék

VXLAN» VXLAN Tunnel End Point (VTEP)» MAC-to-VTEP táblák tanulás útján (IP multicast)

» egy VNI összes VTEP-je egy multicast csoportban

» ECMP

2020.tavasz 5

ECMP

Page 6: Felhő alapú hálózatok (VITMMA02) Hálózat virtualizálás ...

Távközlési és Médiainformatikai Tanszék

NVGRE» hasonló a VXLAN-hoz» alapja: Generic Routing Encapsulation (GRE)

» általános fejléc» sok különböző protokollra» pont-pont kapcsolat

» NVGRE » GRE fejléc» +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|0| |1|0| Reserved0 | Ver | Protocol Type 0x6558 |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| Virtual Subnet ID (VSID) | FlowID |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

» Virtual Subnet Identifer (VSID) 24 bit 16 millió ügyfél» FlowID: opcionális, egyedi folyamazonosító

» ECMP hash számításhoz

» belül nincs VLAN címke (vagy levételre kerül)» VSID-be kódolják

2020.tavasz 6

Page 7: Felhő alapú hálózatok (VITMMA02) Hálózat virtualizálás ...

Távközlési és Médiainformatikai Tanszék

NVGRE

» Network Virtual Endpoint (NVE)» VSID és DMAC alapján a címzetthez kapcsolódó NVE IP

címére küldés

» az Internet draft nem specifikálja » a cím információk terjesztését

» VLAN információ helyreálltását

2020.tavasz 7

Page 8: Felhő alapú hálózatok (VITMMA02) Hálózat virtualizálás ...

Távközlési és Médiainformatikai Tanszék

Generic Network Virtualization Encapsulation

» MAC-in-UDP over IPv4/IPv6

» univerzális, kiterjeszthető megoldási javaslat

» csak a beágyazási formátumot definiálja

» opcionális mezők» nem fix mezőhosszak, rugalmasság

» Geneve fejléc:+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|Ver| Opt Len |O|C| Rsvd. | Protocol Type |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| Virtual Network Identifier (VNI) | Reserved |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| Variable Length Options |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

2020.tavasz 8

Page 9: Felhő alapú hálózatok (VITMMA02) Hálózat virtualizálás ...

Távközlési és Médiainformatikai Tanszék

Alagút végződés helye

» hypervisor/vSwitch-ben» ez az általánosan használt megoldás

» legközelebb a VM-ekhez, könnyű az ügyfél azonosítás

» CPU erőforrás

» TCP segmentation offload (TSO), checksum offloadtámogatás kérdéses

» fizikai hálózati kártyán» offload támogatás a tunnel protokoll fejlécre is

» kevés NIC támogatja

» fizikai kapcsolón

» forrás VM nem ismert

» VNID/VSID meghatározásához kell a belső MAC cím

2020.tavasz 9

Page 10: Felhő alapú hálózatok (VITMMA02) Hálózat virtualizálás ...

Távközlési és Médiainformatikai Tanszék

Stateless Transport Tunneling (STT)» elsődlegesen vSwitch-ek

közötti kommunikációra» komplexebb, mint az

előzőek» max. 64 kbyte-os Ethernet

keretet kezel» maximum transmission unit

(MTU)» TCP segmentation offload

kihasználása a hálózati kártyán

» STT fejléc» 64 bites Context ID mező

» a feldarabolt adatok elé TCP-szerű/IP/Eth fejléc» ez alapján állítja össze a

nagyméretű keretet

2020.tavasz 10

0 1 2 3

0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| Version | Flags | L4 Offset | Reserved |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| Max. Segment Size | PCP |V| VLAN ID |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| |

+ Context ID (64 bits) +

| |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| Padding | data |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +

| |

+-----------+ +----------+ +----------+

| IP Header | |IP Header | |IP header |

+-----------+ +-----------+ +----------+ +----------+

|STT Frame | |TCP-like | |TCP-like | |TCP-like |

| Header | | header | | header | | header |

+-----------+ +-----------+ +----------+ +----------+

| | ---> | STT Frame | |Next part | ... |Last part |

|Payload | | Header | |of Payload| |of Payload|

. . +-----------+ | | | |

. . | | | | | |

. . | Start of | | | | |

+-----------+ | Payload | | | +----------+

+-----------+ +----------+

Eredeti adat STT keret szegmensek

Page 11: Felhő alapú hálózatok (VITMMA02) Hálózat virtualizálás ...

Távközlési és Médiainformatikai Tanszék

ÖsszehasonlításVXLAN NVGRE STT

Plusz bájtok 50 (VLAN: +4) 42 (VLAN: +4) Első szegmens: 76

Továbbiak: 58

(VLAN: +4)

Protokoll UDP GRE TCP

Ügyfél

megkülünböztetés

24 bit VNID 24 bit VSID 64 bit Context ID

ECMP-hez

megkülönböztetés(belsőkülső folyam)

Forrás UPD port VSID +

FlowID (8bit)

Forrás TCP port

2020.tavasz 11

Page 12: Felhő alapú hálózatok (VITMMA02) Hálózat virtualizálás ...

Távközlési és Médiainformatikai Tanszék

OPENSTACK NEUTRON

2020.tavasz 12

Page 13: Felhő alapú hálózatok (VITMMA02) Hálózat virtualizálás ...

Távközlési és Médiainformatikai Tanszék

OpenStack hálózati architektúra

» „Networking in OpenStack is a complex, multifaceted challenge.” /OpenStack Operations Guide/

» Network as a Service

» feladatok» IP címek kezelése

» statikus, DHCP

» floating IP

» virtuális hálózatok kezelése

» flat, VLAN

» önkiszolgáló módon

» Neutron » plug-in szemlélet

» SDN/OpenFlow

2020.tavasz 13

Page 14: Felhő alapú hálózatok (VITMMA02) Hálózat virtualizálás ...

Távközlési és Médiainformatikai Tanszék

Neutron network

2020.tavasz 14

Page 15: Felhő alapú hálózatok (VITMMA02) Hálózat virtualizálás ...

Távközlési és Médiainformatikai Tanszék

Neutron hálózat absztrakció» Külső (external) /ez fizikai/ hálózathoz illesztés, pl. Internet» Belső hálózatok a VM-ek összekötésére

» virtuális: hálózat, alhálózat, útvonalválasztó» VM-hez hozzárendelhető külső floating IP cím, hogy elérhető

legyen

» Security groups» tűzfal szabályok» VM-hez rendelt

» Network virtualization engines» Linuxbridge, Open vSvitch, Open Virtual Network (OVN)

» Open vSwitch» core plugin» br-int (integration bridge)

» VM-ekhez kapcsolódik

» br-ex» külső hálózathoz kapcsolódik

2020.tavasz 15

Page 16: Felhő alapú hálózatok (VITMMA02) Hálózat virtualizálás ...

Távközlési és Médiainformatikai Tanszék

Neutron komponensek

» neutron-server» controller node-on fut» API kérések kezelése» hálózati modell és

portokhoz rendelt IP címek beállítása

» plugin – kiterjesztés: neutron-*-plugin

» network node-on fut» agent-ek menedzselése

» plugin-agent: neutron-*-agent

» compute node-on fut» menedzseli a lokális

virtuális kapcsolót

» általános agent-ek» DHCP: neutron-dhcp-

agent» L3 agent: neutron-l3-

agent» L3/NAT funkció a

külső hálózat felé» megvalósítás:

Linux IP stack és iptables

2020.tavasz 16

» szerver + plugin + agent struktúra

Page 17: Felhő alapú hálózatok (VITMMA02) Hálózat virtualizálás ...

Távközlési és Médiainformatikai Tanszék

Modular Layer 2 (ML2) plugin

» Különböző L2 hálózati technológiákat kezel egységesen

» Együttműködik az openvswitch, linuxbridge, ésHyper-V L2 agent-ekkel

» Hálózat típusonkénti meghajtók (type drivers)» Flat

» Local (DevStack single box)

» VLAN

» GRE

» VXLAN

2020.tavasz 17

Page 18: Felhő alapú hálózatok (VITMMA02) Hálózat virtualizálás ...

Távközlési és Médiainformatikai Tanszék

Hálózati névterek

» Network namespaces» kernel szintű megoldás, nem csak hálózatokra

» fájlrendszer, folyamat, felhasználó, stb.

» izolált Layer2 hálózatok, átlapolódó IP címekkel

» virtuális interfészek, útválasztók szeparálása

» pl. dhcp-agent és l3-agent külön névtérben fut

» Gyakorlatban» ip netns

» kilistázza a névtereket

» ip netns exec <névtér> <névtérre

vonatkozó parancs>

» pl. ip netns exec qdhcp-e521f9d0-a1bd-4ff4-bc81-78a60dd88fe5 ip a

2020.tavasz 18

Page 19: Felhő alapú hálózatok (VITMMA02) Hálózat virtualizálás ...

Távközlési és Médiainformatikai Tanszék

Neutron: single/multiple flat hálózat

2020.tavasz 19

Page 20: Felhő alapú hálózatok (VITMMA02) Hálózat virtualizálás ...

Távközlési és Médiainformatikai Tanszék

Neutron: szolgáltatói útválasztóval

2020.tavasz 20

Page 21: Felhő alapú hálózatok (VITMMA02) Hálózat virtualizálás ...

Távközlési és Médiainformatikai Tanszék

Neutron: ügyfél útválasztókkal

2020.tavasz 21

Page 22: Felhő alapú hálózatok (VITMMA02) Hálózat virtualizálás ...

Távközlési és Médiainformatikai Tanszék

A csomag útja» Test Access Point (TAP) device» int-br: integration bridge» br-eth1: VLAN internal/external címke fordítás» veth: int-br-eth1 és phy-br-eth1 között

2020.tavasz 22

Page 23: Felhő alapú hálózatok (VITMMA02) Hálózat virtualizálás ...

Távközlési és Médiainformatikai Tanszék

Floating IP

» Neutron útválasztó» gateway a VM-eknek

» iptables/NAT szabályok az útválasztó névterében

» floating IP címek a fizikai útválsztó publikus címtartományából

2020.tavasz 23

Page 24: Felhő alapú hálózatok (VITMMA02) Hálózat virtualizálás ...

Távközlési és Médiainformatikai Tanszék

Elosztott útválasztó

» Distributed VirtualRouter (DVR)

2020.tavasz 24

Page 25: Felhő alapú hálózatok (VITMMA02) Hálózat virtualizálás ...

Távközlési és Médiainformatikai Tanszék

Virtuális hálózatok kialakítása

» Open vSwitch» szabályok megadása ovs-dpctl / OpenFlow segítségével

» pl. leképezés a VM MAC címe és a hypervisor transport IP címe között

2020.tavasz 25

Page 26: Felhő alapú hálózatok (VITMMA02) Hálózat virtualizálás ...

Távközlési és Médiainformatikai Tanszék

Open Virtual Network (OVN)

» Open vSwitch-re épülő hálózat virtualizáció» Logikai kapcsolók

» L2/L3/L4 ACL (security groups)

» Elosztott logikai útválasztók

» Natívan támogatott: NAT, load-balancing, DHCP

» Tunnel overlay (GENEVE, STT)

» Magasabb szintű absztrakció» A virtuális hálózat konfigurációjának leképezése

OpenFlow szabályokra és ezek telepítése Open vSwitch-be

» Integráció» OpenStack Neutron (Release Train or later)

» Kubernetes

2020.tavasz 26

Page 27: Felhő alapú hálózatok (VITMMA02) Hálózat virtualizálás ...

Távközlési és Médiainformatikai Tanszék

Open Virtual Network (OVN)

» 2015-ben kezdték a fejlesztést, programozási nyelv: C

» Ugyanaz a közösség fejleszti, mint az OVS-t

» Kiegészíti az OVS képességeit

» Nincs szükség további ügynök komponensre

2020.tavasz 27

Page 28: Felhő alapú hálózatok (VITMMA02) Hálózat virtualizálás ...

Távközlési és Médiainformatikai Tanszék

OpenStack Neutron - OVN» Az OpenStack Neutron alapértelmezett hálózat virtualizációt egy

egyedi vezérlő sík valósítja meg» Az OVN egy külön projekt, több helyen alkalmazható, kiválthatja

a Neutron vezérlő síkját hosszú távon» Integráció: ML2 OVN meghajtó (ML2/networking-ovn)

» Az ML2/OVS meghajtó és Neutron OVS ügynökök helyett » konfiguráció koordinációja adatbázisokon keresztül» A lokális vezérlő a logikai folyam állapotot fizikai folyam állapotra

képezi le

» ML2/ovs jellegzetességek, amiket az ML2/networking-ovnmegoldott» A Security groups szabályokat közvetlenül nem lehet OVS portokhoz

rendelni, ezért szükség volt egy dedikált Linux bridge-re a VM és az OVS inegration bridge közé

» L3 és DHCP ügynökök külön dedikált hálózati névteret igényeltek» NAT megvalósítása: hálózati névterek, iptables és proxy-ARP

kombinációja

» További összehasonlítás:» https://docs.openstack.org/networking-ovn/latest/faq/index.html

2020.tavasz 28

Page 29: Felhő alapú hálózatok (VITMMA02) Hálózat virtualizálás ...

Távközlési és Médiainformatikai Tanszék

OVN architektúra

2020.tavasz 29

Page 30: Felhő alapú hálózatok (VITMMA02) Hálózat virtualizálás ...

Távközlési és Médiainformatikai Tanszék

Az OVN miért GENEVE vagy STT alagút protokollt alkalmaz?

» Szükséges metaadatok az OVN logikai csomagfeldolgozáshoz:» Logical datapath ID: 24 bites azonosító

» Geneve: VNI

» STT: 24 bit a 64 bites context ID-ből

» Logical ingress port: 15 bites azonosító» Geneve: egy opcionális mezőben

» STT: 15 bit a context ID-ből

» Logical egress port: 16 bites azonosító» Geneve: egy opcionális mezőben

» STT: 16 bit a context ID-ből

» Összes metaadat: 24 + 15 + 16 = 55 bit» GRE: 32 bit = 24 bit VSID + 8 bit FlowID

» VXLAN: 24 bit VNID

2020.tavasz 30

Page 31: Felhő alapú hálózatok (VITMMA02) Hálózat virtualizálás ...

Távközlési és Médiainformatikai Tanszék

Források

» Overlay Virtual Networking Explained, Ivan Pepelnjak, NIL Data Communications, 2011.

» http://docs.openstack.org

» https://developer.rackspace.com/blog/neutron-networking-l3-agent/

» https://www.rdoproject.org/networking/networking-in-too-much-detail/

» http://www.openvswitch.org/support/dist-docs/ovn-architecture.7.html

» https://github.com/ovn-org/ovn/blob/master/Documentation/faq/general.rst

2020.tavasz 31


Recommended