 Ich würde sagen, ich fange einfach mal an. Schön, dass ihr alle da seid. Ein paar Worte zu mir. Ich bin Tux. Ich mache jetzt seit 15 Jahren Internet. Bin durch verschiedene Service-Provider und Consulting-Buden gehüpft. Hab irgendwie einmal für jeden von euch das Internet offline genommen. Das kann ich quasi garantieren. Und würde heute gerne mal ein bisschen darüber reden, wie eigentlich so ein Router aufgebaut ist, wie der funktioniert, was dahinter steckt. Ja, und ich würde einfach sagen, lass uns anfangen. Wenn ich über Router rede, haben wir vermutlich vielleicht ein kleines anderes Verständnis, was ein Router ist. Ich kenne das, Leute stehen zu Hause, ja, die Fritzbox, das ist mein Router. Ja, nee, das ist ein CPE, kein Router. Wenn ich über Router rede, meine ich sowas. Die Dinger sind halt ein bisschen größer und haben halt so ein paar Eigenschaften und da kommen immer irgendwie so ein paar Standard-Fragen, wenn man sowas zu tun hat. Die erste Frage, die ich immer zu hören bekommen, ist von meinen RZ-Jungs. Wie groß, wie schwer willst du uns umbringen? Kommt jedes Mal. Die zweite Frage kommt dann schon etwas panischer von den RZ-Betreibern. Wie viel Strom brauchst du in diesem Rack und wie viel Kühlung? Und dann kommt die dritte Frage grundsätzlich von den Leuten, die es durch schreiben, wenn man das haben will. Wie viel Geld willst du da eigentlich ausgeben? Ist halt so ein bisschen, wenn man sich die Kisten da anguckt, wenn da ein Preisschild dran hängen würde, was du Listenpreis ist, dann können das durchaus mal in die Millionen gehen. Das ist relativ normal. Man muss halt sich angucken, warum das eigentlich so ist und was an den Kisten so besonders ist. Das sind jetzt drei verschiedene Kisten von drei Herstellern, aber alle sind ziemlich ähnlich, was den Aufbau angeht und darum kann man Dinge vereinfachen. Heute für den Talk habe ich ein paar Dinge vereinfacht. Ich rede nur über Ivernet-Router. Alles, was an anderen Technologien da ist, lasse ich außen vor, weil dann wird es nur eklig und noch komplizierter. Ich gucke mir auch nur IP an. V4, V6, alles, was sonst rundherum läuft. MPLS, VPS, all den ganzen Kram habe ich rausgestrichen, weil dann wird es auch nur zu komplex und nicht mehr in einen Talk rein. Und es gibt ein paar Dinge, da kann ich nur sehr undeutlich werden, weil das ist alles eine Geheimwissenschaft. Das ist so ein bisschen, wenn man so etwas kauft, als wenn man ein iPhone kauft. Die Kiste wird hingestellt, es ist ein Handbuch dabei, aber bitte frag doch nicht, wie sie funktioniert und guck nicht rein. Weil das wäre ja ganz schlimm uns Geheimwissen. Sind sie alle etwas komisch? Aber das sind halt netzter Kersteller immer. Wenn ich mir so eine Kiste angucke, habe ich eigentlich drei Building-Blogs, aus denen das Ganze besteht. Ich habe immer so ein Chassis, irgendwie so ein viereckiger Stahlkasten, im Regelfall 19 Zoll breit, irgendwie nicht höher als 42 Höhenanheiten, sonst wird es eklig ein Standard-Teil halt. Dann habe ich eine Control-Plane, das ist die, die das ganze Ding steuert. Und ich habe eine Data-Plane, das ist irgendwie irgendwo die Treffig durchläuft. Das sind die drei Bausteine, und die gucken wir uns einfach mal kurz einzeln an. So ein Chassis, was ich habe, hat eigentlich nur drei Aufgaben. Nein, vier. Einmal Energieversorgung. Irgendwie muss der Strom, der da irgendwie, dass das der Steckdose kommt, oder aus dem angeschraubten Kabel, in der System verteilt werden. Irgendwie muss die Kühlung sichergestellt sein. Ich habe irgendwie elektrische Verbindungen zwischen den ganzen einzelnen Bauelementen. Dann habe ich die Karten reinschieben kann, wo ich ein bisschen Stabilität habe. Das sind so die Chassis-Bauelemente. All diese vier Komponenten werden über jedem Chassis finden. Ich habe noch keins gesehen, was kein Strom hat. Ich habe keins gesehen, was nicht gekühlt hat. Und elektrische Verbindungen haben sie auch alle. So Energie im Chassis. Netzwerker sind alle etwas komisch, weil die kommen eigentlich aus der Telefoniewelt. Die denken alle in 48 Volt. Das heißt, alles, was in diesem System stattfindet, geht als 48 Volt rein. Da habe ich auch 48 Volt-Netzteile daneben, weil es ist halt Telco-Equipment. Das kann dann zu so lustigen Effekten führen, dass ich auch Router habe, die nur 48 Volt können. Da kann der D6-Lied von Singen, die haben sich neue Plattformen aufgebaut. Da war der Rechter auf dem Bild der entsprechende Router. Der gibt es nur mit 48 Volt. Haben aber die Rechenzentren nicht gehabt. Neben jedem Router steht ein komplettes, räkvollen Netzteile. Sehr energieeffizient kann man machen. Man reht da über richtig viel Strom. 120 Amper pro Power-Rail bei 48 Volt sind normal. Das heißt, wenn man so ein Ding mal aufmacht und reinguckt, dann hat man da irgendwie kupferbaren Drinnen. Die sind mehr als daumendig. Und da ist der Strom auch wirklich drauf. Ich habe das einmal gehabt, Router transportiert, hat sich in drinnen eine Schraube gelöst zwischen zwei Rails. Eingeschaltet, die Rauchwolke war faszinierend. Beim Ausbau war es auch so ein Fall von wegschmeißen. Kriegt man nicht mehr wieder raus. Mittlerweile hat man so lustige Effekte wie Zoning in den Dingern. Das heißt, ich habe etwas, was ich für Netzteile, die aber nicht irgendwie N plus 1 redundant sind, sondern immer 2 gehören zusammen und versorgen eine Zone, weil man mit einem Netzteil oder gemeinsam geschehrt nicht mehr machen kann. Netzteile sind auch irgendwie etwas größer und etwas schwerer. Wenn man sich, oops, das ist zu weit, der hier, so ein Netzteil anguckt, das ist aus dem Juniper M40. Da gehen 32 Ampere, 230 Volt raus und hinten fallen 60 Ampere, 48 Volt raus, plus ein paar Hilfsspannungen. Das Ding wiegt ungefähr 10 Kilo und davon stecken vier Stück in so einem Router. Mittlerweile ist es so weit gegangen, dass ich Router habe, da komme ich mit 32 Ampere nicht mehr aus. Rechts ist eine Zeichnung, ich habe leider keine Fotos davon bekommen. Das ist ein Juniper MX960. Die Netzteile stehen so weit hinten raus. Das ist eine zweite Generation, die etwas mehr Strom braucht und wenn man sich das genau anguckt, habe ich hier oben einmal einen Stromstecker und einmal hier unten. Das ist ein bisschen amerikanischer Wahnsinn, weil bei 110 Volt kriegt man die Ampere nicht hin, also hat man gesagt, wir bauen einfach zwei Stecker rein. Dann hat man irgendwann gesagt, okay, wir machen das jetzt auch Europa auch, bitte schließt beide an, jeweils zweimal 16 Ampere, wir verteilen das schon intern, das funktioniert. Dann steht man halt wieder da und sagt im Rechenzentrum, das ist 32 Ampere, dann gucken die ja einen ganz groß an und sagen, das ist nicht geplant. Es ist auch total ungewohnt, dass Leute Router reinstellen. Zu Hause 12 Volt Netzteil, ein Ampere, das geht. Muss man ja nur hochrechnen. Was kann so eine Fritzbox? Mittlerweile 3, 4 Gigabit, braucht ein Ampere, habe Router mit ein Terrabit, kann ja nicht so viel brauchen. Dann die nächste Baustelle, die in sowas immer mit drin steckt, ist Cooling. Das ist auch so eine ganz furchtbare Baustelle, wo man jahrelang daran gearbeitet hat, dass man das mal richtig hinbekommen hat. Weil Rechenzentrum haben mittlerweile die Idee, Eingang ist kalt, Eingang ist warm, Luft wird von vorn nach hinten gezogen. Das ist aber irgendwie erst 2000 modern geworden, das heißt, Netzwerkersteller haben das erst zu 2010 verstanden. Es gibt genug Geräte, die man kaufen kann, die den Luftstrom von links nach rechts saugen, also am besten von der warmen Seite, dann durch das Gerät schieben und funktioniert nicht. Alles, was heute irgendwie größer ist, ein bisschen mehr Strom verbraucht, hat auch ein Cooling-System Front to Back. Und da geht verdammt viel Strom rein. Wenn ich mir das hier angucke, ich habe hier so ein Lüfter-Tray, davon habe ich in einigen Kisten 12 Stück drinne. Da fließt so ein bisschen was. Das Beste, was ich gesehen habe, war eine Kiste, die 128 Lüfter eingebaut hatte. Das war dann der Fall von einschalten, das Gerät darf nur eingeschaltet werden, wenn es ins Reck eingeschraubt ist. Ihr lacht, die Kiste wog 350 Kilo, wir mussten mit vier Leuten bewegen, aber beim Einschalten bewegte sie sich im Rechenzentrum. Es gibt dann auch so lustige Effekte, dass die Lüfter-Schlitze bei den Dingen etwas größer sind und man da versehentlich ein Zettel Papier vorhängt. Der wird angesaucht, da hängt er erst mal fest und irgendwann macht Flöp und hinten raus liegen Zipfel. Das ist schmerzhaft. Und was schätzt ihr, was so ein Router an Strom für die Kühlung braucht? Wer meint, dass er mehr als ein Kilowatt braucht? Mehr als zwei, mehr als vier, mehr als fünf, mehr als sechs, mehr als sieben, Auszug aus dem Handbuch zum Thema Stromberechnung bei einem aktuellen, ganzen Reckrouter. Ja, da gehen 6.800 Watt nur an Lüfter rein. Die Kiste selbst hat ein Gesamtstromverbrauch von 22 Kilowatt. Man arbeitet in etwas anderen Größenordnungen und wenn man da nicht aufpasst, wird zu warm, die Kisten schalten sich ab oder sie gehen kaputt. Da hilft dann der Trick gegen die Kisten auf den Mount Everest zu stellen. Das war gerade die aktuelle Variante, die Cisco bei aktuellen Maschinen geschwoben hat. Sie haben neue Line Cards rausgebracht. Der Luftstrom war aber nicht stark genug, die Dinger zu kühlen, weil sie haben es halt im Labor probiert, irgendwo auf Seehöhe. Da war die Luft dick und kühl. Die ersten RZs kamen raus und dann fingen an die Line Cards abzubrennen. Dann stellte man fest, wir haben ja gar keine Möglichkeit eingebaut, dem User die Möglichkeit zu gehen, zu sagen, drehen mal etwas schneller. Die endglötige Lösung war dann irgendwann ein Bug Fix. Zwischendurch haben sie gesagt, wir haben da eine Option, mit der du die Höhe über Null einstellen kannst, weil oben mit die Lüfter etwas dünner. Das ist eine schnelle Route auf Mount Everest und betreibt sie nicht höher als 2.000 Meter. Passiert. Wenn man clever ist, sorgt man dafür, dass die Line Cards sich einfach vorher abschalten. Aber auch das ist nicht immer unbedingt gegeben. So Line Cards haben verschiedene Revisionen. Ich erinnere mich daran, dass ich irgendwann mal die Revision A2, eines Feststellers hatte. Da waren so vier sehr kleine Kühlkörper drauf. Die Karte hat genau eine Woche überlebt. Dann kam irgendwann Revision A16. Ich hatte mehr Kühlkörper als Karte. Man lernt dazu. Dann im Chassis hat man entsprechend eine Mit- oder Backplane. Das ist eigentlich nur so ein dummes Stück PCB. Das versucht man möglichst einfach zu halten. Das tut einfach nur Strom verteilen, Datenleitung verteilen. Je weniger komplex es ist, desto länger kann man es behalten. Wenn ich mir das hier angucke, ich habe hier oben die Anschlüsse für meine Line Cards. Die sind einfach noch relativ klein. Hier rechts ist der Stromanschluss. Die nächsten Slots sind etwas größer, aber ich habe nicht mehr gedacht, eine Fabrik einzubauen. Da kommen aber etwas später zu, warum die mehr Anschlüsse hat. Das Ganze kann man natürlich hochskalieren. Die größten Backplanes, die ich gesehen habe, waren wirklich 1,50 Meter lang. Mit oder Backplane, es kommt darauf an, wie sich der Hersteller entscheidet, was er bauen will. In der Mitplane steckt sie mitten im Router. Das heißt, von hinten schiebe ich Netzteile und irgendwelche Karten rein. Genau das gleiche von vorne. Das ist das, was man sehen hat. Direkt stehen alle an der Wand, da ist nie gedacht worden, dass da jemand an die Rückseite muss. Dann sind die Geräte im Zweifelsfall auch mal zu tief oder ähnliches. Telekom, Telco-Standort, da sind direkt nur mal 30 Zentimeter tief. Da kriegt man kein Server und nichts rein. Die Raumtemperatur liegt auch bei 38 Grad, weil eine gute Siemens-EWSD kommt das ja ab. Dann kommt man und sagt, ich hätte gerne hier 100 Gigabit. Dann stecken da drin irgendwie die ganzen Planes. Data und Control Plane. Control Plane ist eigentlich relativ simpel. Da stecken irgendwie zwei Control Modules drin. Das sind irgendwelche PCs, die irgendwelche magischen Kontrollen machen. Es gibt irgendwo ein Chassis Controller. Das ist eigentlich nichts weiter als ein furchtbar nerviger I2C-Multiplexer. Jede Komponente, die man in so einem Router drin hat, spricht I2C eigentlich nur für zwei Dinge. Wer bin ich oder was bin ich, damit sie sich entsprechend anmelden kann und bitte schaltet mich mal ein. Das führt aber halt dazu, wenn ich will, ich so ein Ding habe mit Lüftern, Line Cards, Optiken. Dass der größte Router, den ich jemals gesehen hatte, hatte insgesamt 2.600 I2C-Slaves. Das ist ziemlich eklig, tut weh und geht auch gerne mal schief. Also es gibt dann so Router, wenn man da dann irgendwas reinsteckt, was das I2C nicht sauber spricht, sendet die ganze Kiste ab. Die Control Plane spricht, wie gesagt, I2C nach unten zur Data Plane, da gibt es gleich noch irgendwie eine richtig dicke Verbindung, PCIe oder Ivernet, wo halt dann die Steuer- und Nutzdaten rübergehen, wenn sie sich einmal geeinigt haben, was eigentlich da ist und was eigentlich funktioniert. Die Data Plane selber besteht eigentlich nur aus zwei bis drei Komponenten. Zum einen habe ich die Fabrik und dann habe ich irgendwelche Line Cards die Dinge tun. Da gehe ich gleich auch nochmal ein bisschen genauer drauf ein, weil da wird es eigentlich spannend. Die Control Plane, die gesagt mit dem Chassis Controller, ist halt die Source of Two für das Chassis. Das Teil weiß, was jetzt angeblich wirklich drin steckt und ist dafür autoritativ, macht die Energieverwaltung und die Thermoverwaltung, hat meistens nochmal irgendwie ein eigenes, zusammengefundetes Real-Time-Betriebssystem. Darum wäre das irgendwie kennt, wenn man einen größeren Netzwerkgerät, sei es ein Switch- oder Router reinsteckt, drehen erstmal alle Lüfter auf Volldampf. Das liegt daran, das Betriebssystem ist nicht gestartet, wir haben noch keinen Thermomanagement, also geben wir einfach mal Gas. Vor allen Dingen bei Kollegen sehr beliebt, wenn man erstmal einen Kaffee holen geht, weil in 10 Minuten ist der leise, ich bin an der Kaffeemaschine. Spannenderweise steckt dann da irgendwie so eine Control Module oder Routing Engine, jeder Hersteller nennt es ein bisschen anders drinnen. Das Ding ist eigentlich nur ein PC. Das heißt, da steckt wirklich ein X86-CPU drinnen oder irgendein PowerPC, wenn es halt billig sein musste. Das Ding trifft die Routing-Entscheidung, das heißt, da laufen die Routing-Protokolle drauf, aus den ganzen Daten, die gesammelt werden, entsteht eine Forwarding Information Database, das ist die FIP. Da steht dann wirklich exklusiv drinnen, wenn ein Paket mit diesen Eigenschaften reinkommt, dann bitte auf dem Port mit den Eigenschaften daraus schicken. Das ist das, was die Data Plane bekommt. Im Regelfall sind das Ding irgendwie 2 drinnen, weil so ein PC kann mal kaputt gehen. Da stecken auch nur SSDs, stink normaler RAM drauf. ETC-RAM ist meistens, ne, das wäre ja teuer. Man muss wissen, wenn man so ein Router für eine Million kauft, dann müssen halt an Centartikeln gespart werden. Passiert immer wieder. Und die Dinger synchronisieren sich halt in irgendeiner Art und Form magisch. Jeder Hersteller macht das anders. Keiner verrittsalben so wirklich, wie es funktioniert. Da gibt es wirklich die Variante. Ich synchronisiere mir hart meine Tabellen, die ich im Speicher habe, über irgendwelche Shared-Memory-Varianten, mit Varianten. Ich sniffer einfach den Treffig mit, der auf die Primäre geht. Schau mir an, was da passiert ist. Führe die gleichen Berechnungen durch, weil dann müsste ich ja das gleiche Ergebnis haben. Und wenn es dann umschaltet, funktioniert ja alles weiter. Es ist immer so ein bisschen speziell. Ich persönlich bevorzuge, ist die Dinger immer so zu betreiben. Wenn hier eine ausfällt, dann habe ich halt mal gerade ein Netzwerkausfall. Und dann kann die anderen die Verbindung neu aufbauen, statt irgendwelche Syncs zu haben, die grundsätzlich schief gehen, zu lange dauern oder die Kisten aufhalten. Das ist mal so eine Routing-Engine, wie sie in einem Juniper drin steckt. Das ist jetzt eine etwas ältere Generation, die müsste Baujahr 2004 oder 2005 sein. Die sind bei uns gerade überall rausgeflogen. Da steckt irgendein Zeleron drauf. Der steckt da halt hier drinnen. Ganz normaler Chipset drinnen. Sind halt passiv gekühlt, weil der Luftrumm im Router ist normalerweise groß genug. Ich sagte ja, man muss ein bisschen sparen. Da steckt nur eine 1 GB Compact-Flash-Karte drauf. Wie gesagt, 2008, Speicher ist teuer. Das Gleiche gilt irgendwie für die Festplatten. Das sind dann halt auch irgendwie gerne mal günstige Platten gewesen. Mittlerweile werden eher Enterprise-SSDs oder Industrie-SSDs verbaut, die nicht mehr kaputtgehen. Und auch der Ramm ist stinknormal. Ja, da steht nur der Preisliste mit 10.000 Dollar. Aber es ist stinknormaler Ramm, den man da einfach reindübeln kann. Nach vorne weg habe ich irgendwie einfach einen USB-Anschluss und ich mal was restoren will. Zwei serielle Ports. Wer das Netzwerkgeräten arbeitet, kennt das. Der eine ist für Modem gedacht, wenn man sich mal einwählen will, weil wir sind ja in 2010 oder 2020. Da wird das immer noch dran sein. Der zweite normal für die Konsole und als drittes ein Management-Evernet-Port, mit dem ich den Router halt steuern kann, wenn meine Data Plane noch nicht da ist. Kontrollplane ist eigentlich wie... Mittlerweile läuft er fast über allen Linux drauf. Juniper nutzt ein FreeBSD. Mittlerweile mit einem Linux unten drunter. Das Linux startet ein KVM, dem ein FreeBSD läuft. Gerüchteweise ist das super, weil dann kann man schneller ein neues FreeBSD starten. Ich behaupte einfach, das FreeBSD ist so einfach alt, dass man es nicht mehr auf neuen CPUs gestartet bekommt. Da hilft dann halt ein QEMU. Ansonsten Linux wie X-Works. Einige haben was Eigenes geschrieben. Cisco hat lange Zeit halt IOS gehabt, was wirklich ein eigenes Ding war. Jetzt lassen wir das IOS als IOS-D in Linux laufen, weil Betriebssysteme schachtelt man gerne. Wir kennen das ja alle Docker, Docker, Docker. Ein bisschen Cyber rein, dann hilft das ganz viel. Die Dataplane ist eigentlich das spannende Teil. Besteht halt aus zwei Komponenten, die sich wieder auffädeln. Ich habe in der Mitte meine Fabrik und habe irgendwie dann daran gedübelt meine Line Cards. Fabrics, ich habe hier drei eingezeichnet, ist immer so eine Frage, was ich als Fabrik bezeichne. Einige Leute sehen das als eine Karte. Einige sehen das als Gesamtes. Wenn man sich eine Karte anguckt, können aus unserer Karte auch mal 64 einzelne Fabrikchips sein. Im Regelsaal hat man immer drei oder mehr, ist aber eigentlich auch total egal. An die Fabrik gedübelt sind irgendwelche Asics, die irgendwelche magischen Dinge tun oder eine Sammlung von Asics. Mittlerweile werden die gerne mal wieder gesplittet. Dann wird irgendwie wieder das Silikon ein bisschen günstiger oder kleiner. Dann schiebt man wieder einen einen Chip. Das ist irgendwie so die große Magie. Das ist bei jedem Hersteller irgendwie aus der Hexenküche. Während ich eine Fabrik noch normal kaufen kann, wird das bei den Asics für richtig große Router ziemlich schwer. Es gibt noch genau zwei Hersteller, die allgemein verfügbar welche bauen. Aber die werden irgendwie gerade nicht mehr so wirklich eingesetzt, weil irgendwann gesagt wurde, wir entwickeln wieder unsere eigenen, weil das ist ja super vorteilhaft und ganz schlimm. Vorne am Asic hängt irgend von Interface dran, was auch immer das für ein Ethernet-Interface ist. Eventuell ist das noch eine eigene Adapter-Karte, die halt irgendwie aus 40G, 4x10 oder ähnliche Dinge tut. Alles total speziell. So eine Fabrik ist eigentlich ein Serdes-Switch. Serdes sagt jeden was? Serdes ist Serial, Deserial, einfach ein serieller Link. Du hast dann einen Chip, der hat einen ganzen Stapel Lanes, die irgendwie nach vorne und nach hinten weggehen. Input-Output-Lanes. Und da werden Pakete reingekippt. Oder Cells oder Frames, auch immer du es nennst. Die Fabrik hat eine bestimmte Eigenschaft. Sie verarbeitet immer nur gleich große Pakete. Das heißt, wenn du eine Front- und Ethernet-Frame hast, der kann ja von 64 bytes, was aus Minimale ist, bis irgendwie 9216 oder so, was der allgemeine Maximalstandard ist, einige können mehr. Und das ist ja nie klar, was ankommt. Der Asic verteilt alles in gleich große Einheiten, um sie hinten zur Fabrik zu geben und schiebt da vorne vor, irgendwie einfach nur in so ein Routing-Target, wo es hin soll. Die Fabrik muss einfach super schnell sein. Das heißt, das Target ist willig im Zweifelsfall einfach nur welche Output-Porters haben soll. Und dann geht das super schnell durch die Gegend. Kannst du eine lineare Liste haben mit all deinen Ports, du hast was, was ich, 64 Ausgangs-Ports, dann hat man relativ schnell seinen Ziel gefunden. Das liefert dir halt eine garantierte Performance und du weißt halt auch genau, mit welcher Latence da irgendwas durchgeht. Mittlerweile ist man da weit dazu übergegangen, in den ganzen Kram irgendwie einfach PCI-Switches reinzudübeln. Das heißt, ich habe meinen PCI Express, was ich mit seinen 128 Lanes, jede Lane geht irgendwie an einen Fabrik-Chip, davon habe ich halt parallel im Zweifelsfall 128, so komme ich auf meine Bandbreite. Die Line Card ist dann der komplizierte Bauteil und eigentlich da, wo auch das ganze Geld reingeht. Ich habe mir aus Spaß mal vor ein paar Tagen angeguckt, die größte Line Card, die ich gerade kaufen kann, hat zwölf mal 100 G und hat einen Listenpreis von 2,2 Millionen US Dollar. Da steckt das Geld drin. Wie ist eine Line Card eigentlich aufgebaut? Ich habe vorne ganz klassisch irgendein Ethernet-Interface, eventuell eins, eventuell mehrere. Es kann sein, dass eine Line Card, alles was hier gemalt ist, mehrfach hat, weil es einfach günstiger war, oder weil der Chip nicht schnell genug war, was auch immer passiert. Dann habe ich meinen ASIC, habe einen S-RAM, das heißt, das ist reiner Speicher, der aus Transistorien gebaut ist, der super schnell ist, der keinen Refresh-Brauch wie die WAM oder ähnliches. Schweine-Teuer ist da aber mit drinne. Ich habe einen T-CAM. Sagt euch Cam was? Eher nicht, okay. Cam ist Conditional Access Memory. Das heißt, normalerweise habe ich ein Speicher und sage, ich hätte gerne die Page, die an einer bestimmten Adresse steht. Conditional Access Memory schiebt noch mal eine Layer davor, indem man mehr oder weniger Dinge auf Adressen mapen kann. Das heißt, ich kann sagen, gib mir bitte die Informationen, die du im Speicher hast für eine IP-Adresse. Es ist einfach nur ein translation Layer, der einfach furchtbar schnell ist und damit wir Dinge tun kann. Man kann das Ganze dann ganz viel treiben, den man ein T-CAM baut. In einem Cam muss ich immer absolute Werte eingeben, Null oder Eins. In einem T-CAM kann ich auch sagen, für diese Stelle an diesem Bit weiß ich es nicht. Das setzt sich einfach ein Wildcard ein, finde mir Dinge. Der wird zum Beispiel genutzt, um dann entsprechende Firewall-Regeln und Ähnliches zu finden. Da will man keinen Absolute-Match haben, man kann auch nicht irgendwelche wilden Suchen treiben, weil das einfach zu lange dauert, sehen wir gleich. Dann gibt es unten noch ein D-Bam, der damit dran hängt. Der ist einfach zum Zwischenspeichern der Pakete da. Dann hat so eine Linecard im Regelnfall eine eigene CPU. Das heißt, ich habe oben meine Control-Plane, die schiebt irgendwie Daten runter. Die schiebt die zur Linecard-CPU, die die Sachen dann entsprechend umsetzt in die saten Tabellen für den T-CAM und für den S-WAM. Im S-WAM stehen dann zum Beispiel die Routing-Tabellen, ähnliches. Weil S-WAM und T-CAM halt so teuer ist, hat man halt das Problem, wie viele Routen kriege ich auf so eine Linecard. Das ist immer so die relevante Frage, weil Geschwindigkeit ist nur die eine Sache. Die Frage ist, kriege ich da all meine Routen rein. So eine Full-Table im Internet, das waren mal schöne Zeiten, da sind dann ganz viele Router gestorben, als 256.001 kam, weil es ging nicht mehr. Dann ging das natürlich weiter und dann kamen 512.000. Mit 512.001 passiert wieder das Gleiche. Zich-Router-Staben. Mittlerweile, ich weiß gerade nicht, wo genau die Größenordnung der Tabelle liegt, aber wir müssten uns irgendwo bei 800.000 oder so bewegen. Dann kommen auch IPv6 mit dazu. Da merkt man, der Speicher wird eng. Und darum ist das hier so ein bisschen das Problem. S-WAM, T-CAM ist richtig teuer und darum versucht man dran zu sparen. Wie gesagt, ein Linecard, die kostet 2 Millionen, da kann ich nicht für 1.000.000 noch einen zweiten Chip draufkleben, der halt dafür sorgt, dass das Ding in die nächsten 10 Jahre läuft. Dann mache ich mir ja mein Geschäft kaputt. Der ASIC hinten raus spricht dann zur Fabric. Der ASIC, wenn er die Pakete bearbeitet hat, dann sind die komplett fertig bearbeitet. Das heißt, er schickt ein umgeschriebenes Paket mit allen Informationen raus, dass die andere Linecard die Daten nur noch annehmen muss, das Paket wir zusammenbauen muss, da sind die Fabriken immer kleine Einzelteile rein und es direkt raus schicken kann. Das heißt, die komplette Bearbeitung eines Paketes erfolgt im Regelfall auf der Eingangslinecard. Es gibt ein paar Ausnahmen, wenn ich anfange, ekelige Dinge wie Age-Quests zu machen, Quests ist Quality-of-Service. Ich fange an Pakete halt zu limitieren, Bandbreitmanagement zu machen. Das mache ich normalerweise auch auf der Eingangslinecard. Wenn ich anfange, Age-Quests, das steht für Heweggil-Quests zu nutzen, dann kann ich das an verschiedenen Stellen machen. Das heißt, wenn es die Fabrik verlässt und auf der Ausgangs-Linecard, dann brauche ich mehr Speicher und die Karten werden noch mal etwas teurer. Ist aber auch nur so ein Feature für Leute, die Mängelverwaltung machen. Wir wissen ja, Telekom-Glasfaser wegbringt. Da braucht man natürlich Quests, wenn jeder 2010 Gigabit und Gigabit hätte, was mit Glasfasertechnisch problemlos machbar wäre, brauche ich mir diesen ganzen Scheiß nicht mehr. Aber so passiert das. Der Asic. Da passiert die Magie. Alles, was da passiert, ist streng geheim, patentiert. Und wenn du irgendwas erfahren willst, unterschreibst du ein NDA. NDA, Non-Desclosure Agreement, es sind die Amerikaner immer groß drinnen. Wenn du irgendwas verrätst, was hier drinnen steht, bitte dein erst geborenes, dein zweit geborenes, deine Seele, und noch mal irgendwie 50 Millionen, weil das ist halt dieses Geheimnis wert. Da darf man eigentlich nicht allzu viel zu sagen. Aber so ein paar Dinge kann man halt einfach tun, weil sie mittlerweile allgemein bekannt sind. Ein paar Dinge stehen in Handbüchern. Und ein paar Dinge kann man einfach auch rausfinden, wenn man mal im Debug viel Ei rumfummelt. Warum ist der Asic eigentlich so speziell, so teuer? Und wenn ich mir jetzt so das angucke, eine Fritzbox, die kriegt wie gesagt ihre 3-4 Gigabit mittlerweile hin. Wenn ich das hoch skaliere, müsste das ja alles eigentlich gar kein Problem mehr sein. Und irgendwie, ich kann Switch kaufen, der hat mittlerweile 3200 Gigabit-Ports. Warum geht das eigentlich beim Router nicht? Und wo liegen eigentlich da die Herausforderungen? Macht man einfach mal so ein bisschen Mathematik. Ich habe so ein Router, der hat jetzt ein 100 Gigabit-Port. Die kleinste Package, das heißt, die ich da reinschieben kann, IP sind 64-byte. Wenn man das ganze Wolfram Alpha vorwirft, weil man ist ja faul, dann kommt da irgendwas bei 1,9 mal 10 hoch 8 Pakete pro Sekunde raus, die da reingehen und die bearbeitet werden wollen. Was heißt jetzt eigentlich bearbeitet? Wenn ich so ein ASIC habe, ich habe den jetzt mal ganz massiv zusammengeschrumpft, der guckt sich jetzt wirklich nur IP an und Layer 2, alles, was da noch zusätzlich kommen kann, verkompliziert das Ganze. Als Allererstes, was so ein ASIC macht, er guckt auf die Ethernetchecks an. Warum? Jeder Schritt, den er im ASIC stattfindet, kostet Zeit. Zeit ist ziemlich wertvoll, weil ich habe halt so viele Pakete und wenn ein Paket kaputt ist, aber was da Rest da drinnen steht. Also gucke ich mir die Checks an. Dann fange ich an zu filtern. Das Paket, was da reingekommen ist. Ging das an die Broadcast-Adresse? Dann muss ich es mir vielleicht angucken. Ging es an mich selber? Dann muss ich es mir angucken. Oder ging es an irgendeine der virtuellen MAC-Adressen, weil ich VRP oder Multicast, OSPF, ähnliche Dinge spreche, auch nur dann muss ich es mir angucken. Die Filterliste läuft gegen T-CAM, weil es ist da am einfachsten, am schnellsten zu realisieren und sie ist halt nicht groß. Normalerweise hat man da nie mehr als 10 Einträge in dieser Liste. Diese Liste lässt man sich auch ab und zu mal anzeigen, wenn man die passenden Diba-Kommandos kennt, weil das ist ja geprüft, das geht ja nie schief. Und dann hat man halt irgendein Hersteller, der sagt, ja, ich habe ja VRP mit virtuellen MAC-Adressen probiert, mit genau einer VRP-Instanz, wie du hast 500. Ja, das ist ja nie getestet worden. Als Nächstes gucken wir uns den E-File-Type an. Ist das IPv4, IPv6 ab, irgendwas, womit ich was anfangen kann. Wenn nicht, wegschmeißen. Immer wenn irgendwas weggeschmissen wird, sollte eigentlich irgendwo ein Counter hochgezählt werden. Aber Mathematik ist für Netzwerker immer ganz furchtbar schwer. Diesen Counter kann man nicht trauen. Ist leider so. Wenn das passiert ist, ist mein Layer-2-Handling abgeschlossen. Das heißt, ich schmeiße alle Layer-2-Informationen, die ich bisher hatte, weg, weil ich brauche sie nicht mehr. Ich weiß noch, welchen WLAN das Paket noch kam. Das wird in die Metadaten geschrieben. Aber der Rest, was interessiert mich die Source or Destination MAC? Das ist ja Layer-2. Weg damit. Im Layer-3 wird es dann wieder ein bisschen komplizierter. Das erste, was ich mache, ist auch wieder die Checksam prüfen. Dieses IP-Paket, was da kam, eigentlich gültig. Da fallen auch noch ein paar weitere Gegenprüfungen rein. Sind die Header eigentlich gültig? Habe ich da vielleicht ein Fragment bekommen, das irgendwie von der Länge her nicht mehr passt, obwohl die Checksam passt. Weil wir alle wissen, Speicher ist teuer. Ich sehe sie noch teurer. Und da gehen so viele Dinge schief. Man sagt mittlerweile irgendwie, dass jedes millionste Paket, was durch den Router fließt, irgendwo unterwegs kaputt gegangen ist. Wenn man sich die Anzahl anguckt, wie viel man insgesamt hat, ist das ziemlich viel. Dann passiert eigentlich der spannende Teil, das Thema Route-Look ab. Ich muss ja eigentlich gucken, was ist mein Ziel. Das passiert gegen den SWAM, das ist schön schnell. Mittlerweile machen die auch so lustige Dinge wie Hybrid Memory Cubes. Da fehlt noch ein bisschen Cyber mit drinnen, aber eigentlich haben sie nur bei den Grafikkartenherstellern geguckt, was machen die? Haben das noch mal doppelt so schnell gemacht, haben dann irgendwie viermal Spezialspeicher-Module draufgelötet, die dann irgendwie groß und schnell sind, haben dann T-CAM und DRAM alles abgeschafft, machen alles in diesen Hybrid Memory Cubespeicher. Und dann gehen halt auch Dinge schief. Weil bei DRAM hat man halt nicht mehr solche Sachen. Route-Look ab habe ich gleich noch ein paar Slides zu, weil das ist sehr spannend, was da eigentlich passiert. Danach werden irgendwie ACLs geprüft. ACLs sind eigentlich Firewall-Regeln. Wir Netzwerker nennen sie aber immer ACL, um sie von normalen Firewall-Regeln ein bisschen fernzuhalten, weil jeder, der heutzutage Firewall macht, meint, das ist Stateful. Heißt, ich habe eine Stateful-Table, ich kann mir angucken, läuft mein Paket durch und was sind die Eigenschaften? Das kann ich auf dem Router in der großen Bandbreite nicht mehr. ACLs sind einfach Stateless Filter, die irgendwie eiskalt irgendwo drauf matchen, dann gucken, passt das. Die Filter sind zum Teil wirklich so doof, dass ich sage, alles, was an Port 22 geht, schmeiß ich weg. Wenn ich jetzt da zu doof war und ich gedacht habe, dass ich TCP und UDP haben will, dann schreibt er sich einen Filter, der sagt, an dieser Stelle im Paket würde normalerweise dieses Bitmuster auftauchen. Wenn das irgendwo anders auftaucht, sein oder irgendwas anderes, dropp ich die auch. Dann muss man halt so ein bisschen aufpassen. Mittlerweile haben einige schneller Filter eingebaut, die sagen, oh, du willst auf ein Portfiltern, dann musst du aber sagen, ob das TCP, UDP oder beides sein soll. Da gibt es da so ein paar lustige Effekte, Leute, die sich Firewall Filter gebaut haben, um SSH zu verhindern auf ihre Control Plane und dann ist ihr OSPF kaputt gegangen bei einigen Paketen, bis sie irgendwann merken, ja immer, wenn der Wert 22 an diesen Bitmuster auftauchte, dann fliegt das Paket weg. Am Ende passiert ja noch so Dinge wie Quos, ich gucke mir an, darf ich dieses Paket eigentlich weiter transmitten? Das ist eigentlich das Konzept eines Leaky Buckets, das heißt, ich habe mehr oder weniger gefühlt einen Eimer, aus dem irgendwie ständig was nachfließt, unten fließt was raus und wenn dieser Eimer überfließen würde, also ich zu viele Pakete bekomme, werden sie weggeworfen. Da kann man ganz wilde Sachen tun, da kann man eigentlich sechs Stunden drüber reden, was da alles geht, wie es gemacht wird und wie es eigentlich alles falsch ist. Quos ist einfach wirklich nur Mängelverwaltung. Wenn wir meine Verbindungen zu klein werden, muss ich das Sachen tun, muss Pakete priorisieren, das sind also typische Außenstandorte, ich habe meine 10 Mbit, ich mache jetzt Voice over IP mit dem Hauptstandort und sobald irgendjemand anfängt, Backups rüber diese Leitung zu schieben, kann ich nicht mehr telefonieren. Dann fängt man an, der Voice-Traffic zu priorisieren, eklige Dinge zu tun, statt die richtige Variante zu geben, einfach mehr Bandbreite zu haben. Das ist ein ziemlich ekliges Thema. Was man früher gemacht hat, war zu sagen, ich habe ein Tweet, der entsprechend ein Traversal drüber läuft und ich finde irgendwo meine Ziele. Das ging so lange gut, wie ich keine großen Bandbreiten hatte. Ich habe da irgendwie 10 Mbit, da kann man sich hochrechnen, wie viele Pakete das sind, die maximale Laufzeit, IPv4, 2 hoch 32, ist ein bisschen doof, wenn das so lange dauert, aber damit konnte man leben. Dann 1998, großer Knall, IPv6, auf einmal war das 2 hoch 128. Was haben die ganzen Netzwerksteller gemacht, die damals davor standen? Was können wir tun, um das in die alte Plattform reinzudübeln? Niemand wird so komische Sachen machen, wie ein Slash 126 oder ein Slash 65 Netz. Wir sagen einfach, dass immer schön auf geraden Bitmasken 64, 96, 48 gerechnet wird und dann passt das schon. Das tun auch noch einige Leute heute. Ich glaube, die Jungs vom Nock können da vom letzten Kongress ein Lied von singen, wo sie Equipment hatten, dass genau mit solchen Dingen nicht klar kamen. Man hat gesagt, man braucht neue Sachen. Man hat angefangen, diese Twees zu optimieren, lustige, wilde Dinge zu tun und dann hat man irgendwann gemerkt, damit kommen wir nicht weiter. Dann hat man gesagt, okay, was können wir eigentlich tun? Ich habe gesagt, Hashtables. Hashtables sind für so was super, weil jeder, der nicht Mathematik studiert hat, ein paar Semester lang versteht es nicht mehr. Es gibt da ein paar sehr, sehr schöne Papers zu, wie das, was ich auch verlinkt habe, die ungefähr erklären, was sie machen, wie sie Dinge in die FPGAs dafür gedübelt haben. Und dann steht man da und denkt sich, okay, das heißt, wenn ich jetzt eine Hashtable habe, könnte ich mir garantieren, dass ihr den richtigen Eintracht ausfindet. Dann kommen so Aussagen wie, nee. Also, bei 3,8 mal 10 auf 9 Paketen hast du garantiert eins, dass falsch geroutet wird. Aber wir können garantieren, wenn es keine Route gibt, dass es dann nicht kaputt geht. Dann steht man da, macht es ein bisschen die Mathematik und stellt dann irgendwann so die Frage, er verkauft mir da einen Router, der hat jetzt so und so viele Ports und ihr wollt mir jetzt sagen, dass jetzt in eine Sekunde irgendwie eine Million Pakete falsch gehen. Na ja, das passiert ja eigentlich nur, das ist sehr eklig. Und dann passieren ganz viele Dinge. Ich habe vor ein paar Wochen mit einem Asic-Entwickler zusammengesessen, der mir erklärt hat, was sie da eigentlich genau tun. Das waren 3 sehr harte Stunden. Nach diesen 3 Stunden haben mir die Augen und die Ohren geblutet. Und seitdem habe ich verstanden, warum das eigentlich gar nicht so einfach ist. Aber das sind dann so die Dinge. Da steckt dann sehr, sehr viel Entwicklung drinne und die Geheimhaltung und wie sie es eigentlich tun. Das ist eine Patentveröffentlichung, wo man sich ein paar Baustellen zusammensuchen kann. Wenn ich das damit zusammenlege, was ich hier auf meiner Hardware sehe, dann ist die Wahrscheinlichkeit relativ groß, dass sie genau das an der Stelle tun. Gibt da so ein paar schöne Blog-Posts von ein paar Kollegen aus Finnland, die sich das auf den aktuellen Routern mal angeguckt haben. Mittlerweile gibt es so ein paar leichte Workthrough-Guide von einigen Herstellern, so was passiert eigentlich mit dem Paket. Aber es geht alles nicht in die Tiefe und eigentlich ist das auch immer, erst mal weg, bis du ein Router neu gestartet hast und eigentlich mögen wir dich auch nicht mehr. Das ist ja alles getestet und du musst da gar nicht rumfummeln. Da geht nichts kaputt. Das ist alles Serviceprojagqualität. Ja, und jetzt bin ich auch irgendwie schon durch mit dem kleinen Einblick, was da eigentlich passiert, warum die Dinge so sind, wie sie sind. Man kann sich jetzt vorstellen, warum wir Kisten so viel Strom brauchen, wenn da halt so und so viele Lookups laufen, die kann ich nicht parallelisieren. Und davon pro 100G-Port ein, große Router, 20 Line Cards mit je 1200G-Ports, dann kann man sich ausrechnen, was da halt passiert. Habt ihr Fragen? Alle platt gemacht, ja. Ist zufällig bekannt, was die bei Hash-Kollisionen auch machen? Was ist zufällig bekannt bei Hash-Kollisionen in der Hashtabe? Was von Algorithmus die verwenden oder ist das auch NDA? Das ist alles zufällig bekannt und das tut es auch NDA. Das ist alles strengerein, das weiß keiner so genau. Es passieren einfach keine Kollisionen. Gut, dann danke fürs Zuhören.