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 :

Topologia – Wireguard OSPF

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:
- 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.
- 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
- 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.
- 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.
- 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:


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


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:


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

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.



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


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.

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

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



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.

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

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


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)


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.

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.

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.

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 ?
Odpowiedziałem w formie podcastu, zajrzyj: https://youtu.be/HgzUVzq_Mhk