modified on 20 lip 2010 at 12:35 ••• 30 467 views

Interfejs/L2TP

Z MikroTik Wiki

Spis treści

Informacje Ogólne

Wstęp

L2TP (Layer 2 Tunnel Protocol) obsługuje szyfrowane tunele przez protokół IP. Implementacja MikroTik RouterOS obsługuje zarówno klienta jak i serwer L2TP.

Aplikacje dla tuneli L2TP zawierają:

  • bezpieczne tunele router-to-router przez Internet
  • łączenie (mostkowanie) lokalnych Intranetów oraz sieci LAN
  • rozszerzanie połączeń użytkownika PPP o zdalne lokacje (na przykład aby oddzielić autentykację i punkty dostępowe dla ISP)
  • dostęp do Intranetu/sieci LAN firm dla zdalnych (mobilnych) klientów (pracowników)

Każde połączenie L2TP jest złożone z serwera i klienta. MikroTik RouterOS może działać jako serwer lub klient, lub dla pewnych konfiguracji może być serwerem dla pewnych połączeń, i klientem dla innych.

Przewodnik po Szybkiej Konfiguracji

Aby stworzyć tunel L2TP między dwoma routerami MikroTik o adresach 10.5.8.104 (serwer L2TP) i 10.1.0.172 (klient L2TP) wykonaj następujące czynności.

  • Konfiguracja serwera L2TP:

1. Dodaj użytkownika L2TP:

[admin@L2TP-Server] ppp secret> add name=user password=passwd \
\... local-address=10.0.0.1 remote-address=10.0.0.2

2. Uruchom serwer L2TP:

[admin@L2TP-Server] interface l2tp-server server> set enabled=yes
  • Konfiguracja klienta L2TP:

1. Dodaj klienta L2TP

[admin@L2TP-Client] interface l2tp-client> add user=user password=passwd \
\... connect-to=10.5.8.104

Specyfikacja

Wymagane pakiety: ppp

Wymagane licencje: level1 (ograniczenie do jednego tunelu), level3 (200 tuneli), level5 (bez ograniczeń)

Poziom Home menu: /interface l2tp-serwer, /interface l2tp-client

Użytkowanie sprzętu: Nieznaczne

Opis

L2TP jest protokołem bezpiecznego tunelu służącego do transportowania ruchu IP używając PPP. L2TP dokonuje enkapsulacji PPP w wirtualnych liniach, które biegną przez IP, Frame Relay i inne protokoły (które nie są obecnie obsługiwane przez MikroTik RouterOS). L2TP łączy PPP i MPPE (Microsoft Point to Point Encryption) aby tworzyć szyfrowane pliki. Celem tego protokołu jest zezwolenie punktom końcowym Warstwy 2 i PPP aby osadziły się na różnych urządzeniach połączonych przez sieci pakietowe. Dzięki L2TP użytkownik ma połączenie przez Layer 2 do koncentratora dostępu - LAC (np. bank modemów, ADSL DSLAM, etc.), a następnie koncentrator tuneluje pojedyncze ramki PPP do NAS (Network Access Server). Pozwala to aktualnie obsługiwanym pakietom PPP, aby były oddzielone od zakończenia obwodu Layer 2. Z perspektywy użytkownika nie ma funkcjonalnej różnicy między zakończeniem obwodu Layer 2 bezpośrednio w NAS i L2TP.

Można także używać L2TP po prostu jako zwykły protokół tunelowy z lub bez szyfrowania. Standard L2TP mówi, że najlepszym sposobem na ochronę danych jest używanie L2TP przez IPsec (Uwaga: jest to domyślnie ustawione w kliencie L2TP firmy Microsoft) jako że wszystkie pakiety kontrolne i danych L2TP dla konkretnego tunelu wyglądają jak jednorodne pakiety danych UDP/IP dla systemu IPsec.

Multilink PPP (MP) jest obsługiwany aby dostarczyć MRRU (możliwość przesyłania pakietów 1500B i większych) i mostkować połączenia PPP (używając Bridge Control Protocol (BCP) który pozwala na wysyłanie szeregu ramek Ethernetowych przez połączenia PPP). W ten sposób możliwe jest ustawianie mostka bez EoIP. Mostek powinien mieć zarówno administracyjnie ustawiony adres MAC jak i interfejs Etherneto-podobny, gdyż połączenia PPP nie mają adresów MAC.

L2TP pozwala na autentykację PPP i zapisywanie wszystkich połączeń L2TP. Pełna autentykacja i zapisywanie każdego połączenia może się odbywać przez klienta RADIUS lub lokalnie.

Obsługiwane jest szyfrowanie MPPE 40bit RC4 i MPPE 128bit RC4.

Ruch L2TP korzysta z protokołu UDP dla pakietów kontrolnych i z danymi. Port UDP 1701 jest używany tylko do ustanawiania połączenia, dalszy ruch jest obsługiwany przez jakikolwiek dostępny port UDP (którym może być lub nie 1701). Oznacza to, że L2TP może być używany przy większości firewalli i routerów (nawet z NATem).

Konfiguracja Klienta L2TP

Poziom Home menu: /interface l2tp-client

Opis własności

add-default-route (yes | no; domyślnie: no) - czy ma używać serwera którego klient jest połączony jako router domyślny (brama)

allow (multiple choice: mschap2, mschap1, chap, pap; domyślnie: mschap2, mschap1, chap, pap) - zezwala klientowi, aby ten mógł korzystać z autentykacji

connect-to (IP address) - adresy IP serwera L2TP z którymi chcesz się połączyć

max-mru (integer; domyślnie:1460) - Maximum Receive Unit. Optymalna wartość to MRU interfejsu tunelu pomniejszona o 40 (więc, dla połączenia ethernetowego 1500B ustaw MRU na 1460 aby uniknąć fragmentacji pakietów)

max-mtu (integer; domyślnie:1460) - Maximum Transmission Unit. Optymalna wartość to MTU interfejsu tunelu pomniejszona o 40 (więc, dla połączenia ethernetowego 1500B ustaw MRU na 1460 aby uniknąć fragmentacji pakietów)

mrru (integer: 512..65535; domyślnie: disabled) - maksymalna objętość pakietu, która może być odebrana w danym połączeniu. Jeśli pakiet jest większy niż MTU tunelu, zostanie on podzielony na części, pozwalając pełnym pakietom IP lub ethernetowym by były przesyłane przez tunel

  • disabled - wyłącz MRRU w tym połączeniu

name (name; domyślnie: l2tp-outN) - nazwa interfejsu

password (text; domyślnie: "") - hasło użytkownika potrzebne przy logowaniu do zdalnego serwera

profile (name; domyślnie:default) - profil potrzebny podczas połączenia ze zdalnym serwerem

user (text) - nazwa użytkownika potrzebna przy logowaniu do zdalnego serwera

Uwagi

Określenie MRRU oznacza włączenie MP (Multilink PPP) przez pojedyncze połączenie. Ten protokół jest używany aby dzielić duże pakiety na mniejsze. W systemie Windows można to wyłączyć w Networking tak, przycisk Settings, "Negotiate multi-link for single link connections". Ich MRRU jest na stałe ustawione na 1614. To ustawienie jest potrzebne aby pokonać błędy PathMTU. MP powinien być włączony na obu peerach.

Przykład

Aby ustawić klienta L2TP o nazwie test2 używając nazwę john z hasłem john aby połączyć się z serwerem 10.1.1.12 i użyć go jako brama domyślna:

[admin@MikroTik] interface l2tp-client> add name=test2 connect-to=10.1.1.12 \
\... user=john add-default-route=yes password=john
[admin@MikroTik] interface l2tp-client> print
Flags: X - disabled, R - running
  0 X  name="test2" max-mtu=1460 max-mru=1460 mrru=disabled connect-to=10.1.1.12
       user="john" password="john" profile=default add-default-route=yes
       allow=pap,chap,mschap1,mschap2
[admin@MikroTik] interface l2tp-client> enable 0

Monitoring Klienta L2TP

Komenda: /interface l2tp-client monitor

Opis Własności

encoding (text) - szyfrowanie i kodowanie (jeśli symetryczne, to oddzielone znakiem "/") używane w tym połączeniu

idle-time (tylko-do-odczytu: time) - czas od momentu gdy ostatni pakiet został przesłany przez to połączenie

mru (tylko-do-odczytu: integer) - efektywny MRU tego połączenia

mtu (tylko-do-odczytu: integer) - efektywny MTU tego połączenia

status (text) - status klienta

  • dialing - próba uzyskania połączenia
  • verifying password... - połączenie zostało ustanowione, weryfikacja hasła w toku
  • connected - połączono
  • terminated - interfejs nie jest włączony, lub druga strona nie ustanowi połączenia

uptime (time) - wyświetlenie czasu połączenia w dniach, godzinach, minutach i sekundach

Przykład

Przykład ustanowionego połączenia:

[admin@MikroTik] interface l2tp-client> monitor test2
     status: "connected"
     uptime: 6h44m9s
  idle-time: 6h44m9s
   encoding: "MPPE128 stateless"
        mtu: 1460
        mru: 1460
[admin@MikroTik] interface l2tp-client>

Konfiguracja Serwera L2TP

Poziom Home menu: /interface l2tp-server server

Opis

Serwer L2TP tworzy dynamiczny interfejs dla każdego połączonego klienta L2TP. Liczba połączonych klientów zależy od posiadanej licencji: Level1 pozwala na połączenie z jednym klientem, Level3 lub Level4 do 200 klientów, a Level5 lub Level6 nie mają ograniczeń.

Aby stworzyć użytkowników L2TP musisz zapoznać się z manualami PPP secret i PPP Profile. Można także użyć router MikroTik jako klienta RADIUS aby zarejestrować użytkowników L2TP. W manualu jest napisane jak to zrobić.

Opis Własności

authentication (multiple choice: pap | chap | mschap1 | mschap2; domyślnie: mschap2) - algorytm autentykacji

default-profile - domyślny profil

enabled (yes | no; domyślnie: no) - definiuje czy serwer L2TP jest włączony, czy nie

keepalive-timeout (time; domyślnie: 30) - definiuje okres czasu (w sekundach) po którym router zaczyna wysyłać pakiety keepalive co sekundę. Jeśli niema ruchu i nie ma odpowiedzi na keepalive przez ten okres czasu (np. 2*keepalive-timeout), nieodpowiadający klient jest uważany za odłączony

max-mru (integer; domyślnie:1460) - Maximum Receive Unit. Optymalna wartość to MRU interfejsu tunelu pomniejszona o 40 (więc, dla połączenia ethernetowego 1500B ustaw MRU na 1460 aby uniknąć fragmentacji pakietów)

max-mtu (integer; domyślnie:1460) - Maximum Transmission Unit. Optymalna wartość to MTU interfejsu tunelu pomniejszona o 40 (więc, dla połączenia ethernetowego 1500B ustaw MRU na 1460 aby uniknąć fragmentacji pakietów)

mrru (integer: 512..65535; domyślnie: disabled) - maksymalna objętość pakietu, która może być odebrana w danym połączeniu. Jeśli pakiet jest większy niż MTU tunelu, zostanie on podzielony na części, pozwalając pełnym pakietom IP lub ethernetowym by były przesyłane przez tunel

  • disabled - wyłącz MRRU w tym połączeniu

Uwagi

Określenie MRRU oznacza włączenie MP (Multilink PPP) przez pojedyncze połączenie. Ten protokół jest używany aby dzielić duże pakiety na mniejsze. W systemie Windows można to wyłączyć w Networking tak, przycisk Settings, "Negotiate multi-link for single link connections". Ich MRRU jest na stałe ustawione na 1614. To ustawienie jest potrzebne aby pokonać błędy PathMTU. MP powinien być włączony na obu peerach.

Przykład

Aby uruchomić serwer L2TP:

[admin@MikroTik] interface l2tp-server server> set enabled=yes
[admin@MikroTik] interface l2tp-server server> print
            enabled: yes
            max-mtu: 1460
            max-mru: 1460
               mrru: disabled
     authentication: mschap2,mschap1
  keepalive-timeout: 30
    default-profile: default
[admin@MikroTik] interface l2tp-server server>

Interfejsy Tunelu L2TP

Poziom Home menu: /interface l2tp-server

Opis

W konfiguracji serwera PPTP są dwa typy interfejsów (tuneli) - statyczni użytkownicy i dynamiczne połączenia. Interfejs powstaje dla każdego tunelu ustanowionego dla danego serwera. Statyczne interfejsy są dodane administracyjnie jeśli istnieje potrzeba odniesienia do konkretnej nazwy interfejsu (w ustawieniach firewalla, lub w innym miejscu) stworzonej dla konkretnego użytkownika. Dynamiczne interfejsy są dodawane do tej listy automatycznie gdy tylko podłączy się użytkownik i jego login nie pasuje do żadnego istniejącego wpisu (lub w przypadku gdy dany login jest w użyciu, a nie mogą istnieć dwa oddzielne tunele z tą samą nazwą). Dynamiczne interfejsy pojawiają się gdy użytkownik się łączy i znika gdy tylko się rozłączy, więc niemożliwym jest się odwołać do tunelu stworzonego w tym celu w konfiguracji routera (na przykład w firewallu), więc jeśli potrzebujesz stałe ustawienia dla tego użytkownika, stwórz dla niego stały wpis. W przeciwnym razie bezpiecznie jest użyć dynamiczną konfigurację. Uwaga: w obu przypadkach użytkownicy PPP muszą być skonfigurowani poprawnie - statyczne wpisy nie zmieniają konfiguracji PPP.

Opis Własności

client-address (tylko-do-odczytu: IP address) - pokazuje adres IP połączonego klienta


encoding (tylko-do-odczytu: text) - szyfrowanie i kodowanie (jeśli jest asymetryczne, to oddzielone jest znakiem "/") jest użyte w tym połączeniu

mru (tylko-do-odczytu: integer) - MRU klienta

mtu (tylko-do-odczytu: integer) - MTU klienta

name (name) - nazwa interfejsu

uptime (tylko-do-odczytu: time) - pokazuje czas połączenia

user (name) - nazwa użytkownika, który jest skonfigurowany statycznie lub dodany dynamicznie

Przykład

Aby dodać wpis statyczny dla użytkownika ex1:

[admin@MikroTik] interface l2tp-server> add user=ex1
[admin@MikroTik] interface l2tp-server> print
Flags: X - disabled, D - dynamic, R - running
  #     NAME                 USER        MTU   CLIENT-ADDRESS  UPTIME   ENC...
  0  DR <l2tp-ex>            ex          1460  10.0.0.202      6m32s    none
  1     l2tp-in1             ex1
[admin@MikroTik] interface l2tp-server>

W tym przykładzie połączony już użytkownik ex jest pokazany mimo użytkownika, którego właśnie dodaliśmy., Teraz można się odnosić do interfejsu l2tp-in1 skądkolwiek z konfiguracji RouterOS jak w normalnym interfejsie.

Przykłady Aplikacji L2TP

Przykład Bezpiecznego Tunelu Router-to-Router

Pokazany przykład pokazuje połączenie dwóch Intranetów używając szyfrowany tunel L2TP przez Internet.

Grafika:l2tp.jpg

W tym przykładzie są dwa routery:

• [HomeOffice]
Interface LocalHomeOffice 10.150.2.254/24
Interface ToInternet 192.168.80.1/24
• [RemoteOffice]
Interface ToInternet 192.168.81.1/24
Interface LocalRemoteOffice 10.150.1.254/24

Każdy router jest podłączony do innego dostawcy usług internetowych. Jeden router może uzyskać dostęp do drugiego przez Internet.

Na serwerze L2TP użytkownik musi się podawać za klienta:

[admin@HomeOffice] ppp secret> add name=ex service=l2tp password=lkjrht
local-address=10.0.103.1 remote-address=10.0.103.2
[admin@HomeOffice] ppp secret> print detail
Flags: X - disabled
  0   name="ex" service=l2tp caller-id="" password="lkjrht" profile=default
      local-address=10.0.103.1 remote-address=10.0.103.2 routes==""
[admin@HomeOffice] ppp secret>

Następnie użytkownik powinien być dodany do listy serwerów L2TP:

[admin@HomeOffice] interface l2tp-server> add user=ex
[admin@HomeOffice] interface l2tp-server> print
Flags: X - disabled, D - dynamic, R - running
  #     NAME                 USER         MTU   CLIENT-ADDRESS  UPTIME  ENC...
  0     l2tp-in1             ex
[admin@HomeOffice] interface l2tp-server>

A na końcu serwer musi zostać uruchomiony:

[admin@HomeOffice] interface l2tp-server server> set enabled=yes
[admin@HomeOffice] interface l2tp-server server> print
            enabled: yes
            max-mtu: 1460
            max-mru: 1460
               mrru: disabled
     authentication: mschap2
  keepalive-timeout: 30
    default-profile: default
[admin@HomeOffice] interface l2tp-server server>

Dodaj klienta L2TP do routera RemoteOffice:

[admin@RemoteOffice] interface l2tp-client> add connect-to=192.168.80.1 user=ex \
\... password=lkjrht disabled=no
[admin@RemoteOffice] interface l2tp-client> print
Flags: X - disabled, R - running
  0  R name="l2tp-out1" mtu=1460 mru=1460 mrru=disabled connect-to=192.168.80.1
       user="ex" password="lkjrht" profile=default add-default-route=no
       allow=pap,chap,mschap1,mschap2
[admin@RemoteOffice] interface l2tp-client>

Tak więc stworzyliśmy tunel L2TP między routerami. Tunel ten jest jak połącznie ethernetowe point-to-point pomiędzy routerami o adresach 10.0.103.1. i 10.0.103.2. Pozwala to na "bezpośrednią" komunikację między routerami przez zupełnie inne sieci.

Grafika:l2tp setup.jpg

Aby routować lokalne sieci intranetowe przez tunel L2TP musisz dodać te routery:

[admin@HomeOffice] > ip route add dst-address 10.150.1.0/24 gateway 10.0.103.2
[admin@RemoteOffice] > ip route add dst-address 10.150.2.0/24 gateway 10.0.103.1

Na serwerze L2TP można tego również dokonać używając parametrów routes w konfiguracji użytkownika:

[admin@HomeOffice] ppp secret> print detail
Flags: X - disabled
  0   name="ex" service=l2tp caller-id="" password="lkjrht" profile=default
      local-address=10.0.103.1 remote-address=10.0.103.2 routes==""

[admin@HomeOffice] ppp secret> set 0 routes="10.150.1.0/24 10.0.103.2 1"
[admin@HomeOffice] ppp secret> print detail
Flags: X - disabled
  0   name="ex" service=l2tp caller-id="" password="lkjrht" profile=default
      local-address=10.0.103.1 remote-address=10.0.103.2
      routes="10.150.1.0/24 10.0.103.2 1"

[admin@HomeOffice] ppp secret>

Sprawdź połączenie w tunelu L2TP:

[admin@RemoteOffice]> /ping 10.0.103.1
10.0.103.1 pong: ttl=255 time=3 ms
10.0.103.1 pong: ttl=255 time=3 ms
10.0.103.1 pong: ttl=255 time=3 ms
ping interrupted
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 3/3.0/3 ms

Sprawdź połączenie biegnące przez tunel L2TP do interfejsu LocalHomeOffice:

[admin@RemoteOffice]> /ping 10.150.2.254
10.150.2.254 pong: ttl=255 time=3 ms
10.150.2.254 pong: ttl=255 time=3 ms
10.150.2.254 pong: ttl=255 time=3 ms
ping interrupted
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 3/3.0/3 ms

Aby zmostkować sieć LAN przez ten tunel sprawdź przykład w dziale "EoIP" w manualu. Aby uzyskać maksymalną prędkość ruchu przez ten tunel, sprawdź dział "Kolejki".

Łączenie Zdalnego Klienta przez Tunel L2TP

Następujący przykład pokazuje jak połączyć komputer ze zdalną siecią biurową przez szyfrowany tunel L2TP, nadając temu komputerowi adres IP z tej samej sieci jak ma w biurze (bez mostkowania przez tunel EoIP).

Sprawdź w manualu jak skonfigurować klienta L2TP oprogramowaniem, jakie posiadasz.

Grafika:remote client l2tp.jpg

Router w tym przykładzie:

• [RemoteOffice]
Interface ToInternet 192.168.81.1/24
Interface Office 10.150.1.254/24

Komputer klienta może uzyskać dostęp do routera przez Internet.

Na serwerze L2TP użytkownik musi być ustawiony jako klient:

[admin@RemoteOffice] ppp secret> add name=ex service=l2tp password=lkjrht
local-address=10.150.1.254 remote-address=10.150.1.2
[admin@RemoteOffice] ppp secret> print detail
Flags: X - disabled
  0   name="ex" service=l2tp caller-id="" password="lkjrht" profile=default
      local-address=10.150.1.254 remote-address=10.150.1.2 routes==""

[admin@RemoteOffice] ppp secret>

Następnie użytkownik powinien być dodany do listy serwerów L2TP:

[admin@RemoteOffice] interface l2tp-server> add name=FromLaptop user=ex
[admin@RemoteOffice] interface l2tp-server> print
Flags: X - disabled, D - dynamic, R - running
  #     NAME                 USER         MTU   CLIENT-ADDRESS  UPTIME  ENC...
  0     FromLaptop           ex
[admin@RemoteOffice] interface l2tp-server>

A następnie trzeba uruchomić serwer:

[admin@RemoteOffice] interface l2tp-server server> set enabled=yes
[admin@RemoteOffice] interface l2tp-server server> print
            enabled: yes
            max-mtu: 1460
            max-mru: 1460
               mrru: disabled
     authentication: mschap2
  keepalive-timeout: 30
    default-profile: default
[admin@RemoteOffice] interface l2tp-server server>

Na końcu trzeba włączyć proxy APR w interfejsie "Office":

[admin@RemoteOffice] interface ethernet> set Office arp=proxy-arp
[admin@RemoteOffice] interface ethernet> print
Flags: X - disabled, R - running
  #    NAME                 MTU   MAC-ADDRESS       ARP
  0  R ToInternet           1500  00:30:4F:0B:7B:C1 enabled
  1  R Office               1500  00:30:4F:06:62:12 proxy-arp
[admin@RemoteOffice] interface ethernet>

Ustawienia L2TP dla systemu Windows

Microsoft wprowadził obsługę klienta L2TP w Windows XP, 2000, NT4, ME i 98. Windows 2000 i XP mają wbudowaną obsługę L2TP, natomiast 98, NT i ME wymagają pobrania aktualizacji (L2TP/IPsec VPN Client).

Rozwiązywanie problemów

  • Używam firewalla i nie mogę ustanowić połączenia L2TP
    Upewnij się, czy połączenia UDP mogę przechodzić w obie strony.
  • Mój klient Windows L2TP/IPsec nie chce się połączyć z serwerem L2TP i wyświetla error 789 lub 781
    Wiadomości o błędach nr 789 i 781 pojawiają się gdy IPsec nie jest skonfigurowany poprawnie na obu zakończeniach. Sprawdź dokumentację IPsec w Kliencie Microsoft L2TP/IPsec VPN i w MikroTik RouterOS. Jeśli nie chcesz używać IPsec, możesz go łatwo wyłączyć od strony klienta. Uwaga: jeśli używasz Windows 2000, musisz edytować plik rejetru używając regedit32.exe lub regedit.exe. Dodaj następującą wartość do HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Rasman\Parameters:
Value Name: ProhibitIpSec
Data Type: REG_DWORD
Value: 1

Aby zmiany zostały wprowadzone, musisz zrestartować komputer.

Aby uzyskać więcej informacji sprawdź:

  • Konfigurowanie Klientów Cisco IOS i Windows 2000 dla LPT używając Microsoft IAS
  • Sposób na wyłączanie IPSEC korzystając z L2TP
  • Jak skonfigurować połączenie L2TP/IPsec korzystając z autentykacji kluczem dzielonym