6 Sledování a optimalizace výkonnostních charakteristik
6.1 Modulární platforma pro vysokorychlostní monitorování sítě s hardwarovou podporou
Vytvořili jsme modulární programovatelnou platformu pro zpracování paketů rychlostí 10 Gb/s. Platforma může pakety analyzovat za účelem monitorování, ale také generovat nebo modifikovat např. při zpracování video přenosů.
Její podstatnou vlastností ve srovnání s jinými řešeními hardwarově akcelerovaného zpracování paketů je možnost změny firmware bez nutnosti překladu, pouhou změnou uspořádání již hotových rekonfigurovatelných modulů ve slotech. Toto uspořádání může snadno měnit koncový uživatel, a to i za chodu zařízení, a vytvořit tak mnoho různých podob firmware bez jakéhokoliv vývoje v jazyce FPGA a vývojových nástrojů.
Platforma je zabudována do skříně velikosti 1U a sestává z běžně dostupné desky s obvodem FPGA a desky s optickým transceiverem. Používáme hotovou desku pro transceiver XFP a naši vlastní desku pro transceiver Xenpak.
Firmware je navržen tak, aby byl schopen zpracovat pakety plnou rychlostí 10 Gb/s s nulovou ztrátovostí za všech okolností, t.j. i při trvalém příjmu nejkratších paketů o délce 64 bajtů. Všechny vytvářené moduly jsou testovány na splnění této podmínky hardwarovým generátorem paketů a teprve následně dány k dispozici uživatelům.
Blokové schéma firmware je znázorněno na obrázku. Obsahuje implementaci rozhraní XAUI firmy Xilinx, naši vlastní implementaci MAC vrstvy a rekonfigurovatelné moduly pro zpracování paketů. Komunikace s platformou probíhá prostřednictvím zabudovaného operačního systému Linux s jádrem řady 2.6, který běží na procesoru PowerPC uvnitř FPGA, tedy bez externího PC.
Zpracování paketů může probíhat v jednom ze dvou režimů:
- XGMII - pakety procházejí moduly podle standardu XGMII, tedy bez MAC vrstvy,
- MAC - pakety procházejí moduly po zpracování vstupní MAC vrstvou a vycházejí z platformy po zpracování výstupní MAC vrstvou.
Komunikace se zabudovaným Linuxem je možná přes rozhraní RS232 nebo Fast Ethernet protokolem ssh. Druhé rozhraní RS232 je k dispozici pro připojení zdroje přesných časových značek, například GPS přijímače. Obsluha tohoto zdroje času ale zatím není implementována a časové značky jsou paketům přidělovány z interního volně běžícího oscilátoru. Platforma dále obsahuje slot pro paměť typu CompactFlash, na kterou uživatel uloží výměnné moduly firmware a jejich konfiguraci v textovém souboru.
6.1.1 MAC vrstva
MAC vrstva kóduje/dekóduje XGMII komunikaci, odstraňuje/přidává preambuli, kontroluje/vypočítává CRC, zarovnává příchozí data, přiřazuje příchozím paketům časové značky a ukládá paketové statistiky. Statistiky MAC vrstvy obsahují počítadla pro:
- krátké pakety,
- jumbo pakety,
- super jumbo pakety,
- chybná CRC,
- chyby ohlášené fyzickou vrstvou,
- 91 čítačů pro pakety různých délek v rozsahu 64-1518 B po 16 bajtech.
Limity pro určení zda bude paket považován za krátký, jumbo nebo super jumbo je možné nastavit. Pro všechny statistiky jsou k dispozici dvě banky a zvlášť pro vstupní a výstupní část MAC. Jedna banka je vždy aktivní, zatímco druhou můžeme vyčítat. Banky je možné atomicky přepínat.
Hardwarové moduly tvoří hlavní výkonnou část platformy. Každý modul zastává specifickou funkci a může být vložen do kteréhokoliv slotu. Podle zvoleného uspořádání modulů ve slotech lze dosáhnout různých způsobů zpracování paketů. Vytvořené moduly jsou popsány v následujících odstavcích.
6.1.2 Modul BERT
Modul BERT (Bit Error Rate Tester) vysílá rámce s definovanou délkou a obsahem plnou rychlostí 10 Gb/s a současně kontroluje příchozí rámce. Z počtu rozdílných bitů je pak vypočítána bitová chybovost. Rámce mohou obsahovat nepovinnou hlavičku, obsah paketu je možné vybrat z předem definovaných vzorků nebo definovat vlastní. Možné vzorky jsou následující:
- USER - uživatelem definovaný,
- ALL ONES - samé jedničky,
- ALL ZEROS - samé nuly,
- 1/2X - 1010101010...,
- 1/8X - 4 jedničky, 4 nuly,
- 1/16X - 8 jedniček, 8 nul,
- COUNTER - 32b číslo odesílaného vzorku.
6.1.3 Modul PKT-LOSS
Modul PKT-LOSS emuluje zadanou ztrátovost paketů. Tato funkce je užitečná pro testování vlastností sítě a přenosových protokolů. Počet zahozených paketů je možné nastavit následujícími parametry:
- fixní nebo pseudonáhodný počet přenesených paketů v jedné periodě,
- fixní nebo pseudonáhodný počet zahozených paketů v jedné periodě.
Pseudonáhodný počet přenesených nebo zahozených paketů je generován s rovnoměrným rozložením v zadaném rozsahu. To neodpovídá obvyklému rozložení skutečné ztrátovosti, která se vyskytuje v sítích, pracujeme proto na nové verzi modulu se zvoleným, například exponenciálním rozložením.
6.1.4 Modul BURST
Modul BURST sleduje rozložení délek dávek paketů. Obsahuje dvě atomicky přepínatelné banky registrů, kde každá obsahuje 256 čtveřic 64b čítačů. Každá čtveřice obsahuje čítače:
- počtu dávek dané velikosti,
- počtu paketů v dávkách,
- počtu bajtů v dávkách a
- počtu nanosekund všech mezer mezi pakety.
Dávky se klasifikují do 256 skupin podle počtu bajtů v dávce. Za dávku [UFH08] se považuje souvislá posloupnost paketů oddělených mezerou nejvýše stanovené velikosti. Modul může být nastaven tak, že za dávku považuje pakety odeslané těsně po sobě, tedy s nejmenší možnou mezirámcovou mezerou. Může být ale také nastaven tak, že i určité větší mezery jsou považovány za pokračování dávky. Například mezera o délce kratší než potřebné pro vložení alespoň nejkratšího paketu může být považována za pokračování dávky. Modul poskytuje zajímavou informaci o dynamice provozu na lince, která může mít vliv na chování přenosových protokolů.
6.1.5 Modul PKT-CNT
Modul PKT-CNT počítá přijaté pakety. Jeho praktické použití je v tom, že může být nahrán do více různých slotů platformy a počítat pakety mezi různými fázemi zpracování.
V současné době dále vyvíjíme modul pro kompletní analýzu hlaviček IPv4, IPv6, TCP a UDP a v příštím roce plánujeme vývoj modulů pro zpracování přenosů videa.
6.1.6 Software pro MTPP
Důležitým prvkem platformy MTPP je její softwarová část zajišťující správnou konfiguraci a inicializaci modulů firmware a vyčítání výsledků zpracování paketů. Použité pole FPGA obsahuje procesor PowerPC 405 s následujícími parametry, který využíváme pro běh operačního systému Linux:
- 32b RISC procesor,
- 32 registrů pro obecné použití,
- 16 kB dvoucestné datové a instrukční cache,
- Memory Management Unit (MMU) - jednotka řízení paměti podporující stránkování, virtuální adresní prostor a ochranu paměti.
Procesor je plně podporován překladačem GCC. Protože obsahuje MMU, je možné pro něj přeložit linuxové jádro řady 2.6 a využívat všech jeho výhod. Pro použití v platformě MTPP jsme sestavili vlastní linuxovou distribuci MTPP obsahující následující základní komponenty:
- gcc-3.4.5 - překladač jazyka C/C++,
- glibc-2.3.6 - knihovna jazyka C,
- kernel-2.6.23.1 - linuxové jádro 2.6.23,
- xilinx_sysace modul - modul jádra pro přístup ke CompactFlash a pro zajištění dynamické rekonfigurace FPGA,
- iptables-1.4.0 - nástroje pro filtrování paketů,
- busybox-1.11.2 - základní sada nástrojů obsahující shell kompatibilní s bash,
- dropbear-0.50 - minimalistický SSH server,
- ntp-4.2.4p4 - software pro časovou synchronizaci.
Po přihlášení do zabudovaného Linuxu protokolem ssh přes rozhraní Fast Ethernet nebo přímo na konzole RS-232 je možné pracovat běžným způsobem na příkazové řádce v operačním systému. Pro komunikaci s rekonfigurovatelnými moduly a vrstvou MAC jsme vytvořili program mtpp. Na obrázku je možné vidět příklad použití tohoto programu pro zjištění aktuálně nahrané posloupnosti modulů, jmen registrů v MAC vrstvě týkajících se chyb CRC a konečně přečtení čítače chyb CRC.
Program mtpp je možné volat i vzdáleně a generovat tak grafy naměřených charakteristik. Příklad naměřené zátěže linky CESNET-Telia je na obrázku.
Pro zabudovaný operační systém Linux jsme vytvořili novou verzi jaderného modulu xilinx_sysace pro přístup na CompactFlash a zároveň řízení rekonfigurace FPGA, která rozšiřuje původní modul od firmy Xilinx. Karta CompactFlash je rozdělena do tří oddílů. První obsahuje souborový systém FAT16 a je určen pro rekonfiguraci FPGA. Obsahuje ACE soubory modulů firmware a několik textových konfiguračních souborů nastavujících počáteční uspořádání modulů firmware ve slotech a chování operačního systému Linux. Souborový systém FAT16 v prvním oddílu je vyžadován řadičem SystemACE a zároveň umožňuje editaci konfiguračních souborů z operačního systému MS Windows. Rekonfiguraci slotů je možné kdykoliv spustit znovu a takto měnit moduly a funkce platformy kdykoliv během jejího chodu a za plného provozu ostatních částí FPGA.
Druhý a třetí oddíl jsou formátovány souborovým systémem EXT2 a obsahují dodatečné nástroje a aplikace, které nejsou součásti ramdisku z důvodu úspory místa v paměti. Tyto oddíly jsou volitelné a nejsou nutné pro vlastní provoz MTPP. Ve druhém oddílu se nacházejí aplikace jako Midnight Commander, tcpdump a podobně. Třetí oddíl je plně vyhrazen pro uživatelská data.
Platforma MTPP je nasazena ve zkušebním provozu pro monitorování linky 10 Gb/s mezi sítěmi CESNET a Telia (připojení do komoditního Internetu). Jednáme o potenciálním komerčním využití platformy.
6.2 Autorita časových razítek
Časová razítka (time stamps) jsou nástrojem, který důvěryhodným způsobem přiřazuje časový údaj k existujícím datům. V principu je časové razítko speciálním typem certifikátu. Zařízení, které časová razítka vydává, se nazývá autorita časových razítek (TSA - time-stamp authority). Formát časových razítek a protokol, kterým se o ně žádá, je definován v dokumentu [RFC3161].
Naším cílem bylo navrhnout, postavit a uvést do provozu autoritu časových razítek ve sdružení CESNET. Základním programovým vybavením je implementace OpenTSA v prostředí 64bitového operačního systému Linux.
Při návrhu autority časových razítek jsme se soustředili na dvě oblasti:
- Důvěryhodnost
- Autorita časových razítek je ve své podstatě certifikační autoritou a její důvěryhodnost je tedy posuzována stejně jako u každé jiné certifikační autority.
- Přesný zdroj času
- Autorita časových razítek musí svá razítka vydávat podle hodin, které jsou prokazatelně navázány na časovou stupnici UTC.
Hardware autority časových razítek obsahuje dvě speciální karty: karta typu HSM (hardware security module) a karta pro zpracování signálu 1 pps (pulse per second):
- Karta HSM
- Karta SCA-6000 od firmy Sun Microsystems je akcelerátorem bezpečnostních algoritmů. Zvládá až 13 000 RSA operací za sekundu, ale hlavní výhodou pro naši aplikaci je, že privátní klíč je uložen na kartě bez přenosu mimo ni.
- Karta pro zpracování signálu 1 pps
- Použili jsme, stejně jako u našich NTP serverů, kartu Tedia PCT-7424. Nejistota vyhodnocení signálu 1 pps je snížena na přibližně 50 ns.
Pro důvěryhodnost autority časových razítek je důležitá její odolnost vůči útokům. Modul HSM (viz obrázek) zajistí, že primární klíč, sloužící k podepisování časových razítek, je vygenerován uvnitř modulu a není možné jej exportovat. Klíč aktivuje operátor při startu systému a nemůže ho použít žádný proces kromě TSA. Tím se autorita časových razítek stává imunní proti kompromitaci případným útočníkem. Ověřovali jsme také odolnost vůči útoku typu DoS a naše autorita byla schopna generovat 3000 časových razítek za sekundu, aniž by došlo ke znatelnému zpomalení reakční doby.
V rámci ověřování parametrů autority časových razítek jsme vyhodnocovali přesnost poskytované časové informace. Odchylka času vnitřních hodin od UTC je lepší než 2 us (viz graf) při synchronizaci pomocí signálu 1 pps z přijímače GPS. Stav hodin průběžně kontroluje náš monitorovací systém NTPMON, který by odhalil případný útok spočívající ve změně času. Provedli jsme rovněž kalibraci autority časových razítek podle naší vlastní metodiky [SCP08].
Výsledky jsou znázorněny v grafu. Průměrná hodnota rozdílu mezi časovým údajem v razítku a okamžikem odeslání žádosti o časové razítko (v grafu označeno jako Ts - Tq) je 0,8 ms. Graf rovněž zobrazuje celkovou dobu odezvy, tj. interval mezi odesláním požadavku a přijetím odpovědi. Měření bylo provedeno kalibračním počítačem umístěným v témže segmentu lokální sítě.
6.2.1 Karta Combo-PTM
Karta Combo-PTM byla vyvinuta v rámci projektu SCAMPI pro generování časových značek přijatých paketů do přenosové rychlosti 10 Gb/s. Karta obsahuje teplotně kompenzovaný oscilátor (TCXO) a má vstup pro signál 1 pps - tímto signálem lze synchronizovat hodiny na kartě. Původně jsme používali synchronizační algoritmus vycházející z tzv. nanokernelu Linuxu, jehož kód je ale nepřehledný a který neumožňuje optimalizovat parametry.
V roce 2008 jsme napsali nový synchronizační algoritmus, založený na zpětnovazební regulační smyčce znázorněné na obrázku
Význam symbolů:
- y - výstup hodin, tj. čas (resp. fáze),
- u - frekvence oscilátoru,
- e - chybová veličina, odchylka mezi signálem 1 pps a fází hodin,
- r - referenční hodnota - 1 pps signál,
- P - řízený proces, t.j. hodiny,
- C - řídicí obvod.
Rozhodli jsme se použít PI regulátor, tedy blok C je tvořen proporcionálním a integračním členem. Regulátor je definován dvěma parametry, proporcionálním ziskem Cp a integračním ziskem Ci. Integrační člen určuje drift oscilátoru TCXO, t.j. jeho relativní frekvenční odchylku od nominální hodnoty:
drift = drift + e * Ci
Vzhledem k nutnosti zajistit nejen správnou frekvenci ale i fázi je aktuální frekvence oscilátoru upravena o relativní hodnotu:
adj = -drift - e * Cp
V Linuxových jádrech verze 2.6.x není dosud dostatečně podporováno přímé zpracování signálu 1 pps, proto jsou naše NTP servery provozovány stále s jádry 2.4.33. Vzhledem k nutnosti budoucího přechodu na verze 2.6.x jsme se rozhodli ověřit využití karty Combo-PTM jako zdroje času pro NTP server. Distribuční verze NTP obsahuje přes 20 obslužných programů pro různé externí zdroje času, využití Combo-PTM tedy spočívalo v naprogramování nového obslužného programu (ovladače) a jeho integraci mezi ostatní. Výsledkem je patch NTP verze 4.2.4. Server s kartou Combo-PTM je provozován s URL ntp2.cesnet.cz. Graf znázorňuje odchylku času tohoto serveru v průběhu jednoho dne.
6.2.2 Kalibrace NTP a TSA
Navázali jsme na naši práci v roce 2007, kdy jsme navrhli kalibrační metody pro autority časových razítek (TSA - time-stamp authority). V průběhu roku jsme navrhli rovněž kalibrační metodu pro NTP servery a zorganizovali jsme vzájemné měření časových služeb mezi pěti evropskými laboratořemi času frekvence. Každá taková laboratoř provozuje césiové hodiny navázané na časovou stupnici UTC a je tedy záruka, že pro své časové servery vyžívá důvěryhodný zdroj času. Testů se zúčastnily následující organizace:
- BEV - Rakousko
- PTB - Německo
- ROA - Španělsko
- INRiM - Itálie
- UFE - Česká republika (Ústav fotoniky a elektroniky AV ČR, dřívější název ÚRE - ústav radiotechniky a elektroniky)
Výsledky měření spolu s navrženými kalibračními metodami jsme prezentovali na sympoziu VITSA a následně v časopise Metrologia.
6.3 Prezentace výsledků monitorování
Pro monitorování různých charakteristik v naší síti CESNET2 i v evropské síti GÉANT2 [UST08] jsme v minulých letech i v letošním roce vyvinuli různé aplikace. V letošním roce byl CESNET navíc pověřen pilotním nasazením pasivního monitorování mezi vybranými partnery sítě GÉANT2 v rámci aktivity SA3 projektu GN2.
Pro snadný přístup k jednotlivým aplikacím jsme vytvořili centrální webovou stránku https://perfmon.cesnet.cz/, respektive https://perfmon.geant2.net/. Z této stránky je formou tabulky snadný přístup ke všem monitorovacím aplikacím. Kliknutím na odkaz pod tabulkou je možné vyžádat podrobný popis jednotlivých aplikací, měřených charakteristik, jakého provozu se týkají, atd.
Jedním z důležitých požadavků je možnost souhrnného pohledu na větší počet bodů sítě se snadnou identifikací problémových míst. Současně je třeba poskytnout možnost se na vybraná místa zaměřit a zobrazit příslušné hodnoty v detailnějším pohledu. Pro vybrané aplikace jsme proto vytvořili mapové uživatelské rozhraní navíc k jejich vlastnímu uživatelskému rozhraní poskytující grafy a tabulky. Je možné kombinovat více volitelných měřených charakteristik v jednom pohledu. Příklad souhrnného globálního pohledu na hodnoty propustnosti a zpoždění vidíte na obrázku.
Monitorovací stanice jsou znázorněny kruhovými značkami, kde každý půlkruh odpovídá jednomu směru provozu na lince. Velikost výplně půlkruhu a jeho barva odpovídají průměrné hodnotě měřené charakteristiky za posledních 24 hodin (pro zpoždění) resp. 48 hodin (pro propustnost). Propustnost je znázorněna samostatně pro UDP s nulovou ztrátovostí (barvou) a TCP (příčkou v půlkruhu).
Po kliknutí na značku monitorovací stanice se zobrazí detailní grafy příslušné charakteristiky, u kterých je možné dále změnit časové období a časovou granularitu zobrazení, jakož i další volitelná nastavení.
Vizualizační rozhraní jsme vytvořili tak, aby je bylo možné integrovat s různými nástroji. Mimo vizualizace výstupů měřicích nástrojů jsme obdobně vizualizovali také výsledky nástrojů Perfmon a Servmon, které jsme vytvořili pro kontrolu provozního stavu a čerpání výpočetních prostředků monitorovacích stanic pro zajištění bezproblémového kontinuálního měření všech charakteristik.
6.4 Aplikace "inteligentní traceroute"
Program JTraceRoute vytvořený v předchozím období jsme rozšířili o schopnost získávat SNMP data z jednotlivých uzlů trasy. Cílem je poskytnout uživateli kromě prostého seznamu uzlů na trase sítí také informace o jednotlivých uzlech a linkách získané protokolem SNMP, například zátěž nebo chybovost jednotlivých rozhraní. Aplikace získává data příslušející jednotlivým uzlům prostřednictvím webové služby, která komunikuje s bránou do systému G3 pro SNMP monitoring v síti CESNET2. Architektura řešení je znázorněna na obrázku.
Postup aplikace JTraceRoute při získávání informací o směrovačích je následující:
- Je proveden standardní traceroute na vzdálenou stanici.
- Je kontaktována služba Lookup Service (LS) pro získání informace o službách SNMP Measurement Point (MP), které jsou schopny poskytnout SNMP data k jednotlivým uzlům na trase.
- Jsou kontaktovány jednotlivé SNMP MP a získána vybraná SNMP data.
- JTraceRoute kontaktuje službu JTraceRoute server běžící na vzdálené stanici.
- JTraceRoute server na vzdálené stanici provede (zpětný) traceroute na stanici původní a výše uvedeným postupem získá SNMP data ze směrovačů pro rozhraní v opačném směru trasy. Výsledky odešle klientské aplikaci JTraceRoute. Tato část samozřejmě funguje pouze tehdy, běží-li na vzdálené stanici služba JTraceRoute server.
- JTraceRoute zobrazí jak dopředný, tak zpětný traceroute s SNMP daty ve společném grafickém rozhraní. Jsou identifikovány případné asymetrie v dopředné a zpětné trase. Uživatel může kliknout na libovolné rozhraní směrovače a zaslat jiný dotaz na službu SNMP MP podle vlastní specifikace.
Webová služba LS je součástí systému pro integraci měřicích nástrojů perfSONAR a služba SNMP MP G3 rovněž komunikuje zprávami kompatibilními s tímto systémem. Program JTraceRoute ukládá výsledky včetně SNMP dat v XML formátu, který je rozšířením návrhu standardního formátu pro aplikaci traceroute navrženého v IETF draftu [NTQ08].
Použitá architektura umožňuje koncovému uživateli získat informace ze směrovačů protokolem SNMP, aniž by uživatel měl přímý přístup na směrovače, což obvykle z bezpečnostních důvodů není možné. Z důvodů bezpečnosti bývá navíc přístup přes SNMP omezen na IP adresy směrovačů určené pro jejich správu a není možný přes IP adresy rozhraní směrovačů. To přináší praktický problém pro aplikace typu traceroute. V příštím roce proto plánujeme rozšířit aplikaci JTraceRoute o gateway s překladem adres rozhraní na adresy pro správu. To by mělo umožnit činnost i v sítích se zabezpečeným přístupem ke směrovačům.
|
|
obsah |
následující
|
![[Obrázek]](framework.png)
![[Obrázek]](mtpp-graf.png)
![[Obrázek]](perfmon-menu.jpg)
![[Obrázek]](iperfdelayloss.png)
![[Obrázek]](jtraceroutearch.png)