Felhasználói eszközök

Eszközök a webhelyen


it:network_virt

Különbségek

A kiválasztott változat és az aktuális verzió közötti különbségek a következők.

Összehasonlító nézet linkje

Előző változat mindkét oldalonElőző változat
Következő változat
Előző változat
it:network_virt [2017/12/30 21:34] – [MAC-VLAN] rblstit:network_virt [2018/03/02 03:34] (aktuális) – [Szoftver bridge] rblst
Sor 1: Sor 1:
 +====== Hálózatvirtualizáció ======
 +Ábrák forrása: [[https://events.static.linuxfound.org/sites/events/files/slides/LinuxConJapan2014_makita_0.pdf|NTT Corp.]]
 +===== Szoftver-bridge =====
 +==== Klasszikus megoldás ====
 +{{  :it:bridge.png?300|klasszikus bridge megoldás}}
 +
 +  * **802.1d**
 +  * interfész promiscuous módban
 +
 +  * tipikusan architektúra: TAP-eszköz (virtuális hálózati interfész) és egy bridge
 +    * klasszikusan: ''tunctl -t'' és ''brctl''
 +    * újabban: ''ip tuntap'', ''ip link''
 +      * ''ip tuntap add dev tap0 mode tap''
 +      * ''ip link add name br0 type bridge''
 +      * ''ip link set dev eth0 master br0''
 +      * ''ip link set dev tap0 master br0''
 +
 +  * újabb kernelek: FDB (Forwarding DB), STP, VLAN-címék (ld. ''bridge fdb'', ''bridge vlan'' stb.)
 +
 +==== MAC-VLAN  ====
 +  * VLAN nem **802.1q** címkézéssel, hanem külön MAC-címmel
 +  * több MAC-cím egy fizikai interfészhez 
 +  * ezek ún. alinterfészek (sub-interface, slave)
 +  * a VM/konténer alinterfészt használ
 +  * az alinterfész nem tud közvetlenül kommunikálni a fizikai interfésszel, tehát ahhoz, hogy a VM/konténer elérje a hosztot, egy külön alinterfészt kell adni a hoszthoz is
 +  * interfésznevek: ''mac0@eth0'', ''mac1@eth0'' – első és második alinterfész az első fizikai interfészen
 +  * ''ip link add mac0 link eth0 type macvlan''
 + 
 +=== Bridge mód ===
 +{{:it:macvlan_bridge.png?200| macvlan bridge mode}}
 +
 +  * pehelysúlyú switch (nem tanul, nincs STP stb.)
 +  * MAC-VLAN-ok közötti forgalmat biztosítja
 +  * ''ip link add mac0 link eth0 type macvlan mode bridge''
 +
 +
 +=== Passthru mód ===
 +{{:it:macvlan_passthru.png?150| macvlan passthru mode}}
 +
 +  * csak egy MAC-VLAN alinterfész engedélyezett
 +  * VM TAP-eszközként használhatja (MACVTAP)
 +    * "közvetlenül" eléri fizikai interfészt
 +  * bármilyen MAC-címe lehet (promiscuous)
 +  * ''ip link add mac0 link eth0 type macvlan mode passthru''
 +
 +=== VEPA-mód ===
 +{{:it:macvlan_vepa.png?200| macvlan vepa mode}}
 +
 +  * MAC-VLAN-ok közötti forgalom külső switch-en keresztül (ld. [[#VEPA]])
 +  * ''ip link add mac0 link eth0 type macvlan mode vepa''
 +
 +=== Privát mód ===
 +{{:it:macvlan_private.png?200| macvlan private mode}}
 +
 +  * nem bridge üzemmód
 +  * MAC-VLAN-ok közötti forgalmat tiltja
 +  * ''ip link add mac0 link eth0 type macvlan mode private''
 +
 +
 +==== IP-VLAN ====
 +  * https://hicu.be/macvlan-vs-ipvlan
 +  * https://www.kernel.org/doc/Documentation/networking/ipvlan.txt
 + 
 +  * hasonló a MAC-VLAN-hoz, nem használható egyszerre a kettő
 +  * nem kapnak külön MAC-címet az alinterfészek, csak külön IP-címet
 +  * használata korlátozott
 +    * WiFi csatoló esetén
 +    * ha nem lehet több MAC-címet adni az interfészhez (érdemes nem IP-VLAN-nal megoldani)
 +    * BGP-vel közzétett szolgáltatás a VM-ben/konténerben
 +
 +=== L2 mód ===
 +  * ld. MAC-VLAN bridge mód
 +  * broadcast/multicast minden alinterfészhez megy
 +
 +  * ''ip link add ipvlan0 link eth0 type ipvlan mode l2''
 +
 +=== L3 mód ===
 +  * router-ként működik az eszköz (dinamikus routing nincs)
 +    * alinterfészek és a fizikai interfész között
 +    * alinterfészek között
 +  * minden alinterfész külön alhálózatban kell hogy legyen
 +  * broadcast nem működik alinterfészek között
 +  * multicast nem támogatott
 +  * TTL-t nem csökkenti, ezért traceroute-ban nem jelenik meg
 +
 +  * ''ip link add ipvlan0 link eth0 type ipvlan mode l3''
 +
 +== L3S mód ==
 +  * conn-tracking is megy
 +==== Open vSwitch (OVS) ====
 +  * teljeskörű szoftverswitch (VLAN-címkék, VXLAN, GRE, bonding stb.)
 +  * normál switchként is használható
 +  * támogatja az OpenFlow-t (L3-alapú forgalommenedzsment)
 +  * ''ovs-vsctl''
 +
 +=====  SR-IOV =====
 +  * **Single Root I/O Virtualization**
 +
 +  * egy PCI Express eszköz felosztása úgy, hogy több fizikai eszköznek látsszék
 +  * szétválnak a fizikai funkciók (PF) és a virtuális funkciók (VF) 
 +  * a VF (kb. virtuális hálózati port) nem (vagy csak korlátozottan) konfigurálható, csak adatokat tud küldeni/fogadni
 +  * elvben max. 256 VF portonként, gyakorlatban jelenleg max. 64
 +  
 +  * BIOS és hypervisor/OS támogatás kell hozzá
 +  * egyes hálózati kártyák (pl. Intel 82599) támogatják a **VF-ek közötti switch-elés**t
 +    * interfésznevek: ''eth0_0'', ''eth0_1''
 +
 +
 +===== Edge Virtual Bridging (EVB)  =====
 +  * virtuális gépek hálózati forgalmának hoszton kívüli (fizikai) switchelése
 +  * http://wikibon.org/wiki/v/Edge_Virtual_Bridging
 +
 +  * a hálózati adminisztráció (monitorozás, statisztikák, ACL-ek) egy kézben tartható a fizikai szinten
 +  * virtuális helyett fizikai switch használata: hálózati overhead (sávszélesség, késleltetés)
 +
 +==== VEPA ====
 +  * **Virtual Ethernet Port Aggregation** 
 +  *  **802.1qbg** 
 +  * **HP**, IBM, Juniper, Brocade...
 +
 +=== Standard mód ===
 +  * a hypervisor a hálózati kereteket a külső switch-hez irányítja 
 +      * a hoszton belüli VM-ek esetén MAC-címet kell váltani
 +      * a hoszton kívüli VM címzése esetén a MAC-cím változatlan)
 +  * a fizikai switch visszaküldi a forgalmat a hosztra (hairpin turn on VEPA port), 
 +  * a firmware-nek támogatnia kell a hypervisor és a switch közötti egyeztetést, különben az STP meg fogja akadályozni az azonos porton történő visszaküldést
 +
 +=== Többcsatornás mód ===
 +
 +  * opcionális kiegészítő funkció 
 +  * egy Ethernet portot (switch/NIC) több csatornára osztja fel, ezek egyedi kapcsolatok 
 +  * a hypervisor a hoszton belül ezeket a csatornákat hozzárendelheti VM-hez, VEB-hez (standard VPA esetén VEB művelethez is)
 +  * a csatornák különválasztása címkézéssel történik: 802.1ad szabvány 
 +  * a standard 802.1q VLAN címkén túl egy service tag (S-Tag) is van, így VLAN-on belül is működik (**Q-in-Q**)
 +
 +
 +==== VN-Tag ====
 +  * **Bridge Port Extension** (**Cisco**): 802.1qbh 
 +  * 2011 óta **802.1br**
 +  * az Ethernet keret fejlécében egy plusz címke van porton belüli virtuális interfészek (VIF) azonosításához (''ethertype'' – címke azonosítója, ''dvif_id'' – annak a portnak az azonosítója, ahová a keretet küldeni kell, ''svif_id'' – annak a portnak az azonosítója, ahonnan keret érkezett)
 +
 +