OpenContrail jako wtyczka do OpenStacka Bartosz Górski, Paweł Banaszewski CodiLime
Kim jesteśmy? Bartosz Górski studiował Informatykę na Uniwersytecie Warszawskim Software Developer i Project Manager w CodiLime OpenStack Core Developer (projekt Heat) Paweł Banaszewski studiuje Informatykę na Uniwersytecie Warszawskim Software Developer w CodiLime Pracuje nad OpenContrailem
Plan prezentacji Przetwarzanie w chmurze i wirtualizacja sieci OpenStack OpenContrail Integracja z OpenStackiem Porównanie z aktualnie wspieranymi rozwiązaniami w Neutronie Realizacja funkcji sieciowych
Chmura - korzyści dla użytkowników łatwość użycia mobilność elastyczność redukcja kosztów wysoka dostępność
Chmura - wyzwania dla dostawców wirtualizacja zasobów wysoka wydajność sieci automatyzacja konfiguracji izolacja użytkowników zabezpieczenie przed awariami sprzętu
Wirtualizacja sieci - co to znaczy? Niezależność od fizycznych zasobów komunikacja między dowolnymi serwerami, klastrami czy centrami danych prosta migracja wirtualnych maszyn awarie fizycznych zasobów są niewidoczne Izolacja użytkowników prywatne adresy MAC i IP awaria jednego użytkownika nie wpływa na innych problemy w sieciach wirtualnych nie przenoszą się na sieć fizyczną
OpenStack - krótkie wprowadzenie wysoce skalowalny system do obsługi chmury zapoczątkowany przez RackSpace i NASA w roku 2010 napisany głównie w Pythonie rozwijany na zasadach wolnego oprogramowania zaangażowanych pod 200 firm z całego świata: AT&T, AMD, Canonical, Cisco, Dell, HP, IBM, NTT, Rackspace, Red Hat, VMware, Oracle, Yahoo...
OpenStack - co umożliwia? Zasoby maszyny wirtualne wirtualne sieci, routery i porty dyski sieciowe Usługi autoscaling IDS, FW, LB, VPN
OpenStack - podział na komponenty Nova - zasoby obliczeniowe Neutron - zasoby sieciowe Cinder, Swift, Glance - przestrzeń dyskowa Horizon - graficzny interfejs webowy Heat - wdrażanie złożonych konfiguracji
Neutron - moduł sieciowy Elastyczny model sieciowy Zarządza adresami IP Koncepcja - podstawowe zasoby Sieć - izolowana i wirtualna Podsieć - blok adresów IP (CIDR) Port - wirtualny port na logicznym przełączniku (definiuje MAC i IP) Udostępnia REST API
Neutron - moduł sieciowy cd. Rozszerzenia API L3 forwarding (router, floating IPs) FireWall, LoadBalancer, VPN Wsparcie dla różnych metod wirtualizacji szczegóły implementacyjne ukryte jako wtyczki
Wtyczka dla Neutrona Dostępne wtyczki Open vswitch Linux Bridge Modular Layer 2... OpenContrail
Wprowadzenie Krótka historia Główne zastosowania Scentralizowany system zarządzający wirtualnymi sieciami Zarządzanie dodatkowymi funkcjami sieciowymi Rozbudowany system analityczny Rozwijany jako wolne oprogramowanie W tej prezentacji skupimy się tylko na realizacji funkcji sieci
Inne Rozwiązania Popularnie stosowanymi rozwiązaniami są Open vswitch wirtualizacja sieci za pomocą VLAN-ów lub tuneli GRE dobra alternatywa dla prostych sieci Linux Bridge korzysta z VLAN-ów Modular Layer 2 nakładka korzystająca z powyższych rozwiązań
Inne Rozwiązania Problemy Open vswitch nie posiada tak rozbudowanych funkcji jak OpenContrail nie skaluje tak samo dobrze Linux Bridge przez to że korzysta z VLAN-ów liczba sieci jest ograniczona tylko L2 Modular Layer 2 jak wyżej
OpenContrail - Architektura OpenContrail składa się z czterech głównych węzłów: Config Node Control Node vrouter Analytics Node
Struktura - vrouter Zastępuje moduł Linux Bridge albo OVS w jądrze hypervisora Odpowiada za obsługę komunikacji wewnętrznej i międzysieciowej Implementuje dodatkowe funkcje sieciowe Security Policies NAT Multicast Mirroring Load Balancing
Struktura - Control Node Jest odpowiedzialny za rozsyłanie konfiguracji do vrouterów Każdy vrouter łączy się z wieloma Control Node ami, aby zapewnić redundancję Do przesyłania konfiguracji używa XMPP Control Node jednoczy konfigurację korzystając z BGP Udostępnia możliwość zestawienia sesji BGP z fizycznymi routerami Wszystkie węzły działają w trybie active/active
Integracja OpenContraila z OpenStackiem 1.) Tworzenie instancji Config Node Nova Api Neutron API 3.) Ustawienia sieci WM 2.) Alokacja instancji na compucie 4.) Stwórz interfejs na WM Horizon Neutron Plugin 6.) Dodaj konfigurację Control Node Nova Compute 7.) Ustawienia interfejsu WM Compute driver vrouter VIF driver vrouter kernel module 5.) Stwórz port
Struktura - podsumowanie vrouter działa w hypervisorze i jest odpowiedzialny za implementację konfiguracji sieciowej działa na podobnej zasadzie jak OpenvSwitch ale umożliwia więcej opcji Control Node odpowiedzialny za ujednolicenie i propagowanie konfiguracji do vrouterów mimo iż jest logicznie jednolity to jest fizycznie rozproszony
Co umożliwia OpenContrail W wirtualnych sieciach dostępne są następujące protokoły: L2 Ethernet L3 IPv4 unicast L3 IPv4 multicast Łączenie dwóch wirtualnych sieci za pomocą polityki dodawanie dodatkowych funkcji sieciowych Podłączenie się do sieci fizycznej zestawienie sesji BGP z fizycznym routerem
Przesyłanie pakietów w sieci wirt. Control plane Control Node Data plane VRF: Nova Compute 1: 192.168.1.1 VRF: Nova Compute 2: 192.168.2.2
Przesyłanie pakietów w sieci wirt. Control Node VRF: VRF: 10.1.1.1 WM Nova Compute 1: 192.168.1.1 Nova Compute 2: 192.168.2.2
Przesyłanie pakietów w sieci wirt. Control Node IP: 10.1.1.1 NH: 192.168.1.1 LB: 5 VRF: VRF: 10.1.1.1 WM Nova Compute 1: 192.168.1.1 Nova Compute 2: 192.168.2.2
Przesyłanie pakietów w sieci wirt. Control Node IP: 10.2.2.2 NH: 192.168.2.2 LB: 13 VRF: 10.1.1.1 VRF: 10.2.2.2 WM WM Nova Compute 1: 192.168.1.1 Nova Compute 1: 192.168.2.2
Przesyłanie pakietów w sieci wirt. Control Node IP: 10.2.2.2 NH: 192.168.2.2 IP: 10.1.1.1 NH: 192.168.1.1 LB: 13 VRF: IP=10.2.2.2, NH=192.168.2.2, LB=13 10.1.1.1 LB: 5 VRF: IP=10.1.1.1, NH=192.168.1.1, LB=5 10.2.2.2 WM WM Nova Compute 1: 192.168.1.1 Nova Compute 1: 192.168.2.2
Przesyłanie pakietów w sieci wirt. Control Node VRF: IP=10.2.2.2, NH=192.168.2.2, LB=13 VRF: IP=10.1.1.1, NH=192.168.1.1, LB=5 ARP: 10.1.1.1 10.1.1.1 WM 10.2.2.2 WM Nova Compute 1: 192.168.1.1 Nova Compute 1: 192.168.2.2
Przesyłanie pakietów w sieci wirt. Control Node VRF: IP=10.2.2.2, NH=192.168.2.2, LB=13 VRF: IP=10.1.1.1, NH=192.168.1.1, LB=5 ARP 00:01:00:5e:00:00 10.1.1.1 WM 10.2.2.2 WM Nova Compute 1: 192.168.1.1 Nova Compute 1: 192.168.2.2
Przesyłanie pakietów w sieci wirt. Control Node VRF: IP=10.2.2.2, NH=192.168.2.2, LB=13 VRF: IP=10.1.1.1, NH=192.168.1.1, LB=5 SRC IP: 10.2.2.2 DEST IP: 10.1.1.1 DANE 10.1.1.1 WM Nova Compute 1: 192.168.1.1 10.2.2.2 WM Nova Compute 1: 192.168.2.2
Przesyłanie pakietów w sieci wirt. Control Node SRC IP: 192.168.2.2 GRE DEST IP: 192.168.1.1 LB = 5 VRF: IP=10.2.2.2, NH=192.168.2.2, LB=13 DEST IP: 10.1.1.1 SRC IP: 10.2.2.2 DANE VRF: IP=10.1.1.1, NH=192.168.1.1, LB=5 SRC IP: 10.2.2.2 DEST IP: 10.1.1.1 DANE 10.1.1.1 WM Nova Compute 1: 192.168.1.1 10.2.2.2 WM Nova Compute 1: 192.168.2.2
Przesyłanie pakietów w sieci wirt. Control Node 10.1.1.1 WM SRC IP: 192.168.2.2 GRE DEST IP: 192.168.1.1 LB = 5 VRF: IP=10.2.2.2, NH=192.168.2.2, LB=13 SRC IP: 10.2.2.2 DEST IP: 10.1.1.1 DANE Nova Compute 1: 192.168.1.1 DEST IP: 10.1.1.1 SRC IP: 10.2.2.2 DANE VRF: IP=10.1.1.1, NH=192.168.1.1, LB=5 SRC IP: 10.2.2.2 DEST IP: 10.1.1.1 DANE 10.2.2.2 WM Nova Compute 1: 192.168.2.2
Przesyłanie pakietów w sieci wirt. Nova Compute Nova Compute Nova Compute Nova Compute Nova Compute Nova Compute Nova Compute Nova Compute
Zalety OpenContraila minimalne wymagania sprzętowe korzysta ze znanych i sprawdzonych rozwiązań udostępnia bardzo bogatą konfigurację scentralizowany logicznie, rozproszony fizycznie bardzo dobrze skalowalny redundantny rozwinięty system analizy danych jest szybki rozwijany jako otwarte oprogramowanie
Skontaktuj się z nami office@codilime.com
Przydatne linki OpenStack strona projektu: openstack.org IRC: webchat.freenode.net (#openstack) OpenContrail strona projektu: opencontrail.org kanał YouTube: www.youtube.com/user/opencontrail IRC: webchat.freenode.net (#opencontrail)
Pytania?
Dziękujemy za uwagę! Bartosz Górski bartosz@codilime.com Paweł Banaszewski pawel.banaszewski@codilime.com