Ubiquiti w roli routera BGP, tym razem trochę poważniej…
W ubiegłym roku pisałem o wykorzystaniu Ubiquiti ER-4 w roli routera BGP. Wciąż podpisuje się pod tym, że to ciekawa propozycja na pierwszy router BGP przy niewielkim ruchu. Na potwierdzenie tego, mam uruchomionych kilka takich routerów i działają naprawdę dobrze. ER-4 to jednak router z portami 1Gb. Jeżeli potrzeba nam portów 10Gb, to musimy sięgnąć po ER-8-XG. Na taki krok zdecydował się jeden z moich klientów.
ER-8-XG nie jest tanim routerem i wciąż mocno się zastanawiam czy nie wolałbym polecić Wam np. Supermicro z kartą 10Gb lub coś z Della, HP itp. Ubiquiti ma jednak pewną przewagę nad nimi, po wyjęciu z pudełka jest prawie gotowy do działania. Jedyne co musimy (powinniśmy) zrobić, to zainstalować omawianego już wcześniej demona BGP – Birda.
Specyfikacja routera ER-8-XG wygląda następująco:
- Procesor MIPS64 16 Core 1.8 GHz
- Pamięć RAM 16GB
- 8 portów SFP+ i 1 port RJ45
- Redundantne 2 zasilacze typu hotswap
- Wydajność wg producenta 18,000,000 pps / 80 Gbps
Wygląda to więc naprawdę obiecująco. Jak jest w praktyce? Sprzęt działa produkcyjnie od ok 2 miesięcy. Do tej pory nie zauważyliśmy żadnych problemów. Router obecnie obsługuje niecałe 1,5Gb ruchu, więc w zasadzie niewiele.
Obciążenie procesora widoczne poniżej. Dwa z szesnastu rdzeni mają zdecydowanie wyższe zużycie. Według obserwacji aplikacji htop spowodowane jest to pracą procesów systemowych (ubnt-util). Nie próbowałem jeszcze z tym walczyć. Mimo, że ruch powoli rośnie to cały czas zużycie tych dwóch rdzeni jest na podobnym poziomie. Dodam tylko, że mam wyłączony tzw. hardware offload dla vlanów. Włączenie tego powoduje faktycznie spadek zużycia CPU, jednak skutkiem ubocznym tego jest brak liczników na vlanach. Co znowu powoduje problem z monitorowaniem usług. Z tego co się dowiedziałem jest to problem architektury Cavium i na dzień dzisiejszy jest nie do rozwiązania.
Router uruchamia się ok 45-50 sekund z zimnego startu. Pełną tablicę BGP pobiera w ok 80 sekund. Wynik więc całkiem przyzwoity. Warto jeszcze wspomnieć, że najnowsza wersja EdgeOS oznaczona numerkiem 2.x pracuje pod kontrolą Debiana Stretch. W związku z tym zmieniły się repozytoria:
set system package repository stretch components 'main contrib non-free'
set system package repository stretch distribution stretch
set system package repository stretch url http://http.us.debian.org/debian
Przebieg instalacji Birda możecie zobaczyć na tym krótkim filmie:
Podczas przygotowywania tego routera do pracy z Birdem i nagrywania filmu nie wyłączałem żadnych usług z EdgeOS. W wersji 1.x zalecano usunąć plik /etc/init.d/ubnt-protocols. W wersji 2.x tego pliku już nie znajdziemy. Na forum Ubnt proponują wyłączyć następujące usługi, jednak nie zauważyłem by miało to wpływ na zużycie zasobów routera:
systemctl stop nsm
systemctl stop imi
systemctl stop ribd
W razie pytań dotyczących tego sprzętu zapraszam do kontaktu.