W niniejszym wpisie pokażę, jak utworzyć VPN pomiędzy lokalną/firmową infrastrukturą a chmurą Azure. Takie rozwiązanie nosi nazwę Hybrid Cloud:

https://www.backblaze.com/blog/confused-about-the-hybrid-cloud-youre-not-alone/

Co to VPN?

VPN (Virtual Private Network) to usługa, która umożliwia połączenie się z Internetem z dowolnego miejsca na świecie poprzez wirtualny, szyfrowany tunel, w taki sposób, że węzły tej sieci są przezroczyste dla przesyłanych w ten sposób pakietów. Innymi słowy –  to tak, jakbyśmy mieli kawałek Internetu tylko dla nas. Dzięki niemu możemy mieć pewność, że nikt niepowołany nie będzie w stanie przechwycić i odczytać naszych danych przesyłanych przez Internet, niezależnie od tego, gdzie się w danej chwili znajdujemy.

Po co nam Hybrid Cloud?

Wyobraźmy sobie następujący scenariusz: w naszej firmie są 4 zespoły, które wykorzystują 90% zasobów sprzętowych na np.: środowiska testowe, produkcyjne, firmowe wiki, firmowe repozytorium git itd. Następnie pojawia się nowy projekt, dla którego musimy postawić środowiska developerskie, testowe, staging’owe, i może jakiegoś Jenkins’a. Niestety, firma nie ma tylu wewnętrznych zasobów na stworzenie tego wszystkiego. Na pomoc przychodzi nam Hybrid Cloud. Chcemy utworzyć środowiska testowe, staging’owe itd. w chmurze, czyli jakieś maszyny wirtualne (vm), kubernetes czy docker registry. Dodatkowo chcemy, aby utworzone zasoby były dostępne tylko dla naszej firmowej sieci i niedostępne z zewnątrz.

Do tego celu musimy utworzyć VPN-a pomiędzy naszą firmową siecią a dostawcą usług chmurowych np. Azure.

 

VPN z Azure

Na początku zobrazujmy to, co chcemy osiągnąć (podane IP są przykładowe):

  • Nasza sieć jest widziana na zewnątrz pod IP (71.71.71.71)
  • W naszej lokalnej sieci mamy następujące przestrzenie adresowe:
    • 192.168.0.0/16 (firmowe produkcyjne rzeczy)
    • 52.52.52.0/24 (przestrzeń adresowa zespołu A)
    • 52.52.56.0/24 (przestrzeń adresowa B)
    • 230.13.34.0/24 (przestrzeń adresowa, która jest wystawiona klientowi X)
  • Przestrzeń adresowa sieci Azure – 10.1.0.0/16
  • Adres publiczny sieci Azure – dynamiczny – 13.93.35.156

Na początku utwórzmy komponent Local Network Gateway, który posłuży nam do odwzorowania naszej lokalnej sieci.


Następnie utwórzmy sieć wirtualną na Azure (Virtual Network).

Kolejnym krokiem jest utworzenie bramy VPN (Virtual Network Gateway), która pozwoli na skonfigurowanie połączenia VPN pomiędzy siecią wirtualną Azure oraz lokalną siecią. W poniższym przykładzie przypiszemy dynamiczny adres IP do naszej bramy. W tym przypadku dynamiczny adres IP powoduje to, że w momencie tworzenia zostanie wybrany losowy IP, natomiast później, nawet jak będziemy resetować czy zmieniać ustawienia – inicjalny adres pozostanie niezmieniony. Zmiana jest możliwa tylko poprzez usunięcie i ponowne utworzenie komponentu.

Ostatni komponent, który musimy utworzyć, nosi nazwę Connection. Posłuży on nam do połączenia naszej lokalnej sieci z utworzoną wcześniej bramą VPN. Aby połączyć lokalną sieć z siecią Azure, musimy wybrać typ połączenia jako Site-to-Site.

Wybieramy wcześniej utworzony VPN Gateway oraz komponent odwzorowujący lokalną sieć. Następnie definiujemy hasło potrzebne do ustanowienia połączenia z naszą lokalną bramą. Zdefiniowane hasło będzie nam później potrzebne do konfiguracji lokalnej bramy.

W rezultacie powinniśmy mieć utworzone następujące komponenty w grupie zasobów o nazwie „fingo-resource”:

W tym momencie już mamy prawie wszystko ukończone. Została jeszcze konfiguracja lokalnej bramy VPN. W tym celu możemy pobrać skrypt konfigurujący połączenie (Connection -> Overview -> Download Configuration) lub posłużyć się poradnikiem, jeśli nie znajdziemy konfiguracji dla naszego urządzenia:

https://docs.microsoft.com/pl-pl/azure/vpn-gateway/vpn-gateway-about-vpn-devices

Jeżeli poprawnie skonfigurowaliśmy naszą lokalną bramę, to w komponencie Virtual Network Gateway pod opcją Connection powinniśmy mieć status ustawiony na „connected”:

Tym sposobem utworzyliśmy VPN z chmurą Azure. Aby przetestować utworzony VPN, stwórzmy wirtualną maszynę. W sekcji Networking pod „Public IP” wybierzmy „None” (nie chcemy, aby nasze maszyny były dostępne na zewnątrz), a jako virtual network – sieć, którą wcześniej skonfigurowaliśmy i podpięliśmy do VPN-a.

Sprawdźmy tak wykonaną konfigurację sieci – wykonajmy polecenie ping do naszej maszyny (ping 10.1.0.4).

Podsumowanie

W niniejszym wpisie pokazałem, jak utworzyć VPN-a z Azure i w rezultacie stworzyć Hybrid Cloud. Osiągnęliśmy zakładany cel: nową podsieć wewnętrzną w firmie, dostępną dla usług w Azure, a niedostępną (zabezpieczoną) przed niepowołanym dostępem z zewnątrz (ruch publiczny z sieci internet).

Jest z tym trochę roboty, ale tak naprawdę konfiguruję się to raz i ewentualnie aktualizuje przestrzenie adresowe naszych lokalnych sieci.

Jeżeli chodzi o koszty, to użyty zestaw komponentów to koszt ok. 25 € / miesiąc (bez uruchamiania maszyny wirtualnej).

Więcej o kosztach można znaleźć w oficjalnym cenniku Azure:

https://azure.microsoft.com/pl-pl/pricing/details/vpn-gateway/