Przejdź do treści

Najtańsze bezpieczne połączenie sieci na Azure – Peering

Gdy rozmawiałem z ludźmi na różnych spotkaniach, konferencjach byłem zaskoczony, że nie wszyscy, którzy używają Azure wiedzą, co to jest peering. Dlatego postanowiłem trochę napisać na ten temat i pokazać jak go używać, ponieważ może to znacząco obniżyć koszty środowiska na platformie Azure.

Zacznijmy więc od początku. Sieci na platformie Azure, tak samo jak w środowisku lokalnym, są całkowicie odizolowane od siebie. Czasami bywa sytuacja, że chcielibyśmy, żeby zasoby z jednej sieci miały dostęp do tych w innej. Możemy się do nich dostać używając publicznych adresów naszych zasobów, co nie jest zbyt bezpieczne. Na szczęście istnieje też bezpieczniejszy sposób, możemy sieci połączyć za pomocą VPNa albo Peeringu. Express route jest osobnym zagadnieniem, które postaram się opisać w oddzielnym artykule.

Połączenie VPN

VPN jest najbardziej popularnym, ale też dość drogim rozwiązaniem bo ok 30$ za najtańszy typ.  Jeśli ruch odbywa się w tym samym regionie, to jest bezpłatny w obu kierunkach. Inna sytuacja ma miejsce jeśli łączymy 2 regiony, wtedy musimy dodatkowo zapłacić. Jeśli mamy 2 sieci na platformie Azure, to możemy je połączyć za pomocą połączenia VPN vnet-vnet. Sieci połączone w ten sposób mogą być w różnych lokalizacjach i subskrypcjach. Sam proces połączenia sieci wirtualnych nie jest zbyt skomplikowany, przebiega podobnie do procesu tworzenia połączenia IPsec typu lokacja-lokacja (VPN site-site). Oba typy połączeń używają bramy sieci VPN, aby zapewnić bezpieczny tunel korzystający z protokołu IPsec/IKE. Ważną informacją jest to, że ruch nie odbywa się przez internet tylko przez sieć szkieletową Microsoftu.

Połączenie Peering

Opis:

Azure Peering jest dużo tańszy niż VPN, tutaj płacimy tylko za transfer danych. Mamy możliwość połączenia ze sobą sieci w tym samym regionie, lub różnych regionach. Ruch jest prywatny i odbywa się w sieci szkieletowej Microsoftu, nic nie wydostaje się do internetu. Możemy go ograniczyć stosując odpowiednie zasady w NSG (Network Security Group). Ruch może być jedno, lub dwukierunkowy w zależności od naszej konfiguracji.

Przykłady:

Żeby stworzyć takie połączenie udajemy się na portal Azure i wybieramy sieć wirtualną, dla której ma być ono utworzone. Z ustawień sieci wybieramy pozycję Peering i klikamy na “Add”.

Azure Vnet
Azure add peering in Vnet

Zostało już tylko uzupełnić formularz, na początku podajemy nazwę dla połączenia azure peering z sieci A do sieci B. Teraz możemy wskazać subskrypcję, grupę zasobów i sieć z jaką chcemy się połączyć. Jeśli sieć jest w innej subskrypcji i niema jej na liście to możemy zaznaczyć checkbox “I know my resource ID” i podać “resource ID”. Po wybraniu drugiej sieci nadajemy nazwę dla połączenia peeringu z sieci B do sieci A. Określamy czy zezwalamy na ruch między sieciami w jednym i drugim kierunku (Configure virtual network access settings). Następna opcja “Configure forwarded traffic settings” określa czy zezwalamy na przekazywanie ruchu spoza sieci, dla których jest ustawiony peering. Ostatnią rzeczą jest checkbox “Allow gateway transit”, zaznaczamy go jeśli chcemy zezwolić na ruch przez gateway.

Azure add peering

Konfiguracja:

Za pomocą połączenia peering możemy połączyć więcej sieci wirtualnych, tylko jest jedno “ale”. Jeśli mamy 3 sieci Vnet-A, Vnet-B i Vnet-C i połączymy je w sposób pokazany poniżej.  Vnet-A połączymy z Vnet-B, a Vnet-B połączymy z Vnet-C to musimy pamiętać, że sieć wirtualna Vnet-A będzie mogła się komunikować tylko z Vnet-B, ale już nie połączy się z Vnet-C. Sieć Vnet-C także nie będzie mogła się połączyć z Vnet-A.

  • Vnet-A <=>  Vnet-B
  • Vnet-B <=> Vnet-C

Jeśli chcemy żeby Vnet-A miała połączenie z Vnet-B i Vnet-C to musimy skonfigurować osobne połączenia peeringu, osobne dla każdej sieci, z którą chcemy się komunikować. Wtedy ruch będzie odbywał się bezpośrednio.

  • Vnet-A <=>  Vnet-B
  • Vnet-B <=> Vnet-C
  • Vnet-A <=> Vnet-C

Można także, w konfiguracji peeringu zezwolić na przekazywanie ruchu. Wtedy ruch z sieci Vnet-A do sieci Vnet-C będzie mógł się odbywać, ale tylko przez sieć pośredniczącą np. Vnet-B. Żeby ruch był przekazywany należy także zdefiniować dodatkowe trasy. Jak to dokładnie zrobić opiszę w kolejnym wpisie na blogu, który ukaże się już niebawem.

Azure peering - forward traffic
Azure Route tables panel

Więcej informacji na temat sieci wirtualnych znajdziesz w dokumentacji microsoftu: https://docs.microsoft.com/pl-pl/azure/virtual-network/

Jeśli chciałbyś się dowiedzieć więcej szczegółowych informacji na temat UDR(User Defined Routes) , to zapraszam do zapoznania się z moim nowym wpisem na ten temat. Wyjaśniam w nim krok po kroku, jak utworzyć tablicę routingu, niestandardowe trasy i za ich pomocą kierować ruchem w sieci.