OpenBSD doch Cisco-Killer? Neuer Routingdaemon gestern in CVS eingecheckt.

uwerler

HabitusDD
Nachdem es seit einiger Zeit in OpenBSD native Unterstützung für die Routingprotokolle OSPF (ospfd) und BGP (bgpd) gibt, scheint sich jetzt auch einiges in Richtung RIP zu tun.

Folgendes wurde dazu auf der Mailingliste kundgetan:
Welcome ripd started by Michele Marchetto some time ago by using the imsg/three process framework of ospfd. He implemented most of the daemon with a little help and guidance from Claudio and I.
Currently the daemon is more or less complete, with the exception of key lifetime and rollover.
Not yet connected to the builds.
Damit wird OpenBSD funktional immer mehr einem vollwertigen Router-OS, entsprechende Hardware vorausgesetzt, ebenbürtig.
 
Zuletzt bearbeitet von einem Moderator:
Hallo, wollte eben den ripd aus dem CVS bauen und etwas rumspielen im Zusammenhang mit ein oder zwei Cisco Routern. Leider scheint sich da auch was an den Libs geändert zu haben:

Code:
cc -O2 -pipe  -Wall -I/usr/src/usr.sbin/ripd -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wshadow -W            pointer-arith -Wcast-qual -Wsign-compare   -c /usr/src/usr.sbin/ripd/interface.c
/usr/src/usr.sbin/ripd/interface.c: In function `if_set_opt':
/usr/src/usr.sbin/ripd/interface.c:255: error: `IP_RECVIF' undeclared (first use in this function)
/usr/src/usr.sbin/ripd/interface.c:255: error: (Each undeclared identifier is reported only once
/usr/src/usr.sbin/ripd/interface.c:255: error: for each function it appears in.)
*** Error code 1

Weis jemand, welche Lib ich neue bauen muß, damit dann IP_RECVIF bekannt ist?

danke im Voraus

marty
 
/usr/src/usr.sbin/ripd/interface.c:255: error: `IP_RECVIF' undeclared (first use in
Weis jemand, welche Lib ich neue bauen muß, damit dann IP_RECVIF bekannt ist?
Das sieht doch erstmal nach einem fehlenden Header aus!

Fall es sich um einen Standard-Header handeln sollte:

find /usr/include -type f | xargs grep IP_RECVIF
 
Nach langen Suchen gefunden: IP_RECVIF wurde am 29. Mai 2006 hinzugefügt

da ich ab und zu mal einen Kernel aus dem CVS baue (komplettes System würde auf einer SGI O2 zu lange dauern...), habe ich einfach die Datei /usr/src/sys/netinet/in.h nach /usr/include/netinet/in.h kopiert und schon klappt es mit dem compilieren

Danach habe ich mal drei Cisco Router angeklemmt und etwas mit ripd rumgespielt. Unter OpenBSD habe ich ein extra Loopback Interface lo1 angelegt, nur leider weigert sich der ripd dies zu verbreiten. Ansonsten geht alles, auch wenn RIP an sich recht träge ist ;)
 
Damit wird OpenBSD funktional immer mehr einem vollwertigen Router-OS, entsprechende Hardware vorausgesetzt, ebenbürtig.

Vielleicht etwas OT: Ich finde OpenBSD ja absolut genial, wenn es in Richtung Router, Packetfilter, usw. geht. Aber weiss jemand näheres bezüglich der Performance?
 
Also zu OpenBSD habe ich da noch nichts gefunden, hängt aber auch stark von der Hardware ab denke ich mal. Für Cisco Router ist das PDF recht interessant.
 
Also zu OpenBSD habe ich da noch nichts gefunden, hängt aber auch stark von der Hardware ab denke ich mal. Für Cisco Router ist das PDF recht interessant.

eigenlich gilt das auch fuer openbsd
um einen hoch performanten router zu bauen muss man sich von gemeiner pc hardware verabschieden das das bus und interupt system eine hohe packet leistung
nicht zulaesst.

wobei ich , wenn ich sage hoch performant , eine packetleistung von 100.000 packeten und mehr pro sekunde meine .

p.s. eine normale firewall im buissness umfeld macht ca 20-30 tausend packete pro sek.
was ca 1000 1100 interupts pro sec entspricht.

erschlagt mich nicht mit den werten die sind grob ueberschlagen und von meinem system hier abgelesen ( opteron 2 ghz , 2 gb ram intel quad 1gbit karte drin )
openbsd 3.9 current
 
Ich habe die letzten paar Stunden mit ripd und einen Cisco Router rumgespielt. Irgendwie kam ich auf die Idee, alle Routen auf dem Cisco Router mittels "clear ip route *" zu löschen. Der ripd stürzte darauf hin ab. Ich dachte mir, schreib doch mal an die Leute, die immer fleißig im CVS für den ripd commitet haben und nach circa 90 Minuten hatte ich einen funktionieren Patch im Postfach. Wow, das war echt schnell *g*
 
eigenlich gilt das auch fuer openbsd
um einen hoch performanten router zu bauen muss man sich von gemeiner pc hardware verabschieden das das bus und interupt system eine hohe packet leistung
nicht zulaesst.

wobei ich , wenn ich sage hoch performant , eine packetleistung von 100.000 packeten und mehr pro sekunde meine .
Mit FreeBSD und device polling kann man verhindern, dass die CPU/s allein mit Interruptverarbeitung beschäftigt sind. Allerdings steigt dann die Latenz und man verliert Offloading-Features.

Laut http://info.iet.unipi.it/~luigi/polling/ schafft bereits ein Athlon-750 mit idealen 64-Byte Paketen 148 kpps. Wobei man diesen Test natürlich nicht direkt übertragen kann, klar.

Wenn der Bus limitiert kann man auch einfach vier diskrete PRO/1000 PT einbauen. Dann hat jedes Interface einen eigenen PCIe-Link. PCIe ist ja ein geschaltetes Netzwerk aus Punkt zu Punkt Verbindungen. Das verschiebt den Flaschenhals dann vom Host-Bus weg in den Speichercontroller im AMD K8 und die Fähigkeiten des Hypertransport I/O-Links.

top zeigt Interrupt-Limitierung an -> entweder Interrupt Coalescing im NIC-Treiber aktivieren/tunen oder gleich device polling (beides kostet aber Latenz)
Bus-Performance limitiert -> keine Multiport-Karten einsetzen, sondern NICs mit nur einem Port und PCIe

Imho lässt sich mit diesen Möglichkeiten auch aus Standard PC-Hardware noch einiges rausholen. Wäre mal interessant, wie sich ein Woodcrest Xeon-System mit mehreren em(4) PRO/1000 PT mit Interrupt Mitigation oder device polling so gegen Hardware-Router schlägt...
 
Zurück
Oben