Mikrotik na poważnie?

Kilka(naście) lat temu system Mikrotik RouterOS kojarzony był głównie z sieciami bezprzewodowymi. Jednak już wtedy za sprawą takich platform jak Alix, WRAP czy później RB450 oraz oczywiście x86, system Mikrotik okazał się ciekawą alternatywą dla linuxowych routerów. Z biegiem lat widać było, że Łotysze widzą w tym również przyszłość. Dowodem na to była bardzo popularna platforma RB1100. Kilka lat temu ofertę wydajnych routerów uzupełniła platforma CCR z wielordzeniowymi procesorami Tilera. O ile mi wiadomo ich popularność jest ogromna, co wcale nie dziwi biorąc pod uwagę stosunek ceny do możliwości.

Czy można jednak Mikrotika traktować poważnie? Postaram się udowodnić, że przy odpowiednim dobraniu sprzętu i rozwiązania do potrzeb, Mikrotik może z powodzeniem zastąpić linuxowe routery, w tym także popularnego wśród ISP Intruxa. Każdy operator dąży jednak do posiadania jak najlepszego sprzętu i najchętniej w swoich sieciach widziałby rozwiązania w pełni sprzętowe, najlepiej wiodących producentów. Zakładam, że ten wpis czytają głównie ISP, pewnie w większości są to operatorzy mali i średni. Często zakup sprzętu typu Cisco czy Juniper, to dla nich finansowy problem (choć to się już zmienia). Nie chciałbym zostać źle zrozumiany. Absolutnie nie neguję zakupu takich rozwiązań. Jeżeli kogoś stać, widzi wyraźne potrzeby, to czemu nie. W pełni popieram taki zakup. Umówmy się jednak, że operator mający 0,5Gb czy 1Gb ruchu, nie potrzebuje od razu strzelać do wróbla z armaty. Jeżeli do tej pory wystarczał mu linuxowy router, to z powodzeniem może go zastąpić teraz Mikrotikiem. Na sprzęt z górnej półki na pewno przyjdzie czas. Czego każdemu życzę 🙂

Zapytacie pewnie po co zamieniać linuxa na Mikrotika? Trochę historii. Każdy operator na pewno zaczynał od pierwszej natownicy zbudowanej na bazie komputera typu desktop i jakiejś dystrybucji linuxa. Uczyliśmy się wszyscy jak działa iptables i htb. Z czasem migrowaliśmy do wydajniejszych i bardziej profesjonalnych maszyn, pewnie nawet do platform serwerowych. Sieci się rozrastały i coraz bardziej potrzebowaliśmy automatyzować pewne rzeczy. Linux dawał nam elastyczność, tworzyliśmy skrypty dzięki którym ułatwialiśmy sobie życie. Jeszcze zanim pojawiły się systemy do zarządzania siecią, np LMS. Po latach nasze routery były naszpikowane licznymi skryptami i łatkami. Póki sami nad tym panowaliśmy, to jeszcze nie było tak źle. Gorzej jak osoba odpowiedzialna w naszej firmie za linuxy odeszła i zostawiała swoje „czary” w niezrozumiałej dla innych formie. Gdy zachodziła potrzeba zaktualizowania systemu, to brakowało odważnego do wykonania tej z pozoru prostej czynności. Dalszy rozwój sieci został spowolniony przez kilka linuxowych pudełek, których wszyscy bali się dotykać. Właśnie takim osobom proponuję przyjrzeć się Mikrotikowi. Podstawowa zaleta to przejrzysta konfiguracja, którą opanuje każdy administrator znający się na swoim zawodzie. Do tego dodamy dobrą dokumentację, oficjalny support oraz wsparcie społeczności. To wszystko przy śmiesznie niskich cenach za licencje czy gotowe rozwiązanie sprzętowe. Czego chcieć więcej?

Czy Mikrotik nadaje się do wszystkiego? Oczywiście, że nie. Jeżeli masz router BGP na linuxie, to go zostaw w spokoju. BGP na Mikrotiku choć działa, to osobiście uważam, że w tej roli linux + bird/quagga sprawdzą się po prostu lepiej. Natomiast jeżeli szukasz rozwiązania na router, NAT, zarządzanie pasmem czy koncentrator PPPoE, chcesz mieć zrozumiałą konfigurację, to Mikrotik jest naprawdę godny polecenia. Krążą niestety opinie o tym, że Mikrotik jest dla nowicjuszy, amatorów i nie ma nic wspólnego z profesjonalnym zastosowaniem. Postaram się dać kilka przykładów, które obalą ten krzywdzący stereotyp.

Mikrotika znam od ok 13 lat, zaczynałem od wersji 2.x. Po tym jak z sukcesem wyparł w naszej osiedlowej sieci system StarOS na wszystkich nadajnikach, z powodzeniem stosowałem go w innych zadaniach. Szybko ogarnąłem za jego pomocą routing, natowanie, firewall i podział pasma. Uczyłem się robić PPPoE czy stosować DHCP serwer i relay. W między czasie okazało się, że Mikrotik to również świetny koncentrator VPN. Znalazło się też zastosowanie dla EoIP, poznałem też czym jest i jakie korzyści daje MPLS/VPLS. Wszystko na tym samym systemie.

Lata mijały, coraz większe sieci miałem pod opieką i wciąż z powodzeniem wykorzystywałem Mikrotika. Pierwsze poważne wdrożenie miało miejsce w sieci która początkowo miała ok 100 abonentów, obecnie ma ich blisko 1000. Zaczynaliśmy od RB450. Obecnie sieć działa na CCR1036. Router pełni rolę NAT z Simple Queues, jest również podstawowym firewallem i DHCP serwerem. BGP z racji przekonań pozostało na linuxie. Do niedawna z Quaggą, a od kilku dni z Birdem. Czemu nagle Bird? Wyjaśnię to w kolejnym wpisie 🙂

Poniżej screeny z wspomnianego CCR1036.

W ostatnich latach trafiło się kilka podobnych zleceń na migrację z linuxów (w tym często Intruxa) do Mikrotika. Skala wszędzie podobna czyli kilkaset użytkowników. Przełomem był 2016 rok, postanowiliśmy w jednej z sieci trochę posprzątać. Chcieliśmy zastąpić linuxowe BRASy czymś, nad czym będziemy mieli większą kontrolę. Nie będę ukrywał, że pierwszym pomysłem była migracja do rozwiązania sprzętowego. Okazało się, że nie będzie to takie proste jak nam się wydawało. Mieliśmy wtedy ponad 5000 użytkowników. Prawie wszystkich natujemy 1:1. Do tego dochodzi specyficzny podział podsieci prywatnych, przydzielanie pasm do konkretnych adresów IP, ilość vlanów i kilka innych szczegółów, które jeszcze bardziej komplikowały dobranie rozwiązania sprzętowego. Dodatkowym utrudnieniem była konieczność zachowania integracji z naszym systemem do zarządzania siecią. W ten sposób odfiltrowaliśmy prawie wszystkie rozwiązania sprzętowe, które mieściły się w naszym budżecie. Na placu boju finalnie zostało tylko Cisco. Mieliśmy już routery ASR1001X w roli BGP, chcieliśmy spróbować wykorzystać je nieco szerzej. Niestety polegliśmy na integracji Cisco z naszym systemem. API które oferuje Cisco okazało się za mało wydajne. Dodatkowo nasza specyficzna konfiguracja sieci mocno utrudniała użycie rozwiązań Cisco. Mieliśmy dwa wyjścia. Zmieniamy konfigurację sieci lub szukamy czegoś nowego. Skoro i tak byliśmy w kropce, to dlaczego dla dobra nauki nie spróbować użyć Mikrotika? 5000 użytkowników, ponad 3Gb ruchu i Mikrotik? Szalone, ale okazało się realne 🙂 Pierwsze nieudany próby odbyły się z wykorzystaniem CCR1036. Niestety zabrakło wydajności dla queues, jak potem się okazało był to bug w tej architekturze sprzętowej. Finalnie wykorzystaliśmy te same maszyny x86 Supermicro na których mieliśmy linuxowe routery. Procesory E3-1230v3 z powodzeniem obrabiają dzisiaj ponad 4Gb ruchu. Posiadamy dwie serwerownie, zdublowaliśmy sprzęt i cieszymy się chyba po raz pierwszy działającą redundancją. Nasz programista wykorzystując API Mikrotika z powodzeniem zintegrował routery z naszym systemem. Wszystko działa stabilnie od 1,5 roku. Być może przy następnej modernizacji sieci wrócimy do Cisco. Rok po naszej nieudanej próbie, Cisco udostępniło mechanizm NETCONF/YANG, który rozwiązuje problem niewydajnego REST API z którym się borykaliśmy. Póki co Mikrotik ma się dobrze i świetnie się skaluje. Poniżej prezentuję kilka screenów z tego wdrożenia. Zwróćcie uwagę na ilości interfejsów, regułek czy queues na dole okienek 🙂

Czy Mikrotik ma wady? Oczywiście, jak każde inne rozwiązanie. Trzeba sobie zdawać sprawę z ograniczeń, głównie sprzętowych. CCR to fajna platforma, ale nie da się jej wykorzystać do wszystkiego. W moim odczuciu wciąż Mikrotik najlepiej się sprawdza na x86. Wadą Mikrotika w stosunku do routerów linuxowych jest też optymalizacja sprzętu. Z linuxa da się wyciągnąć na pewno więcej, na dużo elementów mamy większy wpływ. To istotne podczas dobierania sprzętu. Stabilność Mikrotika również zależy od użytej platformy sprzętowej i zastosowania. Jestem przeciwnikiem robienia jednego routera od wszystkiego. BGP zawsze oddzielam od reszty usług routera. W niektórych przypadkach zarządzanie pasmem też robię na osobnej maszynie. Dzięki temu nie mam problemów ani z wydajnością, ani ze stabilnością samego systemu. Trzeba też zwracać uwagę na aktualizację i czytać changelogi. Wprawdzie nie zdażyło mi się od lat by funkcje związane z routingiem miały po aktualizacji jakieś błędy, ale ostrożność mimo wszystko wskazana. No i Mikrotik czasami podchodzi po macoszemu do RFC 🙂

Czy można Mikrotikiem zastąpić linuxy? Mam nadzieję, że przekonałem Was do tego, że jest to możliwe. Przecież Mikrotik to też linux 🙂 Wprawdzie zamknięty, ze starszym kernelem, ale dający nam wciąż dużą elastyczność. Wszystko dostępne z przyjaznym interfejsem, sprawnie działającym CLI i wydajnym API. Z dobrą dokumentacją, wsparciem producenta i społeczności. Niestety popularność Mikrotika i jego potencjalna prostota obsługi spowodowała, że wielu ludzi nieposiadających wystarczającej wiedzy zabrała się za usługi których nie powinna konfigurować. Stąd później w sieci niepochlebne opinie o tym systemie. Jak widać trochę przesadzone 🙂