Freebsd czy Linux? jako router BGP powyżej 100 Mb / s

10

Buduję serwer, który ma działać jako router graniczny BGP dla mojego łącza wysyłającego 100 Mb / s w ISP.

Potrzebuję tych funkcji:

1) Peering / routing BGP z dwoma stosami (co najmniej 100 Mb / s, może więcej). 2) Potencjalny pełny internetowy kanał BGP. 3) Niektóre podstawowe funkcje ACL.

Sprzęt to RAM L3426 / 8G. NIC będzie na pokładzie podwójnego portu Broadcom 5716.

Wcześniej intensywnie pracowałem z Linuksem i wydaje się, że jest on w stanie obsłużyć 100 Mb / s, ale słyszałem, że FreeBSD działa szybciej w sieci. Którego powinienem użyć? Czy mamy tam jakieś wyniki testów wydajności?

Twoje zdrowie.

petrus
źródło
1
jakiś powód, dla którego nie korzystasz z routera cisco bgp? Niestety większość isp, którzy pozwalają klientom uruchamiać bgp, określa ten wymóg dotyczący „zgodności”
The Unix Janitor
9
Em, po raz pierwszy usłyszałem o tym ograniczeniu i pracuję w sieci, która zaczęła się od Quagga / Debian na Dell PowerEdge, aż do zestawu Juniper i Cisco. Zajmuje się również Mnóstwo różnych dostawców tranzytu i giełd. Jeśli dostawca usług internetowych wprowadza takie ograniczenie, zastąp je kimś kompetentnym.
Niall Donegan
1
Dygresja, ponieważ jest to router Chciałbym bardzo proponujemy umieszczenie NIC Karta tam jako zapasową. Jeśli jeden z nich ulegnie awarii, wymieniasz mobo zamiast zamieniać szybką kartę PCIe.
Chris S
1
Marnujesz pieniądze. Tani box od Mikrotik (na przykład RougerBoard 1100AH) mógłby obsłużyć to za niższą cenę i jest oparty na systemie Linux.
TomTom,
Kilka osób zasugerowało użycie dedykowanej nici, a nie pokładowych Broadcom. Blog Serverfault zawiera kilka interesujących postów na ten temat.
ollybee,

Odpowiedzi:

11

Zrobiliśmy to dokładnie w przypadku infrastruktury krytycznej od wielu lat. Bierzemy trzy pełne kanały BGP w górę strumienia przez Quagga bgpdi używa aż 658 MB pamięci RAM do uruchomienia całego systemu. W tym celu Debian jest o wiele bardziej solidny niż inne systemy operacyjne z naszego doświadczenia (a także wymaga mniej aktualizacji zabezpieczeń przy minimalnym zużyciu instalacji, powodując znacznie mniej restartów niż dwa inne systemy operacyjne, które wypróbowaliśmy). Używamy Ksplice, więc uruchamiamy się tylko w przypadku krytycznych aktualizacji pakietów. Nie martw się wcale o kompatybilność z innymi dostawcami u twojego dostawcy usług internetowych ... RIPE the RIR use Quagga!

Zaskakujące jest to, że sprzęt nie jest aż tak ważny, chodzi tylko o karty sieciowe. Szybkie procesory po prostu oznaczają, że prefiksy ładują się szybciej, jeśli odświeżasz sesje (zakładając, że masz GB pamięci RAM i ładują się one do pamięci), więc czterordzeniowy procesor podstawowy jest znacznie zawyżony. Spędziliśmy dużo czasu próbując różnych kart sieciowych i według naszego doświadczenia najlepsze są karty Intel, które korzystają ze igbsterownika (za około 100 funtów / kartę sieciową używamy: 82576, ET Dual Port Server Adapter) ze1000na drugim miejscu. Istnieje kilka uwag, takich jak sposób wejścia i wyjścia karty NIC z płytą główną, ale w przypadku przepustowości poniżej 250 Mb / s prawdopodobnie nie zauważysz, jeśli korzystasz z tych kart. Odepchnęliśmy zaawansowany atak UDP DDoS za pomocą tej architektury (wykorzystano najmniejsze pakiety UDP, z którymi radzą sobie routery). Pamiętaj, że największym problemem może być przetworzenie największej liczby pakietów, a niekoniecznie przepływność mierzona w Mb / s. Za bardzo małe pieniądze wybraliśmy gigabitowy router wieloadresowy, który może obsługiwać pakiety o standardowym rozmiarze internetowym, tj. Normalne działanie, do 850 Mb / s!

Zacząłem od Cisco ( bgpdkonfiguracja jest prawie identyczna, więc jeśli masz doświadczenie z zestawem Cisco, jest to naprawdę szybkie przejście), ale ponieważ Linux jest bardzo plastyczny (np. Jest w stanie dodać kilka skryptów o niskim poziomie zasobów do twoich routerów aby pomóc w raportowaniu i administrowaniu) IMHO sprawia, że ​​jest niezwykle wydajny (i niedoceniany) dla tego typu konfiguracji. Nie możesz popełnić błędu, czytając niektóre archiwa listy mailingowej Nanog, jeśli nadal masz wątpliwości lub potrzebujesz dalszej pomocy.

To powinno sprawić, że zaczniesz dość szybko w Debian: Easy Quagga Tutorial

Jonathan Ross
źródło
Inną zaletą uruchamiania Linuksa jest to, że możesz łatwo kształtować ruch tcpo początkowej krzywej uczenia tc. Ostrzegam jednak, że uruchomienie IPtables na skrzynce przesyłania znacznie zmniejsza wydajność jądra podczas ataków z tego, co widzieliśmy.
Jonathan Ross
Chciałbym usłyszeć więcej na temat ładnej płyty głównej. Ponadto, ile pps jesteś w stanie obsłużyć?
Joris,
Przy naszym średnim rozmiarze pakietu (głównie HTTP, SMTP, DNS) powinniśmy zarządzać dupleksowaniem 850 Mb / s. DDoS to 120 000 pps z 64-bajtowych pakietów UDP. Wpływ był nieistotny na wydajność, ale nie pchaliśmy tak dużego ruchu, gdy trafił.
Jonathan Ross
Zdecydowaliśmy się na płytę główną z dwoma niepołączonymi szybkimi gniazdami PCIe, aby bufory nie wąskie gardła. Zapomniałem terminologii, ponieważ minęło trochę czasu, odkąd kupiliśmy sprzęt. Jeden dla wyjścia, jeden dla wejścia. Dość standardowe w tych dniach.
Jonathan Ross
5

Obie są zdolnymi platformami. Uruchom coś solidnego, takiego jak Debian lub Centos, na dobrym sprzęcie klasy serwerowej. Upewnij się, że określiłeś serwery z kartami sieciowymi Intel Server, ponieważ są one znacznie lepsze niż Broadcomm pod względem stabilności.

Jeśli chodzi o BSD vs. Linux, to jest łatwe. Wybierz, w którym jesteś najbardziej kompetentny.

Tom O'Connor
źródło
5
+1, FreeBSD zwykle może wypróbować Linuksa w testach porównawczych, ale różnica (jeśli istnieje) jest tak mała, że ​​powinieneś po prostu wybrać platformę, na której najbardziej Ci zależy.
Chris S,
3

Widziałem stare Celerony obsługujące 80-90 Mb / s normalnego ruchu w konfiguracji Debian / Quagga z 3 pełnymi kanałami, nawet nie pociąc się. Jednak kwalifikatorem jest „normalny” ruch, głównie HTTP / SMTP i DNS. Te same maszyny upadły płasko na twarz w sytuacjach DDOS, w których liczba pakietów na sekundę poszła do absurdalnej liczby, głównie pakietów UDP.

Zwykle nie jest to przepustowość, o którą zwykle musisz się martwić, ale PPS, którym będziesz się zajmować.

Niestety, nie mogę ci pomóc w Linuksie VS BSD w części dotyczącej wydajności routingu, ale nie powinno to mieć żadnego wpływu na obecny sprzęt na kilka połączeń 100 Mb.

Niall Donegan
źródło
2
„wydajność routingu” nie jest. Właściwie to „wydajność przekazywania”.
poige
Dobry glina, guv! :)
Niall Donegan
0

Quagga (Zebra) działa zarówno na systemie Linux, jak i BSD. Wydajność sieci Linuksa nie jest gorsza niż BSD. Tak więc możesz rozważyć dodatkowe kryteria wyboru platformy.

poige
źródło
0

Punkt danych:

Korzystam z pary serwerów Dell R200 na Fedorze, z których jeden widział szczyt 500 Mbps z NAT, iptables, LVS, quagga, bgpd przez łącze 1GigE. Przy prędkości 100 Mb / s każdy nowoczesny sprzęt powinien działać dobrze. Aby obsłużyć pełne tabele, powinieneś być w stanie sprawdzić odpowiednie wymagania dotyczące pamięci RAM od Cisco lub Juniper i przejść od tego momentu. 1 GB pamięci RAM powinno wystarczyć nawet bez filtrowania. Moje routery działają ze skonfigurowanymi 2 GB, ale wybieram tylko trasy domyślne.

dmourati
źródło