Koncentrator PPPOE

Point-to-Point Protocol over Ethernet jest szeroko wykorzystywany w sieciach dostępowych. Dostawcy Internetowi wdrażają  protokół w celu łatwiejszej administracji rozrastających się sieci LAN. Protokół ten stosuje enkapsulację ramek PPP w ramki Ethernet. Dodatkowo sesja użytkownika autoryzowana jest za pomocą loginu i hasła, a ruch sieciowy może być szyfrowany. Dostawcy lokalni, którzy korzystają z rozwiązań opensource niekiedy dochodzą do kresu możliwości posiadanego sprzętu i stoją przed dylematem czy inwestować w rozwiązania producentów sprzętu sieciowego tj. Redback, Cisco, Juniper. W artykule przedstawiono informację na temat możliwości prostej architektury sprzętowej w oparciu o opensource, która został przetestowana i działa w środowisku produkcyjnym. Na rysunku została zaprezentowana architektura rozwiązania HA w oparciu o podstawowe komponenty.

W serwerowni dostawcy znajduje się centralny koncentrator. Dodatkowo funkcję jakie przyjmuje na siebie serwer to firewall oraz QOS.

Aby lepiej zrozumieć możliwości takiego rozwiązania przedstawię specyfikację sprzętową:

  • Procesor Intel(R) Xeon(R) CPU E5310  @ 1.60GHz
  • Pamięć 4GB DDR2 FB
  • LSI RAID 2×512 Mirror
  • 2x Intel Corporation 82571EB
  • Grafika ATI Technologies Inc ES1000

Serwer w takiej konfiguracji jest wystarczający aby osiągnąć 3000-5000 jednoczesnych połączeń sesji pppoe, a ruch sieciowy do sieci WAN 600-700Mbit/s. W dalszej części przedstawię na co należy zwrócić od strony sprzętowej i programowej.

Sprzęt. Istotnym czynnikiem w działaniu jest procesor, przedstawiony powyżej zalicza się do grupy end-of-live. Obecnie na rynku występują dużo szybsze procesory serii Nahalem. Pamięć ma znaczenie ponieważ sesję, kolejki i inne komponenty sieciowe potrafią ją wysycić. Do 4000 sesji powinno wystarczyć 4GB. Karty sieciowe tylko PCI-E np. takie jak w specyfikacji. Do optymalizacji sprzętowej zaliczyłbym wyłączenie niepotrzebnych rejestrów procesora z drugiej strony uruchomienie rejestrów procesora funkcjonalności Intel’s I/OAT w biosie serwera.

Software. W tej sekcji pozostaje więcej do konfiguracji. Tak naprawdę poprawne skonfigurowanie oprogramowanie to klucz do wydajnego koncentratora. W projekcie wykorzystano następujące wersję oprogramowania:

Kernel: linux-image-2.6.37.6-netkod_01_i386.deb linux-headers-2.6.37.6-netkod_01_i386.deb

Iptables: iptables_1.4.10-1_i386.deb xtables-addons-1.35.tar.gz ipset4 ipt_netflow-1.7.1 ulogd-1.24

Wyżej wymieniona wersja kernela zawiera obecnie najnowsze sterowniki do kart sieciowych tg3-3.115, e1000e-1.2.7-k2, imq (numqueues). Stworzony firewall powinien posiadać funkcjonalność ipset aby nie tworzyć drzewa niepotrzebnych wpisów które zmniejszają wydajność. Najbardziej zachłaną funkcjonalnością na zasoby w przypadku wyżej przedstawionego serwera pppoe jest QOS. Optymalizacją shaping’u polega na stworzeniu filter hashing. Droga pakietu do kolejki w przypadku 4000 filtrów może zmaleć do ok. kilku dopasowań. W ten sposób zyskujemy kilkadziesiąt procent na wydajności. Logowanie ruchu powinno odbywać się za pomocą rozwiązania ulog. Jeśli potrzebujemy bardziej wyrafinowane narzędzie do logowania, które pozwoli w czasie rzeczywistym przeglądać informację o pakietach to polecam ipt_netflow, które od strony serwer niewiele obciąża. Po stronie aplikacji do obsługi na nfsen należy zadbać o odpowiednią przestrzeń dyskową 1G/200Mbit ruchu/24h.

Narzędzia. Monitorowanie systemu może odbywać się z poziomu konsoli do przydatnych narzędzi można zaliczyć nmon for Linux, ethstats, vmstat, iostat, sar. Do przeglądania historycznych danych polecam zabbix-1.8, nfsen + plugin.

 

Artykuł przedstawia ogólne zasady konfiguracyjne systemu dostępowego, który obsługuje protokół pppoe. Jak widać rozwiązania opensourcowe nie odbiegają od funkcjonalności rozwiązań sprzętowych, które wykorzystują architektura ASIC/NPU. Jeśli chodzi o wydajność to granica coraz bardziej zaciera się.

 

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>