Wprowadzenie do IPv6 na NSIS Cloud
IPv6 jest najnowszą wersją protokołu internetowego, który zapewnia znacznie większą liczbę adresów IP w porównaniu z obecnie używanym systemem IPv4. To Rozszerzenie jest kluczowe dla zapewnienia połączenia z Internetem coraz większej liczby urządzeń. IPv6 jest przydatny dla:
rozwinięcia IoT (Internetu rzeczy)
rozwinięcia 5G i kolejnych wersji
rozwiązanie problemu wyczerpywania się adresów IPv4
chmury obliczeniowej, sieci wielochmurowych
zwiększenia bezpieczeństwa sieci
usprawnienia doświadczenia mobilnego
umożliwienia tworzenia większych sieci domowych i firmowych
i tak dalej.
Co obejmuje ten artykuł?
Niektóre przypadki użycia IPv6 – przegląd techniczny
Sieci prywatne
Sieci publiczne
Single/Dual stack
Grupy bezpieczeństwa
Przypisanie adresu
Usługi Load Balancer i dual-stack
Konfigurowanie dostępu do sieci zewnętrznej dla IPv6
Tworzenie sieci IPv6 z routerem
Wymagania wstępne
Krok 1: Tworzenie sieci
Krok 2: Tworzenie podsieci
Krok 3: Wdrożenie routerów
Krok 4: Konfigurowanie bramy zewnętrznej dla routerów
Krok 5: Integracja podsieci z routerem
Ważne rozważania
Wymagania wstępne
Nr 1 Konto
Potrzebujesz konta hostingowego NSIS Cloud z dostępem do interfejsu Horizon: https://horizon.cloudferro.com.
Nr 2 Klient OpenStack CLI
Jeśli chcesz komunikować się z chmurą NSIS Cloud przy użyciu klienta OpenStack CLI, musisz go zainstalować. Sprawdź jeden z tych artykułów:
Po zainstalowaniu oprogramowania musisz sie uwierzytelnić, aby zacząć je używać: Jak aktywować dostęp OpenStack CLI do chmury NSIS przy użyciu uwierzytelniania dwuskładnikowego
Aby przetestować, czy polecenie openstack działa, wyświetl listę flavorów:
openstack flavor list
Jeśli wyświetli się lista flavorów w taki sposób:
to potwierdzi prawidłowe działanie.
Niektóre przypadki użycia IPv6 – przegląd techniczny
Każda sieć, w tym również sieci wcześniej utworzone, może mieć dołączoną podsieć IPv6, podobnie jak sieć IPv4.
Sieci prywatne
Zakres adresów IPv6 dla sieci prywatnych obejmuje fc00::/7, co sprawia, że każda podsieć /64 w tym zakresie jest nie tylko doskonałym wyborem, ale również najbardziej zalecanym wyborem dla prefiksów sieci lokalnych.
Na przykład, sieć może być skonfigurowana z zapamiętanym adresem, jak fc00:abcd:1234:1::/64. Zwykle brama sieci znajduje się pod pierwszym adresem podsieci (pod :1), i jest niezmiernie ważne, aby ta brama była aktywna, aby wspierać każdą formę automatycznego przypisywania adresów, taką jak SLAAC.
Chociaż jest możliwe użycie innych prefiksów IPv6, w tym takich, które są publicznie routowalne, w sieciach prywatnych, te adresy nie będą widoczne z Internetu. W rezultacie, prywatna sieć IPv6 nie będzie miała dostępu do Internetu.
Sieci publiczne
Aby utworzyć publiczną sieć IPv6, wykorzystaj adresy z podanej puli podsieci, którą można wybrać za pomocą interfejsu Horizon lub za pomocą opcji –subnet-pool w interfejsie wiersza poleceń (CLI).
Po wybraniu odpowiedniej podsieci utwórz sieć tenant’ową i połącz ją z routerem, który ma bramę w jednej z naszych sieci zewnętrznych.
Ważne jest, aby zauważyć, że wszystkie sieci IPv6 z dostępem do Internetu są publicznie widoczne. Dlatego unikaj podłączania serwerów z grupami dostępu o dużej elastyczności do sieci publicznych, chyba że jest to konieczne.
Single/Dual stack
Pomimo wsparcia single stack dla sieć IPv6, zaleca się dołączenie tej sieci IPv4 podczas konfiguracji i przez cały okres istnienia maszyny wirtualnej.
To zapewnia kompatybilność i pozwala usługom takim jak cloud-init działać poprawnie.
Grupy bezpieczeństwa
Grupy bezpieczeństwa IPv6 są w pełni obsługiwane, ale wymagają dodatkowych reguł w porównaniu z IPv4, w tym reguły „Any host” ustawionej na ::/0, aby objąć wszystkie adresy IPv6.
Podczas dodawania interfejsów do serwera, bądź ostrożny wobec grup bezpieczeństwa przypisanych do każdego portu, ponieważ nowy port może nie odziedziczyć wszystkich grup bezpieczeństwa z serwera.
Przypisanie adresu
Zalecane ustawienie dla przypisywania adresu to SLAAC za pomocą formatu EUI-64. To ustawienie MUSI być jawnie skonfigurowane, ponieważ w przeciwnym razie domyślnie będzie ustawione na „None”.
Istnieją następujące tryby:
- SLAAC (eui-64) ZALECANE
Router bramy wysyła RA zawierające prefiks sieci, aby maszyny wirtualne mogły obliczyć swoje adresy za pomocą algorytmu eui-64.
Ważne jest, aby zauważyć, że jakikolwiek inny algorytm lub rozszerzenie prywatności eui-64 złamie funkcjonalność - musi to być dokładnie eui-64 bez prywatności.
- SLAAC(external)
Istnieje dla określonych przypadków użycia poza zakresem tego artykułu.
- DHCPv6 stateful
Klasyczny DHCP, obsługiwany w wielu obrazach jako domyślna opcja.
- DHCPv6 stateless
Połączenie SLAAC i DHCP - router zapewnia prefiks, DHCP zapewnia dodatkowe opcje, takie jak DNS.
Usługi Load Balancer i dual-stack
Usługi Load Balancer w OpenStack nie mogą obsługiwać dual-stack Virtual IPs na jednej instancji. Jeśli potrzebne są front-endy IPv4 i IPv6, wymagane są dwie oddzielne usługi równoważenia obciążenia, każda połączona z odpowiednią podsiecią. Dodatkowo, w sieciach dual-stack, usługi równoważenia obciążenia mogą obsługiwać członków puli za pomocą IPv4 i IPv6. Mogą również zawierać członków puli z sieci zewnętrznych, które są routowalne.
Konfigurowanie dostępu do sieci zewnętrznej dla IPv6
Poniżej znajduje się krok-po-kroku instrukcja, jak skonfigurować dostęp zewnętrzny dla sieci IPv6 przy użyciu OpenStack:
- Krok 1.
Sprawdź, czy neutron-server ma wszystkie niezbędne poprawki, aby obsługiwać funkcjonalność IPv6.
- Krok 2.
Utwórz podsieć IPv6 jako podsieć podstawową w sieci zewnętrznej. Podsieć ta będzie obsługiwać ruch zewnętrzny IPv6, zapewniając bramę do Internetu. Użyj następującego polecenia, aby utworzyć podsieć:
openstack subnet create \ --network external \ --tag external \ --subnet-pool external-ipv6-pool \ --gateway "<addr>::1" \ --dhcp --ip-version 6 \ --ipv6-ra-mode slaac \ --ipv6-address-mode \ slaac external-ipv6
- Krok 3.
Dodaj pule podsieci IPv6. Konfigurowanie puli podsieci jest niezbędne do zarządzania przydzielaniem adresów IPv6 w sieci zewnętrznej.
openstack subnet pool create \ --pool-prefix "<addr>::/48" \ --min-prefix-length 64 \ --max-prefix-length 64 \ --default --share \ --description "GUA publiczne adresy IPv6" \ external-ipv6-pool
Tworzenie sieci IPv6 z routerem
Krok 1: Tworzenie sieci
Rozpocznij tworzenie sieci, wykonując następujące polecenie:
openstack network create ipv6-network
Krok 2: Tworzenie podsieci
Ustaw konfigurację podsieci, aby określić alokację adresów dla sieci.
openstack subnet create \
--ip-version 6 \
--ipv6-ra-mode slaac \
--ipv6-address-mode slaac \
--use-default-subnet-pool \
--network ipv6-network \
ipv6-subnet
Krok 3: Wdrażanie routerów
Włącz funkcje routingowe w ramach infrastruktury sieciowej, aby umożliwić komunikację między podsieciami.
openstack router create router1
Krok 4: Konfigurowanie bramy zewnętrznej dla routerów
Skonfiguruj router, aby nawiązał połączenie z siecią zewnętrzną, uzyskując dostęp poza środowiskiem lokalnym.
openstack router set router1 --external-gateway external
Krok 5: Integracja podsieci z routerem
Zintegruj nowo utworzoną podsiec z routerem, aby zapewnić płynną komunikację urządzeń w sieci.
openstack router add subnet router1 ipv6-subnet
Po wykonaniu opisanych kroków wyniki można wyświetlić przy użyciu interfejsu Horizon.
Ważne uwagi
Przed przystąpieniem do implementacji należy zwrócić uwagę na następujące kwestie:
Adresy HTTP(s): Upewnij się, że adresy IPv6 używane w adresach URL są otoczone nawiasami kwadratowymi, aby odróżnić adres od numeru portu.
http://[fd00:dead:beef:64:34::2]:80
Adresy link-local: Każdemu interfejsowi w sieci IPv6 automatycznie przypisywany jest adres link-local. Adresy te są kluczowe dla komunikacji lokalnej, a określenie interfejsu podczas ich używania jest ważne, aby zapewnić jasną i skierowaną interakcję sieciową. Przykład:
fe80::a9fe:a9fe%eth0
Zakres prywatny: Zakres prywatny dla IPv6 to fc00::/7.
Adres link-local: Adres link-local (fe80::) jest kluczowy dla funkcjonalności protokołu IPv6 i jest zawsze obecny na interfejsach sieciowych.
Podsieciowanie sieci: Używaj sieci /64 dla podsieci, chyba że masz uzasadniony powód, aby tego nie robić. To standaryzowanie zapewnia odpowiednią funkcjonalność i kompatybilność IPv6.
Konfiguracja SLAAC: EUI64 bez rozszerzeń prywatnych jest zalecany w naszym SLAAC. Inna metoda nie zadziała, ponieważ adres musi być taki sam, jak ten wyświetlany przez OpenStack w poleceniu server show. Wynika to z bezpieczeństwa portu.
Bezpieczeństwo portu i usługa Metadata6: Wyłączenie bezpieczeństwa portu może zakłócić działanie usługi Metadata6. Usługa ta nasłuchuje na adresie link-local fe80::a9fe:a9fe%interface, wymagając określonego interfejsu wskazującego. Jest to niezbędne do kompatybilności źródła cloud-init OpenStack, chociaż nie działa dla źródła EC2.
Konfiguracja DNS: W przypadku implementacji z pojedynczym stackiem IPv6 wymagana jest ręczna konfiguracja DNS dla instancji, aby zapewnić poprawne rozwiązywanie nazw.
Rekomendacja dotycząca dual-stack: Zdecydowanie zalecamy wdrożenia dual-stack, nawet z podsiecią prywatną IPv4 stub. Dual-stack oferuje prostotę konfiguracji i zapewnia kompatybilność z różnymi typami obrazów.
Grupy zabezpieczeń domyślnych: W chwili obecnej domyślne grupy zabezpieczeń nie zezwalają na ruch przychodzący IPv6. Upewnij się, że wymagania dotyczące ruchu IPv6 są odpowiednio uwzględnione.