Úvod do routování na PC architektuře (zastaralé)
Napsal: 11 Nov 2007 22:51
Ethernet přestal být výsadou okrajů sítí a čím dál razantněji si razí cestu k páteřím telekomunikačních operátorů. Výrobci síového hardware to už dávno vědí a tak dnes najdeme na trhu množství routerů / L3 switchů různých výrobců s podporou GE, 10GE, BGP a MPLS. A stejně jako nenajdeme velkého telekomunikačního operátora, který by si minimálně nepohrával s myšlenkou nasazení MPLS, nenajdeme ani operátora z řad menších ISP, který nevyzkoušel routery běžící na PC architektuře.
Nenechte se však mýlit, že jediným důvodem pro nasazení PC routerů je cena takového řešení. Dalším, neméně důležitým důvodem totiž bývá vlastní odladěný routovací software, který si řada ISP v průběhu let uzpůsobuje. Mnoho lokálních ISP používá pro routování Mikrotik RouterOS, postavený na bázi linuxového jádra, který v rámci potřeb lokálních ISP nepřináší žádný hendikep. Obsahuje podporu dynamických routovacích protokolů, bridging, klasifikace paketů, VLAN, VRRP, přístupový koncentrátor PPPoE, PPPtP s podporou RADIUS a v oblasti bandwidth managementu jsou jeho funkce dokonce vysoko nad hardwarovými směrovači.
Není však sporu o tom, že routování na PC platformě má své hranice dané architekturou x86 a z ní vyplývajících rychlostních omezení. Cílem naší iniciativy je posunout tyto hranice co nejvýše. Převedeno do světa motorismu, můžete vzít seriově vyráběný vůz, pořídit sportovní odpružení, sání a výfuk, odladit software řídící jednotky a vyrazit na okruh. Dostanete se vysoko nad hranice původního vozu. A přestože stejně jako s tímto vozem nikdy nedosáhnete parametrů F1, ani s PC routerem nikdy nedosáhnete parametrů špičkových routerů jako Juniper, Cisco nebo Extreme. Přesto chceme posunout hranici výkonnosti co možná nejvýš, tak abychom byli schopni routovat rychlosti v řádech jednotek Gbit/s a milionů packets/s.
Omezení daná x86 platformou
1. Výkon CPU.
2. Propustnost sběrnice.
3. Množství síových rozhraní.
Výkon CPU
V případě hardwarových routerů přichází hlavní procesor do styku s předávaným paketem jen velmi zřídka. Drtivou většinu operací totiž zařídí akcelerovaný hardware přímo na síových modulech. Nezřídka se jedná o ASIC design, který patří do rodinného stříbra každého výrobce. Běžně dostupná ethernetová karta v PC (E/FE/GE) však žádnou hardwarovou akceleraci neobsahuje, a tak je veškerý provoz přes sběrnici předáván CPU, který rozhodne jak s každým jedním paketem dále naloží. Musíme si uvědomit, že procesory v PC nejsou optimalizovány pro I/O operace, nýbrž výpočty, které při běžné práci s PC potřebujeme nejvíce.
Eliminovat uvedený nedostatek si jako cíl vytknul tým lidí, který v roce 2002 pod křídly CESNETu započal projekt Liberouter (http://www.liberouter.org). Ten má za úkol vyvinout síovou kartu pro PC a software, který by dokázal většinu síové komunikace obsloužit právě v rámci zmíněné karty. V současnosti se však zdá, že více než k původnímu záměru je projekt směrován k analýze síového provozu. A protože od roku 2002 již nějaký ten čas utekl, začínají se objevovat pochybnosti o praktickém výsledku zmíněné iniciativy.
Běžně je uváděno, že k routování 1 Kbit/s je potřeba výkonu 1 KHz. Takže 1 GHz CPU je schopno předat cca 1 Gbit/s síového provozu. Vždy však musíme mít na paměti, že router zpracovává dva směry, takže k uroutování 1 Gbit/s oběma směry v současnou chvíli už bychom potřebovali minimálně 2 GHz CPU. Tyto jednoduché počty samozřejmě nelze brát doslova, nebo v řadě případů se nemusí jednat o čistý routing, ale můžeme provádět inspekci paketů, následné filtrování apod.
Výkon CPU v souvislosti se zpracovávaným síovým provozem trápí především výrobce síových karet. Na trh jsou uváděny 10 Gbit/s karty (10GE) a podle výše uvedených výpočtů bychom jejich výkon asi jen stěží užili. Do hry tak přichází TOE (TCP/IP offload engine), který má odlehčit CPU od řady síových operací. 10 GE karty s TOE jsou určeny do výkonných stanic, souborových serverů, nasazení iSCSI a podobně. Neměli jsem doposud v rukou žádnou kartu s TOE, takže nemůžeme posoudit, zda-li a do jaké míry je TOE přínosem i v případě routování.
Propustnost sběrnice
Bus Clock bits Max Transfer Rate
PCI 33 MHz 32 1.064 Mbit/s
PCI 66 MHz 32 2.128 Mbit/s
PCI 33 MHz 64 2.128 Mbit/s
PCI 66 MHz 64 4.264 Mbit/s
PCI-X 33 MHz 32 1.064 Mbit/s
PCI-X 33 MHz 64 2.128 Mbit/s
PCI-X 66 MHz 32 2.128 Mbit/s
PCI-X 66 MHz 64 4.264 Mbit/s
PCI-X 100 MHz 64 3.200 Mbit/s
PCI-X 133 MHz 64 8.528 Mbit/s
PCI Express x1 2.5 GHz 32 8.000 Mbit/s
PCI Express x2 2.5 GHz 32 16.000 Mbit/s
PCI Express x4 2.5 GHz 32 32.000 Mbit/s
PCI Express x8 2.5 GHz 32 64.000 Mbit/s
S nástupem PCI Express (v 32 b verzi až 64 Gbit/s, v budoucích 128 b verzích až 256 Gbit/s) byl snad hlad po rychlé sběrnici na několik let uspokojen. I současné PCI-X sběrnice však dosahují slušných 8 Gbit/s, oproti PCI Express však sdíleně pro všechny periferie.
Množství síových rozhraní
V případě použití PC hardware jsme limitování počtem dostupných PCI slotů. Tento nedostatek je o to častější v případě rackmount PC, nebo 1U provedení běžně poskytují pouze 1 volný PCI slot ve stromečku.
Částečně lze výše uvedené řešit použitím víceportových PCI karet (4 až 6 FE nebo GE portů). Při nákupu je však třeba dát pozor, aby karta obsahovala skutečně nezávislé síovky a nejednalo se o switchovanou kartu.
Samostatnou kapitolu tvoří speciální embedded mainboardy, dostupné v rámci network appliance v rackmount 1U provedení, které mohou obsahovat až 12 ethernetových portů.
Elegantní řešení výše uvedené problematiky se nabízí v podobě kombinace router + switch s podporou 802.11q VLAN. Každý z portů na switchi lze zahrnout do samostatného VLANu a všechny tyto VLANy přivést do routeru přes jedno nebo více ethernetových rozhraní. V routeru je pak každý takový VLAN dostupný jako samostatné síového rozhraní s výstupem na každém jednom portu switche.
Nenechte se však mýlit, že jediným důvodem pro nasazení PC routerů je cena takového řešení. Dalším, neméně důležitým důvodem totiž bývá vlastní odladěný routovací software, který si řada ISP v průběhu let uzpůsobuje. Mnoho lokálních ISP používá pro routování Mikrotik RouterOS, postavený na bázi linuxového jádra, který v rámci potřeb lokálních ISP nepřináší žádný hendikep. Obsahuje podporu dynamických routovacích protokolů, bridging, klasifikace paketů, VLAN, VRRP, přístupový koncentrátor PPPoE, PPPtP s podporou RADIUS a v oblasti bandwidth managementu jsou jeho funkce dokonce vysoko nad hardwarovými směrovači.
Není však sporu o tom, že routování na PC platformě má své hranice dané architekturou x86 a z ní vyplývajících rychlostních omezení. Cílem naší iniciativy je posunout tyto hranice co nejvýše. Převedeno do světa motorismu, můžete vzít seriově vyráběný vůz, pořídit sportovní odpružení, sání a výfuk, odladit software řídící jednotky a vyrazit na okruh. Dostanete se vysoko nad hranice původního vozu. A přestože stejně jako s tímto vozem nikdy nedosáhnete parametrů F1, ani s PC routerem nikdy nedosáhnete parametrů špičkových routerů jako Juniper, Cisco nebo Extreme. Přesto chceme posunout hranici výkonnosti co možná nejvýš, tak abychom byli schopni routovat rychlosti v řádech jednotek Gbit/s a milionů packets/s.
Omezení daná x86 platformou
1. Výkon CPU.
2. Propustnost sběrnice.
3. Množství síových rozhraní.
Výkon CPU
V případě hardwarových routerů přichází hlavní procesor do styku s předávaným paketem jen velmi zřídka. Drtivou většinu operací totiž zařídí akcelerovaný hardware přímo na síových modulech. Nezřídka se jedná o ASIC design, který patří do rodinného stříbra každého výrobce. Běžně dostupná ethernetová karta v PC (E/FE/GE) však žádnou hardwarovou akceleraci neobsahuje, a tak je veškerý provoz přes sběrnici předáván CPU, který rozhodne jak s každým jedním paketem dále naloží. Musíme si uvědomit, že procesory v PC nejsou optimalizovány pro I/O operace, nýbrž výpočty, které při běžné práci s PC potřebujeme nejvíce.
Eliminovat uvedený nedostatek si jako cíl vytknul tým lidí, který v roce 2002 pod křídly CESNETu započal projekt Liberouter (http://www.liberouter.org). Ten má za úkol vyvinout síovou kartu pro PC a software, který by dokázal většinu síové komunikace obsloužit právě v rámci zmíněné karty. V současnosti se však zdá, že více než k původnímu záměru je projekt směrován k analýze síového provozu. A protože od roku 2002 již nějaký ten čas utekl, začínají se objevovat pochybnosti o praktickém výsledku zmíněné iniciativy.
Běžně je uváděno, že k routování 1 Kbit/s je potřeba výkonu 1 KHz. Takže 1 GHz CPU je schopno předat cca 1 Gbit/s síového provozu. Vždy však musíme mít na paměti, že router zpracovává dva směry, takže k uroutování 1 Gbit/s oběma směry v současnou chvíli už bychom potřebovali minimálně 2 GHz CPU. Tyto jednoduché počty samozřejmě nelze brát doslova, nebo v řadě případů se nemusí jednat o čistý routing, ale můžeme provádět inspekci paketů, následné filtrování apod.
Výkon CPU v souvislosti se zpracovávaným síovým provozem trápí především výrobce síových karet. Na trh jsou uváděny 10 Gbit/s karty (10GE) a podle výše uvedených výpočtů bychom jejich výkon asi jen stěží užili. Do hry tak přichází TOE (TCP/IP offload engine), který má odlehčit CPU od řady síových operací. 10 GE karty s TOE jsou určeny do výkonných stanic, souborových serverů, nasazení iSCSI a podobně. Neměli jsem doposud v rukou žádnou kartu s TOE, takže nemůžeme posoudit, zda-li a do jaké míry je TOE přínosem i v případě routování.
Propustnost sběrnice
Bus Clock bits Max Transfer Rate
PCI 33 MHz 32 1.064 Mbit/s
PCI 66 MHz 32 2.128 Mbit/s
PCI 33 MHz 64 2.128 Mbit/s
PCI 66 MHz 64 4.264 Mbit/s
PCI-X 33 MHz 32 1.064 Mbit/s
PCI-X 33 MHz 64 2.128 Mbit/s
PCI-X 66 MHz 32 2.128 Mbit/s
PCI-X 66 MHz 64 4.264 Mbit/s
PCI-X 100 MHz 64 3.200 Mbit/s
PCI-X 133 MHz 64 8.528 Mbit/s
PCI Express x1 2.5 GHz 32 8.000 Mbit/s
PCI Express x2 2.5 GHz 32 16.000 Mbit/s
PCI Express x4 2.5 GHz 32 32.000 Mbit/s
PCI Express x8 2.5 GHz 32 64.000 Mbit/s
S nástupem PCI Express (v 32 b verzi až 64 Gbit/s, v budoucích 128 b verzích až 256 Gbit/s) byl snad hlad po rychlé sběrnici na několik let uspokojen. I současné PCI-X sběrnice však dosahují slušných 8 Gbit/s, oproti PCI Express však sdíleně pro všechny periferie.
Množství síových rozhraní
V případě použití PC hardware jsme limitování počtem dostupných PCI slotů. Tento nedostatek je o to častější v případě rackmount PC, nebo 1U provedení běžně poskytují pouze 1 volný PCI slot ve stromečku.
Částečně lze výše uvedené řešit použitím víceportových PCI karet (4 až 6 FE nebo GE portů). Při nákupu je však třeba dát pozor, aby karta obsahovala skutečně nezávislé síovky a nejednalo se o switchovanou kartu.
Samostatnou kapitolu tvoří speciální embedded mainboardy, dostupné v rámci network appliance v rackmount 1U provedení, které mohou obsahovat až 12 ethernetových portů.
Elegantní řešení výše uvedené problematiky se nabízí v podobě kombinace router + switch s podporou 802.11q VLAN. Každý z portů na switchi lze zahrnout do samostatného VLANu a všechny tyto VLANy přivést do routeru přes jedno nebo více ethernetových rozhraní. V routeru je pak každý takový VLAN dostupný jako samostatné síového rozhraní s výstupem na každém jednom portu switche.