
Prisbillig High performance 10Gbit er det muligt?
Jeg er igang med nye projekter, men det tager tid. I den forbindelse er der lidt opstart og jeg tror ikke det gør skade at fortælle lidt undervejs. Projekterne drejer sig om netværk og gerne high-performance 10Gbit networking - til en overskuelig pris. En overskuelig pris er blandt andet muligheden for at kunne arbejde med 10G uden at forsømme familien ;-)
Lad mig starte med det simple, platformen som jeg har købt er en lille Shuttle XPC - med 2 stk PCI-Express x16 slots. Størrelsen er for mig vigtig idet jeg gerne vil have to systemer at teste med, men gerne vil kunne transportere dem nemt - eksempelvis til TheCamp hvor jeg skal rode med netværk hele ugen lørdag-lørdag!
Bemærk at det bestemt ikke er alle Shuttle XPC der kan tilføjes sådan et kort. Oftest er der kun en PCI-Express x1 slot ledig, og den x16 slot som findes er beregnet til Grafikkort og KUN grafikkort. Jeg har forespugt leverandøren, som spurgte Shuttle og jeg har selv kommunikeret med dem. Forøvrigt tak til OpenCompany.dk som ydede noget så interessant som kundeservice!
Det officielle svar fra Shuttle er således: "We have a model, SX79R5, which will meet your requirement. SX79R5 supports socket 2011 CPU, and has 2 of the x16 PCI-e slot. ". Da jeg læste det fandt jeg modellen SX58H7 og tog chancen og købte en enkelt med disse specs:
Shuttle SX58H7 Pro Barebone (mini), 2xLAN (2xLAN giver mulighed for at teste 1Gbit nemt også)
Intel Core i7 - 960 (3.2GHz) (4core) (8MB)
4*4GB, DDR3, 1333 MHz (PC3-10600), CL9
500GB WD Caviar Green WD5000AZRX SATA-600, 5400rpm, buffer 64MB
Club 3D Nvidia GeForce GT520 1GB
Note: systemet er blot samlet og ikke overclocket eller noget, BIOS står som default.
Der er hertil tilføjet et dual port 10Gbit Intel 52599 kort som jeg har lånt, tak Michael, men prisen på dual port 10G Intel X520 kort er ca. 2.500-3.000 ex moms i løs vægt og mindre stykantal. Den totale pris er altså under 10.000kr for et system med 2x1Gbit LAN, 2x10Gbit LAN samt en del computerkraft. Hvis du har andre forslag til modeller, så sig til.
Jeg har ligeledes taget en 24-port 10G switch og en 24-port 1Gbit switch med 10G interface til laboratoriummet. De initielle test med det ene system er gået rigtig godt, idet netkortet kunne monteres og er blevet genkendt af både FreeBSD, OpenBSD og XenServer virtualiseringsplatformen. Det direct attach kobberkabel som jeg bruger virker ligeledes og jeg har med iperf pumpet ~4Gbit igennem indtil videre med omkring 330.000 pakker per sekund - på OpenBSD. Årsagen til at jeg ikke kom højere skyldes nok at jeg mangler flere systemer at teste fra :-)
Projekter
Godt, næste skridt er så projekterne som systemerne skal bruges til (har bestilt et mere magen til).
Stetoskop for kunder - vi oplever jævnligt at kunderne skal overføre en masse data, eller have testet en platform. Det har jeg jævnligt gjort ved brug af laptops med 1Gbit eller min gamle mørbankede Shuttle XPC SN95G5V3 købt i Juni 2006! Da alle vores nye servere har 10G og de nyeste ikke har 1Gbit er det tid til mere ooomph.
Stresstest af webservere. Vores kunder er generelt konservative med Apache og Microsoft IIS, men flere er sprunget på Varnish (se: https://www.varnish-cache.org/ skrevet af PHK m.fl.) og jeg er nødt til at se mere på web serveren Nginx (se: http://wiki.nginx.org/Main ). Det betyder både leg med testværktøjer og servere, double fun :-)
Routing performance med Open Source bliver bedre og bedre, samtidig med at management bliver bedre. Der skal således testes med FreeBSD, OpenBSD, Linux og formentlig Vyatta (Se: http://www.vyatta.org/). Det bliver formentlig med OpenBGPd som jeg kender i forvejen, men BIRD (Se: http://bird.network.cz/) kan også komme på tale. Til gengæld er Quagga ikke interessant i min optik. Min forventning er ikke fuld 10Gbit routing med samme specs som en Juniper router, men kan den yde halvdelen af en 10Gbit til en 1/8 af prisen for en fuld 10Gbit Juniper MX40/80 så er det interessant!
Firewalling, sammen med routing - hvis vi kan lave en server med indbygget router med fuld BGP til en brøkdel af prisen kan det bruges til mindre fremskudte POPs (point of presence)
IDS/IPS (Intrusion Detection System/Intrusion Prevention System) - jeg har brugt Snort i mange år, men der er flere nye spillere som er interessante. Jeg skal se på Snort (se: http://www.snort.org ), Bro (se: http://bro-ids.org/ ) og Suricata (se: http://www.openinfosecfoundation.org/ ), og diverse relaterede projekter, Snort/Suricata regler fra http://www.emergingthreats.net/ samt andre mindre værktøjer til at undersøge og gemme netværkstraffik, after the fact undersøgelser - hvad sørensen skete der på netværket igår!
Hvis routing og firewall delene går over forventning skal det forsøges kombineret med noget scrubbing af IP traffik - mere om det senere. Vi mangler muligheden for at trække Live traffik henover et mikroskop som kan inspicere det mens det sker.
BGP monitorering generelt skal også undersøges nøjere, idet vi ofte ser at internet er fejlbehæftet. Eksempelvis har der været perioder hvor vores ene leverandør Level3 ikke havde IPv6 peering med Hurricane Electric - som ellers er en stor spiller på IPv6. Den slags undersøgelser af BGP full table bliver mere og mere relevante, eksempelvis for at se hvilke af vores transitleverandører som er mest stabile, hvilke netværk kan vi kun nå via bestemte peers osv. Det kræver ikke 10Gbit, men kræver en maskine med mulighed for at arbejde effektivt med en database med ~400.000 routes og tilhørende data.
Smadre Juniper routere, vi bruger selv Juniper SRX og mange kunder gør ligeså. De findes dog i små udgaver som kun kan håndtere omkring 100K sessions (SRX220) - men kan konfigureres til at noget traffik bliver forwardet stateless (Juniper SRX Selective Stateless Packet-Based Services). Den feature forventer jeg vil kunne gøre dem en anelse mere robuste i visse miljøer. Specielt tænker jeg på ICMP og DNS traffik med UDP hvor det ikke giver mening at lave en session for hvert enkelt request, idet serveren bagved typisk har mere CPU, RAM og disk (logning) end firewallen.
Det er vist min foreløbige liste over emner der skal undersøges, og jeg skal forsøge at holde jer orienteret om fremdriften. Hvad ville du forøvrigt teste hvis du havde sådanne to systemer, en 10G switch og muligheden?
Henrik Kramshøj er internet-samurai hos Solido Networks. Han elsker netværkspakker tcpdump, wireshark, BackTrack, Metasploit og andre hackerværktøjer og blogger om sikkerhed, netværk og unix.
Kommentarer (5)
Det tegner til et både lærerigt og udbytterigt projekt. Jeg kan lide angrebsvinklen og metoderne, og ville ønske at jeg personligt havde bedre tid til at lege med alle disse fantastiske stykker software. Tak for nogle gode pointere til nogle spændende projekter jeg ikke kendte i forvejen. Happy hacking !
Helt enig med Søren - dejligt at du vil dele dine erfaringer med os :-)
Jeg ser frem til at se hvordan (i hvert fald) Linux, FreeBSD og OpenBSD ligger ift. hinanden forwarding- og filtering-mæssigt. Du spørger efter, hvad "vi" ville gøre, hvis det var os - jeg ville huske at prøve forwarding med og uden filtering, med forskellige filtering-regler, nyeste "stable" version af operativsystemerne og nyeste "cutting edge" version af dem. Hvis jeg så mærkværdig opførsel, så ville jeg henvende mig til operativsystemernes mailinglister med detaljeret information om forsøgsopstillingen. Så får de en fair chance, og det skulle ikke undre mig, om det kan føre til at udviklere sender patches til test. Husk også der kan være forskellige knobs, der skal drejes på, på de forskellige systemer. Det kan være interessant både at vise performance for default og performance efter tweaking.
Spændende forsøg, 16Gb RAM er måske lidt i overkanten hvis du ikke skal have den globale routning tabel mere end et par gange i RAM. Omvendt er RAM jo billigt for tiden, med mindre det har været forbi en hardware vendor og blive brandet......
Anyway, har selv haft lidt udkig efter noget tilsvarende til wireshark/tcpdump på 10Gbit connectede servere, men ville allerhelst have en bærbar agtigt da det er rart at kunne tage den med sig ned til switchen for ikke at belaste netværket unødvendigt med remote span/mirroring.
Anyway, med de krav/ønsker du har til platformen ville jeg måske overveje at kigge på noget hardware baseret i stedet for rent software. Eventuelt noget ala NetFPGA eller liberouter. Umiddelbart vil jeg forvente at du ville kunne nå performance på niveau med en MX men nok ikke features (i hvert fald ikke endnu).
De 16Gb ram er fordi jeg også skal se på noget XenServer tuning - vi har haft problemer med at overføre data mellem CPH og LUX med 25-30ms - hvor et par virtuelle maskiner på XenServer 5.6 og 6.0 ikke performede som vi ville have det.
NetFPGA har jeg set på flere gange, men da Academic price starter ved $1.695 har jeg pt. lagt det til side. Den anden kendte jeg slet ikke, tak. Da snakken nu er på avancerede netkort har jeg også set på Napatech.com som laver nogle lækre netkort, men som ligeledes er dyre - +30kkr for et 4*1Gbit kort!
Jeg syntes nu ikke at NetFPGA priserne virker så slemme. Deres 4x1Gbit kort koster 599$ i academic udgaven og 1199$ for "standard" brugere. Så en pris på 4x10Gbit kortet i "standard" udgaven kunne man formode landede i omegnen af 2300$. Ikke urimeligt for et 4X10Gbit kort, med "lokal" forwarding, selvom den er baseret på broadcom PHY'er :-)
Stadig for dyrt til mit hobby/test brug og indtil videre kan man nok ikke bruge den til så meget. Men om 6-12 måneder kunne det være spændende at se hvad academia har fået ud af den.
Napatech har bestemt også interessante NIC's er bare ikke sikker på at de ville egne sig til routnings delen af dine ønsker. Så vidt jeg husker er de mest egnede til pattern matching/traffic generation og ikke til lokal forwarding.
Jeg er meget spændt på hvor meget du kan route over den CPU. Med en stresset CPU kunne det være meget spændende at se hvordan jitter vil opføre sig. Jeg har desværre en lumsk mistanke om at der en grund til at der ikke rigtigt er nogle af de "store", som har software baserede 10Gbit routere.

