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.

[Obrázek]

Obrázek 6.1: Platforma MTPP pro zpracování paketů rychlostí 10 Gb/s

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ů:

[Obrázek]

Obrázek 6.2: Blokové schéma platformy (větší obrázek)

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:

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í:

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:

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:

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:

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:

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.

[Obrázek]

Obrázek 6.3: Příklad použití programu mtpp

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.

[Obrázek]

Obrázek 6.4: Zátěž linky naměřená platformou MTPP (větší obrázek)

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.
[Obrázek]

Obrázek 6.5: Karta SCA-6000

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.

[Obrázek]

Obrázek 6.6: Offset hodin TSA

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].

[Obrázek]

Obrázek 6.7: Kalibrace TSA

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

[Obrázek]

Obrázek 6.8: Zpětnovazební řídicí smyčka

Význam symbolů:

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.

[Obrázek]

Obrázek 6.9: Offset hodin NTP serveru

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:

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.

[Obrázek]

Obrázek 6.10: Centrální přístup k monitorovacím aplikacím (větší obrázek)

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.

[Obrázek]

Obrázek 6.11: Vizualizace zpoždění a propustnosti v jednotlivých bodech sítě (větší obrázek)

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.

[Obrázek]

Obrázek 6.12: Architektura aplikace JTraceRoute. (větší obrázek)

Postup aplikace JTraceRoute při získávání informací o směrovačích je následující:

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.

předchozí
obsah
následující
další weby:fond rozvojemetacentrumCzechLightpřenosyvideoservereduroameduID.cz