Przepuszczanie ruchu warstwy drugiej przez tunel vpn nie jest szeroko rozpowszechnione. Stosowane jest raczej klasyczne rozwiązanie gdzie na końcu każdego tunelu znajduje się autoratywny segment sieci. Również nie wszystkie technologie wykorzystywane przy budowaniu wirtualnych sieci prywatnych mają taką możliwość. Niemniej przy okazji tworzenia konfiguracji site to site warto wiedzieć o takiej możliwości. Dzięki jakim protokołom będziemy w stanie przenieść warstwę drugą przez tunel? Przede wszystkim protokoły z grupy PPP – L2TP, SSTP, PPPoE, PPTP (ze wsparciem protokołu BCP) ale także dzięki autorskiemu rozwiązaniu Mikrotik – EoIP. Jakie korzyści z tego będziemy mieli? Możemy stworzyć jeden segment sieci w wielu lokalizacjach, możemy stworzyć wiele segmentów przenosząc informacje o tagach a co niemniej ważne zyskujemy możliwość zarządzania siecią z jednego centralnego punktu. Przygotujemy dwie konfiguracje sieciowe. Jedna będzie realizowana poprzez symulowanie połączenia między urządzeniami posiadającymi publiczne adresy IP (WAN-WAN). Druga natomiast z założeniem, że tylko jedna strona będzie miała publiczny adres IP (WAN-VPN).
Topologia sieci
Zakładamy, że serwer DHCP działa w LAN tylko po stronie B natomiast po obu stronach dodany jest bridge z jednym portem ether2.
EoIP (Ethernet over IP)
Konfiguracja B
Zaczynamy od dodania interfejsu EoIP, który będzie jedną końcówką tunelu. W tym celu przechodzimy do zakładki “Interfaces – EoIP Tunnel” i dodajemy interfejs znakiem “+”.
Definiujemy nazwę interfejsu, adresy WAN routerów, identyfikator tunelu oraz hasło dla połączenia.
Teraz dodajemy tunel EoIP do bridge’a. W tym celu przechodzimy do zakładki “Bridge -> Ports” i dodajemy interfejs znakiem “+”.
Z listy dostępnych interfejsów wybieramy eoip-tunnel.
Konfiguracja A
Dokładnie te same kroki wykonujemy po stronie drugiego routera. Rzeczy które się zmieniają to:
- lokalny i zdalny adres dla tunelu EoIP = L-192.168.12.2, R-192.168.13.2
- brak serwera dhcp dla sieci lokalnej
- przypisanie statycznego adresu dla interfejsu EoIP = 10.0.13.2/24
SSTP+BCP (Secure Socket Tunneling Protocol + Bridging Control Protocol)
Konfiguracja B
Zaczynamy od skonfigurowania profilu, który będzie łączył interfejs bridge serwera z interfejsem sstp klienta w jedną sieć. W tym celu przechodzimy do zakładki “PPP -> Profiles” i dodajemy profil znakiem “+”.
Definiujemy profil o nazwie “L2”, przypisujemy opcję “Bridge”, wprowadzamy lokalny adres IP wskazujący na serwer SSTP i zaznaczamy opcję szyfrowania ruchu na zakładce “Protocols”.
Dodajemy poświadczenia logowania dla routera A. W tym celu na zakładce “PPP -> Secrets” naciskamy znak “+”.
Oprócz nazwy użytkownika, hasła i serwisu SSTP wybieramy profil stworzony w poprzednim kroku.
Uruchamiamy serwer SSTP. W tym celu przechodzimy na zakładkę “PPP -> Interfaces” i naciskamy kafelek “SSTP Server”.
Przechodząc do okna ustawień serwera wybieramy opcję “Enabled” i akceptujemy.
Konfiguracja A
Konfigurujemy profil, który będzie łączył interfejs bridge klienta z interfejsem sstp serwera. W tym celu przechodzimy do zakładki “PPP -> Profiles” i dodajemy profil znakiem “+”.
Definiujemy profil o nazwie “L2”, przypisujemy opcję “Bridge” i zaznaczamy opcję szyfrowania ruchu na zakładce “Protocols”.
Konfigurujemy klienta SSTP. W tym celu przechodzimy do zakładki “PPP -> Interface”, naciskamy znak “+” i wybieramy “SSTP Client”.
Definiujemy nazwę połączenia. Później na karcie “Dial Out” wprowadzamy adres IP serwera SSTP, dane logowania przygotowane dla routera A, profil stworzony w poprzednim kroku oraz zaznaczamy “Add default route”.
Podsumowanie
Jak widać na obrazku tunelowanie sprawdza się całkiem nieźle i wydaje się być ciekawym rozwiązaniem. Co prawda zastosowanie w kilku, kilkunastu lub kilkudziesięciu lokalizacjach może wraz ze wzrostem liczby połączeń być niewskazane. Jednak przy małym ruchu sieciowym gdzie komunikacja w warstwie drugiej jest niezbędna powinno spełnić swoje zadanie. Myślę, że jest to też opcja dla tych osób, które nie chcą inwestować w rozbudowę sieci a jej działanie opierają na urządzeniach o niewielkiej funkcjonalności – przynajmniej na jednym końcu tunelu. Czy widzicie sposób wykorzystania w swoim środowisku? Mam nadzieję, że tak, bo jest to warte rozważenia, nawet jako ostatnia deska ratunku.