|

4 Kroki – Wireguard OSPF RouterOS7

Wireguard OSPF na RouterOS7 jest możliwy do skonfigurowania trzeba tylko pamiętać o opisanych 4 krokach.

Temat w formie video obejrzysz TUTAJ 🙂

Cały proces sprowadza się do 4 niżej wymienionych kroków konfiguracji :

4 Kroki - OSPF Wireguard RouterOS7
4 Kroki – OSPF Wireguard RouterOS7

Topologia – Wireguard OSPF

Topologia - OSPF Wireguard RouterOS7
Topologia – OSPF Wireguard RouterOS7

Rozpoczynam konfiguracją od środowiska stworzonego w poprzednich artykułach, zawierającego gotową konfigurację Wireguard’a oraz statyczne trasy routingu, jeżeli chcesz zobaczyć jak stworzyć taką konfigurację możesz znaleźć w poniższym artykule:

Wireguard Routing Statyczny Zdalny Dostęp i Zdalne Lokalizacje [konfiguracja Mikrotik]

Moim celem w tym artykule jest zastąpienie, statycznego routingu na Mikrotik1 oraz Mikrotik2 routingiem dynamicznym OSPF.

Krok 1 – Multicasty w Tunelu Wireguard

Zacznę od przypomnienia działania OSFP’a w najważniejszych kwestiach:

  1. OSFP komunikuje się poprzez multicasty i adres grupy multicast 224.0.0.5. Dzięki przesyłaniu multicastów wykrywane są routery w danej strefie (AREA) OSFP.
  2. W zależności od implementacji jaką wybrałeś, możesz w konfiguracji Wireguard’a ograniczać komunikację IP, jeżeli tak robisz to pierwszym krokiem będzie dodanie adresu grupy multicastowej do Wireguard’a
  3. Ponieważ Open Shortest Path First jest protokołem stanu łącza, więc informacje o dostępnych łączach na wszystkich routerach są wymieniane między wszystkimi członkami strefy OSFP.
  4. Każdy router buduje sobie pełną bazę dostępnych łącz w całej strefie, a następnie algorytmem SPF (Shortest Path First) wylicza najkrótszą ścieżkę, bazując na kosztach poszczególnych łącz.
  5. Dzięki temu koszty obliczane są w oparciu o wartości powiązane z prędkością łącza.

Wireguard dla procesu OSFP jest po prostu interesem sieciowym podobnie jak inne interfejsy Ethernet na routerze.

Możemy teraz przejść do konfiguracji routera MT1, dodaję adres multicastowy jedynie do połączenia Site-to-Site z MT2, nie zmieniam konfiguracji Wireguard’a dla peer’a w trybie Road Warrior:

Wireguard Peer MT1- OSPF Wireguard RouterOS7
Wireguard Peer MT1- OSPF Wireguard RouterOS7
Wireguard Peer Allowed Address MT1 - OSPF Wireguard RouterOS7
Wireguard Peer Allowed Address MT1 – OSPF Wireguard RouterOS7

Analogicznie dodaję grupę multicastową do MT2, na tym routerze posiadam tylko jednego peer’a dla Wireguard’a:

Wireguard Peer MT2- OSPF Wireguard RouterOS7
Wireguard Peer MT2- OSPF Wireguard RouterOS7
Wireguard Peer Allowed Address MT2 - OSPF Wireguard RouterOS7
Wireguard Peer Allowed Address MT2 – OSPF Wireguard RouterOS7

Krok 2 – Utworzenie Instancji OSPF

Drugim krokiem konfiguracji procesu OSFP na routerze z Wireguard’em będzie utworzenie instancji OSFP na każdym z konfigurowanych routerów.

Konfigurujemy:
– wybraną nazwę
– wersję protokołu (v2 jest OSFP’em dla IPv4)
– VRF (Virtual Routing and Forwarding)- na Mikrotiku możemy wykorzystać różne tablice routingu do różnych procesów, w dzisiejszym artykule wykorzystujemy podstawową tablicę routingu
– Router ID jest identyfikatorem, dzisiaj również nie będziemy go zmieniać

Konfiguracja na MT1:

OSPF Instance Add MT1 - OSPF Wireguard RouterOS7
OSPF Instance Add MT1 – OSPF Wireguard RouterOS7
OSPF New Instance MT1 - OSPF Wireguard RouterOS7
OSPF New Instance MT1 – OSPF Wireguard RouterOS7

Konfiguracja na MT2, dodajemy w analogiczny sposób instancję jak powyżej:

OSPF New Instance MT2 - OSPF Wireguard RouterOS7
OSPF New Instance MT2 – OSPF Wireguard RouterOS7

Krok 3 – Utworzenie Obszaru OSFP (Area)

Tworzenie obszaru służy grupowaniu routerów i optymalizacji przekazywania informacji o sieciach. Jak wspomniałem na początku artykułu protokół OSPF jest protokołem stanu łącza i wszystkie routery w danej strefie informują się wzajemnie o dostępnych połączeniach.

Przy dużej ilości routerów ilość komunikatów może być na tyle duża, że niepotrzebnie obciąża proces routera. W związku z tym wymyślono że warto podzielić w dużych sieciach routery na grupy i dobrą praktyką jest planowanie do 50 routerów w jednym obszarze.

W naszym scenariuszu i pewnie w Twoim również nie osiągniesz takiej liczby, więc skupiamy się jedynie na skonfigurowaniu jednej strefy.

Konieczna do wykonania konfiguracja składa się z:
– Nazwy strefy
– Wskazujemy Instancję z listy
– Wpisujemy Area ID

UWAGA: Wpisane dane muszą się zgadzać na obu routerach, żeby prawidłowo MT1 i MT2 się ze sobą komunikowały.

OSPF Areas MT1 - OSPF Wireguard RouterOS7
OSPF Areas MT1 – OSPF Wireguard RouterOS7
OSPF Area MT2 - OSPF Wireguard RouterOS7
OSPF Area MT2 – OSPF Wireguard RouterOS7

Zwróć uwagę na wpisany Area ID, wpisałem 0.0.0.1, choć może być wpisany dowolny identyfikator, ale dobrą praktyką jest wybrać inny niż Area ID 0.0.0.0.
Chodzi o to że identyfikator 0.0.0.0 jest używany przy obszarach tranzytowych.

Jeżeli będziesz chciał w przyszłości rozbudować swoją sieć o inne obszary to powinieneś je wzajemnie połączyć obszarem tranzytowym o identyfikatorze 0.0.0.0 i dlatego wybieraj dowolny inny identyfikator do swojej instalacji.

Krok 4 – Konfiguracja Szablonów Interfejsów OSFP

Ostatnim krokiem konfiguracji OSPF’a jest dodanie interfejsów/sieci IP dostępnych na poszczególnych interesach.

Tutaj pamiętaj o 2 typach interesów:
1. Interfejs na którym komunikujemy się z innym routerem w procesie OSFP
2. Interfejsy w sieciach klienckich, proces OSPF musi być włączony na tych interfejsach żeby te sieci były rozgłaszane.

Nie chcemy jednak żeby obce routery OSFP mogły komunikować się z naszymi, np. przy uruchomieniu procesu OSFP na komputerze użytkownika naszej sieci.
W związku z tym zastosuję tryb pasywny na interfejsach w sieciach klienckich.

Sieci klienckie to te do których mamy podłączone komputery.

W przypadku Mikrotika RouterOS7 zmieniono sposób konfiguracji z pojedynczego kontekstu każdego interfejsu do tworzenia szablonów.

Dzięki temu możemy łatwo skonfigurować wiele interesów używając jednego szablonu konfiguracji.

W moim przykładzie stworzyłem 2 szablony:
1. Szablon dla Wireguard łączący MT1 i MT2, połączenie punkt punkt
2. Szablon dla sieci klienckich Bridge i Wireguard Road Warrior, typ sieci Broadcast

OSPF Interface Template Add MT1 - OSPF Wireguard RouterOS7
OSPF Interface Template Add MT1 – OSPF Wireguard RouterOS7
OSPF Interface Template Passive MT1 - OSPF Wireguard RouterOS7
OSPF Interface Template Passive MT1 – OSPF Wireguard RouterOS7

Dodatkowo żeby zabezpieczyć się przed niepożądanym połączeniem z obcym routerem OSFP dobrą praktyką jest wpisywanie uwierzytelnienia, między routerami, tym przypadku md5.

Niestety OSFP nie oferuje silniejszych metod uwierzytelniania, więc ten mechanizm traktuj jako zabezpieczenie się przed przypadkowym pojawieniem się obcych tras, nie należy traktować tego mechanizmu jako jako zabezpieczenia przed atakiem.

OSPF Interface Template WG MT1 - OSPF Wireguard RouterOS7
OSPF Interface Template WG MT1 – OSPF Wireguard RouterOS7

Hash md5 możesz sobie wygenerować w dowolnym narzędziu, tutaj mój przykład:

MD5 Hash
MD5 Hash – OSPF Wireguard RouterOS7

Te same czynności wykonam na MK2, różnica dotyczy jedynie braku interfejsu WG-Road-Warrior na MK2.

Interface Template Passive MT2
OSPF Interface Template Passive MT2 – OSPF Wireguard RouterOS7
Interface Template Passive MT2
OSPF Interface Template Passive MT2
Interface Template WG MT2
OSPF Interface Template WG MT2

Weryfikacja działania – Wireguard OSPF

Po utworzeniu konfiguracji czas na weryfikację działania protokołu routingu.
Zacznę od sprawdzenia na jakich interfejsach działa protokół OSPF.

Na MT1 widzę 3 interfejsy, czyli wszystkie uruchomione działają w jednej strefie, 2 z nich mają tryb pasywny. Jedynie na tunelu Wireguard mam skonfigurowaną aktywną wymianę informacji.

OSPF Interfaces MT1 - OSPF Wireguard RouterOS7
OSPF Interfaces MT1

Podobnie na MT2 sprawdzam interfejsy. W tym przypadku widzę tylko 2 interfejsy, jeden w trybie passie drugi w trybie ptp (aktywny punkt punkt)

OSPF Interfaces MT2 - OSPF Wireguard RouterOS7
OSPF Interfaces MT2

Teraz możemy przejść do sprawdzenia stanu sąsiedztwa, stan Full oznacza przejście wszystkich kroków negocjacji sąsiadów w OSPF

OSPF Neighbors MT1 - OSPF Wireguard RouterOS7
Neighbors MT1
OSPF Neighbors MT2 - OSPF Wireguard RouterOS7
Neighbors MT2

Sprawdziłem routery się właściwie komunikują, rozgłaszają OSFP’a na wybranych interfejsach. Przejdę teraz do sprawdzenia jakie informacje rozgłaszają, czyli komunikaty LSA (Link State Advertisement)

OSPF LSA MT1
LSA MT1
OSPF LSA MT2
LSA MT2

Na koniec sprawdzę trasy routingu na każdym z routerów. Na MT1 widać dodana została trasa do sieci 10.0.20.0/24. Jest to sieć kliencka dostępna za MT2. Pozostałe wpisy pozostają bez zmian, DAC to sieci bezpośrednio podłączone do MT1. Natomiast sieć oznaczona AS, to trasa wynikająca z konfiguracji interesu WAN na MT1.

Routes OSPF MT1 - OSPF Wireguard RouterOS7
Routes OSPF MT1 – OSPF Wireguard RouterOS7

Sprawdźmy teraz na MT2 jak trasy routingu się zmieniły. W tym przypadku widzę 2 trasy rozgłoszone przez proces OSFP. Pierwszą jest sieć 10.0.10.0/24 czyli sieć kliencka na MT1 i drugą 10.255.254.0/24 sieć dostępu zdalnego (Road Warrior). Dzięki takiej konfiguracji klient linux będzie mógł się komunikować z komputerem VPC22.

Routes OSPF MT2 - OSPF Wireguard RouterOS7
Routes OSPF MT2 – OSPF Wireguard RouterOS7

Podsumowanie

Utworzenie dynamicznego routingu OSPF pomiędzy naszymi lokalizacjami przez tunel Wireguard, umożliwi w przyszłości łatwą rozbudowę środowiska. Dodanie nowej sieci, np. DMZ automatycznie zostanie rozgłoszone do wszystkich routerów w strefie OSFP.

Co ciekawe na Mikrotiku trasy dynamiczne mają pierwszeństwo nad statycznymi trasami. Nawet w przypadku gdy Administrative Distance jest wyższy w przypadku OSPF i wynosi 110. Statyczny wpis posiada AD 1 i powinien być preferowany przez proces OSFP.


Podobne wpisy

2 komentarze

  1. Wszystko zrobione zgodnie z instrukcją lecz nie działa OSPF. Mam kilka Mikrotików spiętych tunelem WG s2s do jednego Mikrotika. Czyli Mikrotiki B, C, D łączą się do Mikrotika A. Teraz dzięki OSPF powinienem się dostać z B do C przez A lecz tak się nie dzieje. Ustawienia wg. poradnika nie działają. Co z Firewallem ?

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *