Jakiś czas temu pojawiła się potrzeba połączenia dwóch lokalizacji poprzez VPN site-to-site. Ponieważ użytkownikiem tego połączenia miała być osoba, która jest użytkownikiem właśnie (aczkolwiek muszę przyznać, że raczej zaawansowanym), szukałem rozwiązania "pudełkowego". Takiego, który zarówno w używaniu, jak i utrzymaniu będzie możliwie mało absorbujący. Bardzo ważnym parametrem była również cena. Nie mam sumienia polecać komuś rozwiązania klasy UTM, które może i potrafi więcej, ale to "więcej" jest kompletnie nieprzydatne w konkretnym przypadku.
Korzystając z otrzymanych sugestii zdecydowałem się na urządzenia RB750GL. Co do możliwości samego RouterOS nie miałem wątpliwości, pewną niewiadomą była nato miast wydajność tych urządzeń w IPSec. Umówmy się, że sprzętowo nie są to jakieś potworne bestie. Z drugiej strony parametry łącza, na którym VPN ma zostać zestawiony, powodowały, że już 2 Mbit/s byłoby akceptowalną przepustowością. Okazuje się, że urządzenia te w AES-256 osiągają do 13 Mbit/s. Po skonfigurowaniu reguł firewalla ta przepustowość spada mniej więcej do 11 Mbit/s, ale i tak jest to bardzo przyzwoite osiągnięcie.
Ogólnie moje wrażenia są bardzo pozytywne. Tak bardzo, że zastanawiam się poważnie nad zakupem RB751U-2HnD. Dla siebie.
EDIT: Dodatkowe informacje, skoro rozie o nie prosi.
Moją podstawową wątpliwością było to, czy procesor (400 MHz) bez sprzętowej akceleracji szyfrowania poradzi sobie z operacją szyfrowania/deszyfrowania na tyle sprawnie, by nie stało się to wąskim gardłem całego rozwiązania. W informacjach na stronach producenta podane są co prawda informacje na temat osiąganej przepustowości w zależności od konfiguracji (i typu ruchu), nie znalazłem jednak podobnych informacji dotyczących wydajności IPSec. Znalazłem co prawda w sieci trochę informacji na ten temat, najbardziej sensowną chyba tutaj: Mikrotik RouterBOARD 750 GL review, ale z oczywistych powodów chciałem sam to zweryfikować.
Pierwszy test na szybko był zrobiony bez żadnych reguł firewalla. Urządzenia spięte były ze sobą za pośrednictwem AP (wykorzystany w roli switcha). Do testu wykorzystałem narzędzie iperf w domyślnej konfiguracji. Sprowadzało się to w praktyce do puszczenia przez kanał IPSec strumienia TCP i pozwolenia, by TCP samo się optymalizowało (np. MSS wprost przekłada się na maksymalną wielkość pakietu). W tym przypadku udało się osiągnąć 13 Mbit/s. Nie sprawdzałem jakie parametry się "ustawiły", w szczególności nie sprawdzałem MSS oraz fragmentacji pakietów. Nie sprawdzałem, bo nie miałem takiej potrzeby. Osiągnięta wydajność była więcej niż wystarczająca.
Drugi test został wykonany w nieco innej konfiguracji. Urządzenia nadal były połączone za pomocą AP, przy czym jedno z nich w tej chwili wywędrowało na port WAN, drugie natomiast pozostało w LAN. AP w tej chwili dodatkowo robił NAT. Pojawienie się NAT w tym przypadku wymusiło zmianę konfiguracji IPSec i aktywację NAT-T. Dodatkowo na jednym urządzeniu skonfigurowane były reguły firewalla (filtrowanie oraz NAT). Konfiguracja tego urządzenia była praktycznie już zgodna z konfiguracją docelową. W tym przypadku osiągnięta przepustowość (ponownie - iperf) to nieco ponad 11 Mbit/s.
Szczerze mówiąc zastanawiam się, czy na spadek wydajności w drugim przypadku większego wpływu nie miało wykorzystanie NAT-T (dodatkowa enkapsulacja) niż aktywacja reguł firewalla. Nadmienię, że w obu testach aktywne było śledzenie połączeń (conntrack). W obu przypadkach na urządzeniach były aktywne tylko dwa porty, pozostałe były wyłączone. Na eth1 był "świat", na eth2 był lokalny LAN.
Być może udałoby się nawet trochę "podkręcić" wydajność dobierając parametry TCP (ponownie - głównie MSS) by uniknąć np. fragmentacji. Taki tuning jednak zostawię sobie na koniec, gdy urządzenia będą na swoich miejscach i korzystać będą z docelowych łączy.