Konfiguracja Mikrotik Wireguard Site-to-Site

Konfiguracja Mikrotik Wireguard Site-to-Site

Mikrotik WireGuard Site to Site

Podczas konfiguracji WireGuarda w trybie RoadWarrior wykorzystywaliśmy jeden router oraz klienta w postaci maszyny wirtualnej z systemem Windows 10. W przypadku połączeń typu Site to Site, łączymy ze sobą routery, oraz podsieci dostępne za routerami. W zależności o konfiguracji, możemy udostępniać całą komunikację, bądź ograniczyć się do konkretnej podsieci, a nawet adresu IP. Połączenia typu site-to-stie używamy, gdy chcemy zestawić bezpieczny tunel między oddziałami firmy, czy też udostępnić kawałek sieć dla kontrahentów.

Bez schematu, nie da rady

Konfiguracja opiera się o dwa routery MT-1 i MT-2. Efektem końcowym naszych prac jest umożliwienie komunikacji hosta 192.168.88.254 za MT-1 z komputerem 192.168.99.254 znajdujące się za MT-2.

schemat-wireguard-s2s

Konfiguracja MT-1

Konfiguracje zaczynamy o uruchomienia usługi Wireguard, w tym celu z bocznego menu wybieramy Wireguard i znakiem plusa dodajemy wpis. Na tym etapie konfiguracji najważniejszym parametrem jest Listen Port, 13231 jest domyślnym portem, który należy odblokować na firewallu.

Mikrotik Wireguard Interface

Przechodzimy na IP->Firewall->Rules i dodajemy nową regułę.

  • Chain: input
  • Protocol: udp
  • Dst. Port: 13231
  • Action: accept
Mikrotik Firewall Add New Rules

Jeżeli sprawdzałeś moje wcześniejsze materiały, a dokładniej serie Mikrotik od Zera, to doskonale zdajesz sobie sprawę, jak działa firewall w Mikrotiku, dlatego nową regułę należy przenieść znacznie wyżej. Dla lepszej widoczność dodajemy komentarz “Allow Wiregurad”.

Mikrotik Wireguard Site-to-Site

W kolejnym kroku nadajemy adresacje IP dla usługi Wireguard i interfejsu wireguard1. Przechodzimy na IP->Addresses i znakiem plusa dodajemy nową adresację. Podsieć możemy wybrać dowolną, ja najczęściej stosuje 10.10.0.0.

  • Address: 10.10.0.1/24, pamiętaj o masce na końcu
  • Network: po kliknięciu w Apply, uzupełni się automatycznie
  • Interafce: wskazujemy wireguard1, jeżeli nie widzisz takiego interfejsu, sprawdź czy na pewno dodałeś usługę Wireguard z kroku 1.
Mikrotik Wireguard Site-to-Site

Jednym z ostatnich kroków na MT-1 jest konfiguracja Peer, czyli dodanie drugiego routera. Wracamy do ustawienie Wireguarad i przechodzimy na zakładkę Peer. Zanim dokończymy konfigurację potrzebujemy klucz publiczny z MT-2, aby go uzyskać musimy, aktywować usługę Wireguard na MT-2. Logujemy się na MT-2 i z bocznego menu wybieramy Wireguard i dodajemy nowy wpis, zatwierdzamy OK, a następnie kopiujemy klucz publiczny klikając prawym przyciskiem myszy i Copy All. Wracamy na MT-1 i uzupełniamy konfigurację:

  • Interface: wskazujemy wireguard1
  • Public Key: kopiujemy z drugiego routera MT-2
  • Endpoint: publiczny adres drugiego routera MT-2
  • Listen Port: zostawiamy domyślny port
  • Allowed Address: możemy zawęzić komunikację do konkretnych podsieci, czy adresów IP, podając same zera nie nakładamy ograniczeń
Mikrotik Wireguard Site-to-Site

Konfiguracja MT-2

Konfiguracja drugiego routera przebiega niemal identycznie jak ustawienia MT-1. Usługa Wireguard została już uruchomiona. Przechodzimy do odblokowania komunikacji na porcie UDP 13231, czyli domyślnym porcie Wireguarda. Przechodzimy na IP->Firewall i w zakładce Rules dodajemy nowy wpis.

  • Chain: input
  • Protocol: udp
  • Dst. Port: 13231
  • Action: accept
Mikrotik Firewall Add New Rules

Następnie przechodzimy na IP->Addresses i dodajemy nowy adres IP dla interfejsu wireguard1. Na pierwszym routerze ustawiliśmy adres z podsieci 10.10.0.0/24, zostając w tej samej podsieci konfigurujemy wireguard1 na 10.10.0.2/24 .

Mikrotik Wireguard Site-to-Site

W kolejnym kroku ustawiamy połączenie dodając pierwszy router w zakładce Peer. Klucz publiczny kopiujemy z MT-1.

Mikrotik WireGuard Site-to-Site

Routing statyczny między routerami

Dodatkowym elementem w konfiguracji jest możliwość komunikacji między komputerem za MT-1 a komputerem za MT-2. Także host 192.168.99.254 powinien pingować host 192.168.88.254, aby taka komunikacja mogła zadziałać musimy dodać routing po obu stronach. Zaczynamy od MT-1. Przechodzimy na IP->Routes i dodajemy nową trasę.

  • Dst. Address: 192.168.99.0/24, podsieć na drugim routerze MT-2
  • Gateway: 10.10.0.2, adres IP interfejsu wireguard1 także z MT-2
Mikrotik Wireguard Site-to-Site

Do pełnej komunikacji potrzebujemy statycznego wpisu także po stronie MT-2. Przechodzimy na IP->Routes i dodajemy nową trasę:

  • Dst. Address: 192.168.88.0/24, czyli podsieć za pierwszym routerem MT-1
  • Gateway: 10.10.0.1, czyli adres IP pierwszego routera MT-1
Mikrotik Wireguard Site-to-Site

Materiał Video

Polecany sprzęt

Z własnego doświadczenia mogę wam polecić poniższy sprzęt, z podziałem na ewentualne przeznaczenie routera.

Do domu i małej firmy(SOHO): hAP AX Lite , hAP AC3, RB4011, RB260GS, RB2011
hAP AC3 LTE, hAP AX2, hAP AX3, L009UiGS-2HaxD-IN, RB5009UG+S+IN, Audience

LTE: SXT LTE kit, SXT LTE6 kit, LHG 5, LHG LTE kit, Audience LTE, Chateau LTE6 ax, LTAP LTE6

Access Pointy: mAP lite, mAP, cAP AX, cAP XL AC

POE: hEX PoE

LAB: hEX lite

Średnia/Duża firma: CCR1036-12G-4S, CCR2004-16G-2S+

47 Comments

  1. Pawel

    działa 🙂 teraz testy przepustowości

  2. Seph

    Coś mi nie chce działać.
    Czy na WireGuard można połączyć więcej niż 2 podsieci?
    W ogóle mam dziwną przypadłość, że przy IPSec MT1 łączy się z MT2 i całą siecią w obie strony. Jak dodam MT3 i MT4 które mają mieć kontakt z MT1 i siecią to albo działa w jedną stronę albo wcale przy identycznym CFG. DO tego połączenie z MT2 potrafi się zerwać.
    Zakładam że mam na MT1 coś za bardzo namieszane.

  3. bawjat

    How to make ikv2 connect on android/windows/osx to ip public use ikev2 ipsec psk / ikev2 ipsec rsa?

  4. Tomasz

    Czy rozwiązałeś ten problem ,bo mam dokładnie to samo

  5. Krzysztof

    Można połączyć więcej niż 2 podsieci i działa to sprawnie.

  6. Paweł

    Cześć. Jak zwykle świetny poradnik. Mam pytanie dotyczące kwestii, że tylko jeden MT posiada stały zewnętrzny IP, a drugi jest połączony przez sieć komórkową. Czy da się tak zrobić aby ten z sieci komórkowej połączył się do tego ze stałym IP i dzięki tunelowi już odbywała się komunikacja w dwie strony? Bo chcę mieć dostęp do podsieci tego na sieci komórkowej…. Z góry dzięki za odpowiedź.

  7. XoXo

    No to przecież tak masz to opisane. router na łączu komórkowym będzie się łączył do tego na publicznym. Pierw zrób połączenie 1:1 między routerami a później rozszerze allowed address do zadanych podsieci i tyle. Pamiętaj, że inne pule adresów musisz mieć na obu mikrotikach

  8. Pawel

    No właśnie w opisie jest “podajemy publiczny adfes MT-2”, a na kolejnym zdjeciu jest podany publiczny IP MT-1. Dlatego się chciałem dopytać czy nie wystarczy aby tylko jeden był na public IP.

  9. Bartek

    Mam problem z ta konfiguracja
    z routera1 mogę pingować router2 oraz wszystko co jest w sieci2
    z routera 2 mogę pingować router 1 oraz wszystko co jest w sieci1
    z komputerów w sieci1 mogę pingować ip wg z routera1 oraz z routera2 ale nie mogę komputerów w sieci 2
    z komputerów w sieci2 mogę pingować ip wg z routera2 oraz z routera1 ale nie mogę komputerów w sieci1.

    Macie jakiś pomysł co może być powodem ?

    • Statyczne trasy na komputerach. Z wiersza poleceń route add IP/MASK BRAMA METRYKA np. route add 192.168.0.0 255.255.255.0 10.10.10.1 10

  10. Bartek

    serio trzeba mieć statyczne trasy na komputerze ? te z routera nie działają ?

    • Możesz też zrobić tarcert ip_docelowy(np. tracert 192.168.0.100) i zobacz, gdzie ruch umiera.

  11. Bartek

    Umiera na routerze. tylko do bramy mam trancert.

  12. mam to samo – z routera pinguje wszystko…
    z komputera nawet servera vpn nie pinguje… tylko brame wireguarda na lokalnym microtiku….
    routing statyczny na mikrotiku nie pomaga….

    chcialbym zeby caly ruch szedl przez interface wireguarda… albo caly ruch z ktoregos portu mikrotika…

  13. Bartek

    udało i się rozwiążą ten problem ?

  14. Dominik

    Wszystko dziala super na okreslone subnets. Jesli dodam routing 0.0.0.0/0 the wireguard tuner przestaje dzialac.

    Co mozna zrobic aby caly traffic szedl przez mikrotika.

  15. Seba

    Ja mam to samo…. allowed addr 0.0.0.0/0 ale do netu idzie przez lokalna brame…

  16. Wojtek

    Hej.
    Próbowałeś dopinać MT3 i więcej?
    Bo próbuję i niestety przy dołączaniu trzeciego pada całość. Może to chodzi o te allowed IP: 0.0.0.0/0?

  17. Krzysztof

    Cześć,

    Dodajcie Wireguard do bridga na obu mikrotikach, powinno ruszyć.

    Mam trzy lokalizacje zdalne (nazwijmy je A, B, C), które łączą się z mikrotikiem w lokalizacji X (serwer wireguard).
    Jedyny publiczny (niestety zmienny) adres IP mam dostępny na mikrotiku w lokalizacji X.
    Na wszystkich mikrotikach są ustawione trasy do podsieci na pozostałych mikrotikach. Np. dla lok. A (192.168.B.0/24, 192.168.C.0/24 oraz 192.168.X.0/24), dla B (192.168.A.0/24, 192.168.C.0/24 oraz 192.168.X.0/24), itd.
    Wszystko działa jak należy wszystkie mikrotiki widzą się nawzajem i wszystkie urządzenia w tych lokalizacjach mogą komunikować się ze sobą (warunek: na każdym mikrotiku interfejs wireguard jest dodany do bridga).
    Jedyny problem pojawia się kiedy serwer z losowych przyczyn się rozłączy, wtedy pozostałe lokalizacje nie potrafią się połączyć z serwerem ponownie. Rozwiązałem to poprzez dodanie skryptu uruchamianego co 5 minut na wszystkich lokalizacjach poza lokalizacją X, który wyłącza (disable) i włącza ponownie (enable), Peera wireguard do serwera X.

    Może powyższy opis pomoże kilku osobom.

    z pozdrowieniami,
    K.

  18. Miki

    Czy da się tak zrobić aby klienci łączący się z serwerem mieli dostęp do podsieci w domu? Mak wykupiony VPS na nim serwer Wireguarda. W domu jako, że nie mam stałego publicznego IP mam mikrotika i jest on Klientem Wireguarda.

    • Przy konfiguracji Peer dodaj podsieć jaką używasz w domu. Możesz dodać kilka adresów np. 192.168.0.0/24, 10.10.10.0/24, 10.0.0.0/24.

  19. Hej.
    zrobilem wszystko tak jak podales i oba mikrotiki sie widza i pinguja, ale niestety nie widza juz innych urzadzen za soba..
    moze to byc przyczyna ze oba sa w tej samej sieci lokalnej ??

    MT1 – 192.168.20.3 – 10.10.0.1 – 192.168.1.1
    MT2 – 192.168.20.2 – 10.10.0.2 – 192.168.100.1

    w podsieci MT1 jest drukarka z adresem 192.168.1.200 i podsiec MT2 juz jej nie widzi.. :/
    co robie nie tak ? :/
    sprawdzalem wszystko kilka razy i poleglem.. :/

    • Próbowałeś dodać statyczny routing? na MT1 dst.addr = 192.168.100.0/24 jako gw = 10.10.0.2, a dla MT2 dst.addr = 192.168.1.0/24 i gw = 10.10.0.1

  20. MC

    Mam dokładnie ten sam problem czy brak komunikacji.
    To juz chyba tradycja że nowsze wersje fw Mikrotika często wywracają wszystko do góry nogami.

    Ping z obu lokalizacji wzajemnie skutkuje:

    SEQ HOST SIZE TTL TIME STATUS
    0 126 (No error information)
    0 10.10.10.2 84 64 392us host unreachable
    1 126 (No error information)
    1 10.10.10.2 84 64 348us host unreachable

  21. Mateusz

    To i podpytam.
    Lokalizacja nr1
    Adresacja 192.168.1.0/24
    Lokalizacja nr2
    Adresacja 192.168.88.0/24

    Oba mikrotiki widzą się bez problemu. Mogę z podsieci 192.168.88.0/24 łączyć pulpitem zdlanym do servera na adresie 192.168.11.11. otwierać pliki udostępnione itd.
    ALE
    mam do rozwiązania taką zagadkę. W podsieci 192.168.88.0/24 mam podłączony skaner który ma statyczny adres 192.168.11.95, którego nie zmianiam, bo 4 dnio w tygodniu ten skaner znajduje się w lokalizacji nr1 i łaczy się do adresu 192.168.11.11 skanując tam pewne dokumenty do pewnego programu (skaner ma wbudowaną aplikację w którj konfiguruje się adres z którym ma się łaczyć i tam wrzucać zeskanowane dokumenty)
    Raz w tygodniu znajduje się w lokalizacji nr2 i mając ten sam statyczny adres chciałbym żeby mógl skanowac do adresu 192.168.11.11. Czyli skaner ma adres 192.168.11.95, a jest wpięty do mikrotika z podsiecią 192.168.88.0/24 i ma coś przesłać do 192.168.11.11. Jak to ogarnąć przez wireguarda?

  22. Jacek

    Mam podobny problem jak pozostali.
    Mikrotik MT1 jest widoczny dla MT2. Polecenia PING z obu routerów działają wzajemnie pomiędzy sobą. Jednak komputery w podsieci MT1 (192.168.55.0/24) nie “pingują” niczego w podsieci MT2 (192.168.55.0/24) . Dodać warto, że interfejsy bramy (gateway) MT1 ()10.10.0.1) i MT2 (10.10.0.2) odpowiadają na “pingi” z komputerów w danej podsieci.

  23. Jarek

    Czy ktoś rozwiązał ten problem gdzie jeden router ma publiczny adres a drugi nie?

  24. Robert

    Witam,posiadam dwa mt w różnych punktach z publicznymi adresami.
    Skonfigurowałem według opisów (adresy IP wg, klucze publiczne wprowadzone , port 13231 na 1 pozycji, routing statyczny) ale nie działa.
    Nie pinguje z poziomu routerów ani w jedną ani w drugą stronę zarówno do bramy podsieci jak i adresu wg.Przy konfiguracji L2TP ipsec dział bez problemu z tym że jeden jest serwerem drugi klientem. Proszę o pomoc

  25. Witam ,przydalo by sie dodac

    “/ip address
    add address=10.101.121.122/24 interface=wireguard-inet network=10.101.121.122
    Thus need an additional route to force users out WG.
    /ip route
    add distance=1 dst-address=0.0.0.0/0 gateway=wireguard-inet table=useWG
    /routing rule add src-address=LANsubnet action=lookup table=useWG
    /routing table add name=useWG fib”

    zapozyczone

  26. Dominik

    Witam, panowie poradźcie czy jeśli mam taką samą podsieć za MT1 (192.168.3.x) i za MT2 (192.168.3.x) to czy da się jakoś zaradzić, dodałem Wireguard, peers, adresację dla wireguard, połączenie między MT w różnych lokalizacjach jest bo pingują się wzajemnie ustawione adresy na wireguard, natomiast jak zrobić route aby dało się osiągnąć widoczność między takimi samymi podsieciami w dwóch różnych lokalizacjach? do tej pory korzystałem z PPTP + EoIP Tunnel i dało radę się to osiągnąć, czy jest szansa zrobić to za pomocą wireguard. z góry dziękuję za wszelaką pomoc. Pozdrawiam

  27. punisher999

    Da się zaradzić ale to trochę obejście problemu.
    Zależy ile takich połączeń chcesz bo jak dużo to bedzie żmudne. Robisz tak że na jednym ruterze robisz routing na podsieć np 192.168.4.x i pchasz to przez interfejs wireguarda. Natomiast na drugim ruterze ustawiasz regułę dla każdego docelowego hosta z forwardowaniem.
    add action=dst-nat chain=dstnat dst-address=192.168.4.x to-addresses=192.168.3.x
    i tak dla każdego hosta który ma mieć komunikację.
    natomiast w drugą stronę na drugim ruterze już np używasz 192.168.5.x i znowu pchasz na interfejs wireguarda i reguła na pierszwyszm
    add action=dst-nat chain=dstnat dst-address=192.168.5.x to-addresses=192.168.3.3
    Hosty po jednej stronie myślą że komunikują się z hostami w adresacji 192.168.4.x a po drugiej stronie że z hostami 192.168.5.x
    Ale szczerze mówiąc można się tak bawić dla pojedynczych maszyn. O wiele lepszym rozwiązaniem bedzie zmiana adresacji po jednej ze stron. Łatwo to zrobić ponieważ możesz nadać dwa adresy na jednym interfejsie i migrować powoli maszyny zostawiając tylko routing miedzy tymi sieciami.

  28. Paweł

    Cześć. Dzięki za świetny poradnik. Wszystko działa 😉
    Potrzebuję tylko porady jak przekierować port…. Bo mam tak, że jeden MT ma zewnętrzy IP i chcę np. łącząc się na ten IP z portem 6688 łączyło się z rejestratorem, który jest podpięty do drugiego MT. Niby proste przekierowanie ale sam nie wiem co robię źle, że nie działa. Bo z podsieci MT1 bez problemu łącze się z urządzeniami w podsieci za MT2…
    Pomożesz?

    • Zobacz najpierw czy z sieci wew. za MT1 rejestrator jest dostępny i pokaż jak wygląda konfiguracja.

  29. Paweł

    Hej. Jest dostępny. Będąc w sieci gdzie jest MT1 po wpisaniu IP rejestratora normalnie mam do niego dostęp, tak samo jak jestem w sieci MT2 to spokojnie wpisując adres IP np. drukarki, która jest w sieci MT1 to jestem w stanie się z nią połączyć. Więc w teorii ten tunel i routowanie chodzi w obie strony. Ale jak już ma coś przelecieć na zewnętrzne IP tam gdzie jest MT1 następnie wireguradem do MT2 i tam dolecieć do rejestratora to już lipa 🙁 Aaaa i co jakiś czas tunel przestaje działać, muszę zatrzymać wireguarda, uruchomić ponownie i śmiga.. Też nie wiem co może takie rzeczy powodować.

  30. Piotr

    Czy któryś z tych większych MT, które polecasz, uciągną ruch po VPN między dwoma lokalizacjami, dla ok.20 ludzi pracujących na aplikacji bazodanowej oraz z dostępem do NAS po sambie?

  31. Rad

    Jak skonfigurować np. MT-1 1 aby cały ruch do Internetu wychodził tunelem przez MT-2?
    Czy na MT-1 wystarczy wpisać ip route 0.0.0.0 przez interfejs wireguardg1 czy też trzeba coć więcej skonfigurować ?

  32. Jarek

    Cześć, sam szukam dokładnie na to samo pytanie odpowiedzi. Mam MT 1, gdzie jest serwer Wireguard i chciałbym, aby np. MT 2 wychodził na świat przez WG z MT 1. Mam nadzieję, że ktoś z czytających będzie potrafił rozwiązać ten problem

Dodaj komentarz

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