Mikrotik – tunel EoIP via PPTP/L2TP

Tunel EoIP (Ethernet over IP) przyda się, gdy masz w pierwszym biurze VLAN np. 200 i chcesz go mieć także w drugim biurze, a po między dwoma biurami nie masz własnego kabla, światłowodu, ani możliwości transmisji (przeciągniecia VLANu) przez obcą sieć. Przesłać możesz pakiety RAW (dostarczone na porcie fizycznym) lub konkretnych kilka VLANów.

W Biurze pierwszym stawiasz MikroTika na publicznym IP i będzie on pełnił funkcję serwera. Jeżeli ma on obsługiwać wiele połączeń VPN, to polecam np. CCR1009-7G-1C-1S+PC. Ten model posiada kilka rdzeni a ponad to jest fajny ze względu na posiadanie portu 10G. Jego cena w roku 2017 to ok. 1400 netto PLN.

W drugim biurze stawiasz MikroTika pełniącego rolę klienta. Będzie potrzebował także publicznego i stałego adresu IP, bo takie są wymagania EoIP – czyli że obie strony muszą się „widzieć” (a dokładniej to pingować w obie strony). Jeżeli w drugim biurze możesz mieć jedynie IPka lokalnego lub dynamiczny adres IP, to wtedy musisz przygotować wpierw tunel np. PPTP lub L2TP. PPTP oraz L2TP działają tak, że MikroTik kliencki „wdzwania się przez sieć IP” np. zza swojego NATa na serwerowego MikroTika za pomocą loginu i hasła i dzięki temu wirtualnemu połączeniu oba MikroTiki będą się już mogły widzieć bezpośrednio i na tym wirutalnym połączeniu będą mogły zestawić tunel EoIP. Po stronie klienta można postawić dowolnego MikroTika, z tym że wybór będzie zależeć od transferu, jaki będzie przesłać przez tunel. Ja dla przykładu użyłem RB2011UIAS-RM, który posiada jeden port SFP, 4 porty 1G RJ45 oraz porty 100Mbit RJ45, procesor z jednym rdzeniem 600MHz. Taki miałem pod ręką. To coś potrafiło przesłać przez tunel EoIP (bez PPTP) 230/300Mbit i na tym poziomie CPU nie dał rady więcej. Samą telewizję IPTV natomiast przesłałem za pomocą klienckiego MikroTika RB750GL – to jakiś staruszek z prockiem 400 MHz. Nowe odpowiedniki są w granicach 60 netto PLN. Ale na nim nie testowałem maksymalnych przepustowości – tylko IPTV puszczoną multicastem – działa bez zarzutów.

Jeżeli masz oba biura na publicznych IPkach, to przejdź dalej do punktu, gdzie się ustawia tunel EoIP.

 

PPTP używa protokołu GRE, co bywa dużym utrudnieniem za serwerami NAT oraz za routerami, które nie obsługują tego protokołu bądź go po prostu blokują.

L2TP ma taką przewagę, że używa zwykłego protokołu UDP, chociaż też z nieco małym utrudnieniem, bo połączenie odbywa się na niskich portach 500 (źródłowy 500 oraz docelowy 500). Niektóre firewalle mogą blokować takie połączenia, ale gdy nie blokują, to są one łatwiejsze dla serwerów NAT do obsługi, gdyż np. ostatnio zauważyłem że na Debianie 9 jest czasami problem z tunelami korzystającymi z GRE przez NAT, gdzie na identycznej konfiguracji na Debianie 8 nie było takiego problemu. Nie jestem jedynym, który to zauważył. Być może problem z implementacją z maskowaniem połączeń opierających się na GRE.

 

Ustawianie połączenia PPTP:

 

Po stronie serwerowej:

PPP->Interface->PPTP Server:

  • Enabled: zaznacz, by włączyć serwer PPTP
  • Authentication: włącz tylko mschap1 i mschap2

PPP->Secrets->Add New:

  • Name: np. biuro2 (nazwa użytkownika, który będzie się łączył po PPTP)
  • Password: np. haslo123 (hasło dla tego użytkownika)
  • Service: pptp (żeby użytkownik miał dostęp tylko do usługi pptp)
  • Profile: default (dla celów prezentacji. Jeżeli chcesz, możesz pobawić się innymi opcjami)
  • Local Address: np. 10.0.0.1 (numer IP lokalny dla połączenia PPTP – czyli dla serwera)
  • Remote Address: np. 10.0.0.2 (numer IP zdalny dla połączenia PPTP – czyli dla klienta)

PPP->Interface->Add New (PPTP Server Binding):

  • Name: np. pptp-biuro2 (nazwa połączenia PPTP)
  • User: np. biuro2 (nazwa użytkownika, który może łączyć się w ramach tego połączenia PPTP – czyli którego wyżej zdefiniowaliśmy)

 

Po stronie klienckiej:

PPP->Interface->Add (PPTP Client):

  • zakładka General:
    • Name: np. pptp-biuro1 (nazwa połączenia PPTP do biura pierwszego)
  • zakładka Dial Out:
    • Coonect-To: 123.123.123.123 (numer IP MikroTika serwerowego, do którego będziemy się łączyć, np. 123.123.123.123 – publiczny numer IP !!!)
    • User: np. biuro2 (zdefiniowane wcześniej po stronie serwerowej)
    • Password: np. haslo123 (czyli takie jak zdefiniowane po stronie serwerowej)
    • Profile: np. default (pewnie musi być takie sam jak po stronie serwerowej)
    • Allow: zaznacz tylko autoryzacje mschap1 i mschap2

W tym momencie MikroTik kliencki wdzwonił się do serwerowego, ustanowił wirutalne połącznie PPTP i na tym połączeniu oba MikroTiki mają numeru IP 10.0.0.1 (serwer) oraz 10.0.0.2 (klient) i powinny się móc pingować między sobą po tych IPkach.

 

Jeżeli zamiast PPTP chcesz skorzystać z L2TP, to konfiguracja wygląda analogicznie – za jakiś czas zamieszczę przykład.

 

Teraz faktyczne ustawienie tunelu EoIP.

Jeżeli oba biura mają IPki publiczne, to dla celów ustanowienia tunelu EoIP serwer ma 123.123.123.123 a klient 231.231.231.231 (przykładowe IPki do celów prezentacji). Jeżeli Biuro drugie jest za NATem, to dla EoIP używamy IPków, które są na tunelu PPTP, czyli serwer 10.0.0.1, a klient 10.0.0.2. Jeżeli tworzysz więcej tuneli PPTP, to pamiętaj, aby używać dla każdego z nich inne numeracje IP.

 

Po stronie serwerowej:

Interfaces->EoIP Tunnel->Add New:

  • Name: np. eoip-biuro2 (dowolna nazwa dla tego połączenia tunelowego EoIP)
  • MTU: ustaw wartość 1500 (to ponoć niezbędne, żeby zapobiec fragmentacji pakietów)
  • Remote Address: 231.231.231.231 (gdy oba są na publicznych IPkach) lub 10.0.0.2 (gdy połączenie tunelowane po PPTP) (numer IP MikroTika po drugiej stronie – w tym przypadku klienckiego)
  • Tunnel ID: wpisz np 10 (dowolna liczba, ale każdy tunel EoIP musi mieć inny numer, żeby uniknąć konfliktów pomiędzy nimi)

Po stronie klienckiej:

Interfaces->EoIP Tunnel->Add New:

  • Name: np. eoip-biuro1 (dowolna nazwa dla tego połączenia tunelowego EoIP)
  • MTU: ustaw wartość 1500 (j.w.)
  • Remote Address: 123.123.123.123 (gdy oba są na publicznych IPkach) lub 10.0.0.1 (gdy połączenie tunelowane po PPTP) (numer IP MikroTika po drugiej stronie – w tym przypadku serwerowego)
  • Tunnel ID: wpisz np 10 (j.w., liczba musi być zgodna z ustawieniem po stronie serwerowej)

 

W tym momencie tunel EoIP jest zestawiony pomiędzy dwoma biurami i jest gotowe do przesłania dowolnego strumienia ethernetowego. Może nim być np. cały port fizyczny ether2 po stronie serwerowej stunelowany do portu ether2 po stronie klienckiej. Ale można także przesłać konkretne VLANy zapięte na MikroTiku serwerowym i wypluć je po stronie klienckiej na osobnych portach. Możliwości wieloć

Utworzony tunel EoIP jest z poziomu MikroTika obsługiwany identycznie jak każdy inny interfejs – czy to ether1, czy VLAN, czy to dowolny inny wirualny interfejs.

 

Dla celów prezentacji wybieram taki scenariusz:

  • po stronie serwerowej do portu ether1 jest wpięty link, którym przychodzą VLANy tagowane (tylko tagowane):
    • 100 – Internet
    • 200 – lokalna sieć biurowa (chcemy ją stunelować do biura drugiego)
    • 4000 – VLAN telewizyjny z IPTV Jambox (testowane – działa)
  • po stronie klienckiej
    • ether1 – Internet (nietagowane ramki, czyli wpięty w sieć jak zwykły komputer)
    • ether2 – VLAN200 (nietagowany), gdzie będzie widoczna sieć biuro1 wewnątrz sieci biuro2
    • ether3 – VLAN4000 (nietagowany), gdzie można podpiąć dekoder STB i cieszyć się telewizją, która normalnie działa tylko tylko w biurze pierwszym

Zatem do dzieła:

Po stronie serwerowej:

  • Dodanie obsługi VLANu 200 na interfejsie ether1:
    • Interfaces->Interface->Add New (VLAN)
      • Name: ether1-v200
      • VLAN ID: 200
      • Interface: ether1
      • User Service Tag:  nie właczaj tego! To nie jest „Tag” rozumiany jako „tagowany”
    • To jest QinQ
  • Dodanie obsługi VLANu tagowanego 200 na tunelu EoIP:
    • Interfaces->Interface->Add New (VLAN)
      • Name: eoip-biuro2-v200
      • VLAN ID: 200
  • Stworzenie bridgea dla VLANu 200 – czyli żeby stworzyć „switcha” na bazie dodanych później interfejsów:
    • Bridge->Bridge->Add New:
      • Name: bridge-v200
  • Dodanie interfejsu z VLANem 200 z interfejsu ether1 do naszego „switcha” dla tego VLANu
    • Bridge->Ports->Add New:
      • Interface: ether1-v200
      • Bridge: bridge-v200
  • Dodanie interfejsu z VLANem 200 z tunelu EoIP do naszego „switcha” dla tego VLANu
    • Bridge->Ports->Add New:
      • Interface: eoip-biuro2
      • Bridge: bridge-v200

Powyższe punkty skierowały ruch z VLANu 200 dostarczonego na interfejsie ether2 do tunelu EoIP, gdzie będzie go można odebrać na MikroTiku klienckim.

Analogicznie możesz skonfigurować pozostałe VLANy do przesłania do EoIP.

Bez stworzenia bridga, pakiety z VLANu 200 na porcie ether1 nie będą widzieć się z pakietami VLANu 200 utworzonego na innym interfejsie. Do tego właśnie służy bridge – żeby powiedzieć MikroTikowi, które interfejsy fizyczne, bądź VLANowe mają być połączone w jeden bridge (lub po prostu „switch” – w jeden „VLAN”)

 

Po stronie klienckiej:

  • Dodanie obsługi VLANu tagowanego 200 na tunelu EoIP:
    • Interfaces->Interface->Add New (VLAN)
      • Name: eoip-biuro1-v200
      • VLAN ID: 200
  • Stworzenie bridgea dla VLANu 200 – czyli żeby stworzyć „switcha” na bazie dodanych później interfejsów:
    • Bridge->Bridge->Add New:
      • Name: bridge-v200
  • Dodanie interfejsu fizycznego do naszego „switcha” dla tego VLANu (ramki mają być wyplute nietagowane na porcie ether2, dlatego do tego bridga dodajemy cały interface ether2 i nie tworzymy interfejsu VLANowego o nazwie ether2-v200)
    • Bridge->Ports->Add New:
      • Interface: ether2
      • Bridge: bridge-v200
  • Dodanie interfejsu z VLANem 200 z tunelu EoIP do naszego „switcha” dla tego VLANu
    • Bridge->Ports->Add New:
      • Interface: eoip-biuro2
      • Bridge: bridge-v200

Powyższe punkty skierowały ruch z VLANu 200 dostarczonego tunelem EoIP do interfejsu fizycznego ether2, gdzie będzie go można widzieć za pomocą np. komputera – tenże komputer będzie widoczny od teraz w biurze pierwszym w tym samym VLANie.

Analogicznie możesz skonfigurować pozostałe VLANy do przesłania do EoIP.

 

I to koniec.

Wspomnę jeszcze, że na Mikrotikach można zrobić inne fajne cuda

Np. chcesz podłączyć klienta biznesowego tak, aby otrzymał od Ciebie pulę 8 numerów IP. Routing do nich ma iść dwoma fizycznymi drogami za pomocą np. OSPF dla celów redundancji. Jako że są to np. dwa VLANy idące do dwóch serwerów BGP, a światłowód jeden, to by zabezpieczyć się jeszcze przez awarią łącza fizycznego, to możesz podłączyć do MikroTika modem LTE i na nim ustawić tunel przez Internet PPTP+EoIP, przez który prześlesz jeszcze jeden VLAN, który będzie trzecią drogą dla OSPFa – także nawet gdy cały ruch przełączy się na LTE, to klient nadal będzie mógł korzystać z Twojej numeracji IP, która będzie tunelowana przez VPNa

Reklamy