Suche Tipps/Anregungen für BSD-Router

Blutschlumpf

Fleet Admiral
Registriert
März 2001
Beiträge
20.627
Moin,

ich wollte mal nen kleinen Absteiger in die BSD-Welt machen. Grund dafür ist die Tatsache, dass ich auf der Suche nach nem Router bin, der ein hohe Paketanzahl verarbeiten kann.
Ich hab das Gefühl mit Linux jetzt an einem Punkt angekommen zu sein wo das System an sich zur Bremse wird.
Ich teste mit einem Dual Opteron 246 und diversen Netzwerkkarten. Da ich unabhängig von der Netzwerkkarte immer zwischen 300.000 und 350.000 Paketen pro Sekunde am Limit bin will ich die Treiber und Karten an sich mal ausschließen.
Da ich von Installationen gehört habe, die etwa das doppelte mit BSD abfackeln wollte ich das kurz antesten.

Da ich von BSD quasi null Ahnung hab und das ganze zeitlich gesehen auch nicht ausarten soll, wollte ich mal Fragen ob ihr mir vorab Tipps geben könnt:

Welches BSD ist am performantesten als Router ? (32 oder 64 bit ist mir egal, Disk-IO oder andere Belastung findet nicht statt)

Wie schauts mit der Unterstützung aktueller Netzwerkkarten unter BSD aus ? Ich hab diverse Karten mit Intel (1000MT, 1000PT, e1000), Broadcom (Tigon3, tg3) und Marvell Chips (Yukon1, skge), PCI-X und PCI-Express.

Wie aktivier ich das eigentliche Routing unter BSD ?
Sprich ich such ein Äquivalent zu den beiden Befehlen unter Linux:
echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -A FORWARD -j ACCEPT

Unter welchem Gerätenamen werden Interfaces angesprochen (also eth0, eth1 und so) ?

Gibts ein Äquivalent zu ethtool unter BSD ?

Gibts sowas wie /proc unter BSD ?
 
Zuletzt bearbeitet:
Hört sich spannend an... :)
Darf ich Fragen für was der Router dient?
Dual OPteron für einen Router im Home/Small-enterprise Bereich finde ich leicht overkill. :rolleyes:

Oder soll der zu deinen anderen Kriegern ins Rechenzentrum, aber da zahlste ja dann nur fürs Routing auch nochmal ordentlich "lagergebühr"...
Sry für meine Blöden fragen, aber ich bin neugierig... :freak:
 
Ne, das ist weniger privat, ich arbeite bei nem Provider, da gibts größere Bandbreiten als mit ner DSL-Leitung, da kann man auch mal nen Opteron brauchen ;)
Da sich mit Linux viel flexibler (und günstiger ;)) arbeiten lässt als mit Cisco und co. haben wir ne Menge Linux-Router im Einsatz (zum Kundenanschluss und für Traffic-Auswertungen), die aber alle das Problem haben, dass se ab einer gewissen Zahl Pakete (sprich bei größeren Floodings) zusammenbrechen und teilweise langsam schlichtweg an Ihre Grenzen kommen.
Nun brauchen wir mehr Power und ich hab das Gefühl, dass weniger die Hardware als mehr die Software schlapp macht.

Drum wollte ich schauen obs sich lohnt sich da in BSD einzuarbeiten und Teile zu migrieren..
 
Zuletzt bearbeitet:
Okay, hört sich spannend an. :D
Um das Softwareseitig auszuschliessen, kannste nicht schnell nen Quad Opteron/Xeon abzweigen um das zu testen?
 
Quads machen keinen Sinn, da ist Preis/Leistung total fürn Arsch.
Das System lastet übergens in der jetzigen Form nur eine CPU aus, ich glaube also nicht, dass da mehr CPUs was bringen würden.

btw: Jetzt lenk nicht vom Thema ab und gib mir BSD-Starthilfe :D
 
Blutschlumpf schrieb:
Welches BSD ist am performantesten als Router ? (32 oder 64 bit ist mir egal, Disk-IO oder andere Belastung findet nicht statt)
OpenBSD[1]. Sicher - Stabil - Zuverlaessig

Blutschlumpf schrieb:
Wie schauts mit der Unterstützung aktueller Netzwerkkarten unter BSD aus ? Ich hab diverse Karten mit Intel (1000MT, 1000PT, e1000), Broadcom (Tigon3, tg3) und Marvell Chips (Yukon1, skge), PCI-X und PCI-Express.
Keine Ahnung, inwiefern PCI-X und PCI-Express unter OpenBSD unterstuetzt werden, dafuer habe ich damit in diesem Segment zu wenig zu tun, aber deine oben genannten Karten werden aufjedenfall unterstuetzt. Naeheres dazu unter [2].


Blutschlumpf schrieb:
Wie aktivier ich das eigentliche Routing unter BSD ?
Sprich ich such ein Äquivalent zu den beiden Befehlen unter Linux:
echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -A FORWARD -j ACCEPT
Das Aequivalent zu iptables ist unter OpenBSD pf. Die wird durch eine zentrale Konfigurationsdatei konfiguriert und gesteuert. Naeheres dazu unter [3]. Mit sysctl -w net.inet.ip.forwarding=1 kannst du das Routing aktivieren.
Damit die Einstellungen auch nach einem Neustart noch vorhanden sind, musst du einfach ein Eintrag in der /etc/sysctl.conf setzen, so wie du es von deinen ipTables-Scripten auch gewoehnt bist.

Blutschlumpf schrieb:
Unter welchem Gerätenamen werden Interfaces angesprochen (also eth0, eth1 und so) ?
Die haben je nach Kartentyp einen eigenen Namen, sind aber auch in der Art wie die Linuxdevices gestrikt, mit Basisname und dazugehoerige Nummer. (zum Beispiel haben Intel-Netzwerkkarten fxp0 als Namen)

Blutschlumpf schrieb:
Gibts ein Äquivalent zu ethtool unter BSD ?
Keine Ahnung.

Blutschlumpf schrieb:
Gibts sowas wie /proc unter BSD ?

Nein, IIRC nicht, dafuer ist sysctl[4] zustaendig.

Weitere Informationen findest du noch in der offiziellen Dokumentation[5]. Bei Fragen wg. Aufbau eines Routers, etc. kannst du dich auch gerne an mich
bzw. das BSDForum[6] wenden.

[1] = http://www.openbsd.org/
[2] = http://www.openbsd.org/i386.html#hardware
[3] = http://www.openbsd.org/faq/pf/
[4] = http://www.openbsd.org/cgi-bin/man.cgi?query=sysctl&sektion=8
[5] = http://www.openbsd.org/faq/de/index.html
[6] = http://www.bsdforen.de
 
Zuletzt bearbeitet:
Blutschlumpf schrieb:
ich wollte mal nen kleinen Absteiger in die BSD-Welt machen.

Vernünftige Entscheidung.

Ich teste mit einem Dual Opteron 246 und diversen Netzwerkkarten. Da ich unabhängig von der Netzwerkkarte immer zwischen 300.000 und 350.000 Paketen pro Sekunde am Limit bin will ich die Treiber und Karten an sich mal ausschließen.

Da ich von Installationen gehört habe, die etwa das doppelte mit BSD abfackeln wollte ich das kurz antesten.

Code:
cat /etc/pf.conf: 

pass quick all

Klar, das schafft ne Menge Pakete. Nur nicht sehr sinnvoll.

Ansonsten ist die Geschwindigkeit stark von der Anzahl der Regeln, der Art der Regeln und der Verwendung der Schlüsselwörter "quick" und "keep state" abhängig.

Welches BSD ist am performantesten als Router ? (32 oder 64 bit ist mir egal, Disk-IO oder andere Belastung findet nicht statt)

Alle gleich. Aber OpenBSD bringt die Referenzimplementierung von pf mit, ich würde das nehmen, außer die Netzwerkkarten streiken.

Und Du hast eine einwandfrei funktionierende Möglichkeit, redundante Router aufzusetzen (pfsync und CARP). Wie weit die bei Net- und FreeBSD damit sind, weiß ich nicht.

Wie aktivier ich das eigentliche Routing unter BSD ?

sysctl -a net.inet.ip.forwarding=1
optional: sysctl -a net.inet6.ip6.forwarding=1

Am besten liest Du Dir die pf-FAQ durch. Ist alles erklärt, Redirecting, NAT, Qeueing.

Gruß
Morgoth
 
Morgoth schrieb:
Und Du hast eine einwandfrei funktionierende Möglichkeit, redundante Router aufzusetzen (pfsync und CARP). Wie weit die bei Net- und FreeBSD damit sind, weiß ich nicht.

Ohja, redudante Systeme bzw. Router mit OpenBSD aufzubauen machen bestimmt Spaß, und waere auch sicher was, was fuer Blutschlumpf in Frage kommen koennte. Und so schwer ist das auch nicht, BS ist ja kein blutiger Anfaenger, der hat schon Verstaendnis, um sich kurz da hinein zu versetzen. :>
 
Schwingt da etwa blanke Ironie mit, marcelcedric? :D

BTW: Ist so ein BSD-Router leistungsfähiger als ein stinknormaler Homerouter a la Netgear, D-Link und co? Ich meine jetzt im Bereich der bezahlbaren Hardware (denke nicht, dass man für ca. 10 Rechner ne Mördermaschine braucht, oder?) ...
 
porn()pole schrieb:
Schwingt da etwa blanke Ironie mit, marcelcedric? :D

BTW: Ist so ein BSD-Router leistungsfähiger als ein stinknormaler Homerouter a la Netgear, D-Link und co? Ich meine jetzt im Bereich der bezahlbaren Hardware (denke nicht, dass man für ca. 10 Rechner ne Mördermaschine braucht, oder?) ...

Nein, das war purer Ernst. :-) Kennst du nicht sein Motto? Ich hab keine Lust, ein paar aufs Maul von ihm zu kriegen. *scnr* ;-)
Naja, ich denke nicht, dass es sich lohnt, fuer zu Hause 'n Linux oder BSD-Router aufzubauen, denn fuer das Groebste reicht auch ein stinknormaler von SMC, Linksys, D-Link, etc. Gibt halt die, die sich fuer das Thema interessieren, und sich sowas auch zu Hause hinstellen. Linux/BSD oder andere Enterprise-Loesungen sind, denk ich, fuer groeßere Aufgaben gedacht, die bieten einem, wie wir Wissen, denn doch eine vielfahlt an mehr Features. ;-)
 
So, hab mal testweise FreeBSD auf ner vm aufgesetzt, bei OpenBSD bin ich an der Partitionierung gescheitert, ist schon kacke wenn man keien Ahnung hat was das Programm will und nicht weiß wie man hochscrollen soll um die Hilfe zu lesen ;)

Redundanz ist bestimmt ganz lustig, aber selbst wenn das alles funktioniert wird das ne Weile dauern bis die ganze Software für Linux auf BSD umgebaut ist, aber 2009 ist auch noch ein Jahr. ;)

Online ist die Bitch jetzt, ssh root Login funzt auch schon, jetzt kanns losgehen ;)

Hab nach 5 Minuten direkt neue Fragen:
-Wie bekommt man den aktuellen Pfad in den Prompt ?
-Usability ist wohl nicht deren Ding. Wie bekommt man Auto-Vervollständigung (also das 2x Tab drücken bei Linux) in der Shell hin ? sh und csh scheinen es nicht zu können, und bash lässt sich nicht installieren:

Code:
bsd# cd /usr/ports/shells/bash
bsd# make install clean
...
fetch: ftp://ftp.kddlabs.co.jp/GNU/bash/bash-3.1-patches//bash31-010: size mismatch: expected 1829, actual 5218
...

Die meldung dann 50 mal bis ich abgebrochen hab.
Muss ich vorher so ne Art "apt-get update" machen ?

Was ich per google finde funzt nicht:
bsd# portsnap fetch
portsnap: Directory does not exist or is not writable: /var/db/portsnap
bsd# portsnap update
portsnap: Directory does not exist: /var/db/portsnap
bsd#

Dann habe ich mir nano installiert (will hoffen BSD braucht nicht für alles so ne Ewigkeit), aber es funktioniert nicht wie es soll. Direkt über /usr/local/bin/nano gestartet läuft es, aber nicht ohne Pfad:
Code:
bsd# nano
nano: Command not found.
bsd# echo $path
/sbin /bin /usr/sbin /usr/bin /usr/games /usr/local/sbin /usr/local/bin /usr/X11R6/bin /root/bin
bsd#
Muss man da irgendwas reloaden oder cached der die ausführbaren Dateien irgendwo ?

der hat schon Verstaendnis, um sich kurz da hinein zu versetzen
Meist mangelts eher an der Lust sich mit Dingen zu beschäftigen die nicht so laufen/funktionieren wie man es von Ihnen erwartet ;)
 
Die folgenden Links sollten dir ein wenig Hilfestellung leisten.

http://www.freebsd.org/doc/de_DE.ISO8859-1/books/handbook/
http://wiki.bsdforen.de/index.php/Firewall_Regeln
http://wiki.bsdforen.de/index.php/FreeBSD_-_FAQ
http://wiki.bsdforen.de/index.php/FreeBSD_-_FreeBSD_für_Umsteiger
http://wiki.bsdforen.de/index.php/FreeBSD_-_Ports
http://wiki.bsdforen.de/index.php/FreeBSD_-_Portstree_benutzen
http://wiki.bsdforen.de/index.php/FreeBSD_-_cvsup_in_einem_Rutsch
http://wiki.bsdforen.de/index.php/FreeBSD_-NuetzlicheTools

Der Benutzer hat unter FreeBSD als Default-Shell die sh, root hat csh. Wie du dort Auto-Completion, wenn dies bei der sh ueberhaupt geht, oder den Pfadnamen im Prompt anzeigen lassen kannst, weiss ich nicht. Und nach dem Programme installieren bzw. kompilieren mit der Shell musst du ein rehash ausfuehren, oder dich neu anmelden, dann findet er das Programm auch. Alles andere sollte in den Dokumenten oben beschrieben sein, keine Angst, das ist nicht viel.
 
Blutschlumpf wrote:

Redundanz ist bestimmt ganz lustig, aber selbst wenn das alles funktioniert wird
das ne Weile dauern bis die ganze Software für Linux auf BSD umgebaut ist,

Redundanz unter OpenBSD ist zum Beispiel mit Carp innerhalb weniger Minuten zu
machen. Soll das ganze z.B. mit BGP funktionieren hast du auch schon eine kostenlose
Alternative mit OpenBGPD.

Wie bekommt man den aktuellen Pfad in den Prompt ?

man shellname (man bash, z.b.)

Rest kann ich dir nicht genau sagen, ich nutze FreeBSD nicht. Aber anstatt das Portssytem
zu verwenden, kannst du dir auch die Bash als Binary-Package runterladen. z.b.

ftp2.de.freebsd.org -> pub/FreeBSD/releases/6.1-RELEASE/packages/shells/
 
Blutschlumpf schrieb:
Was ich per google finde funzt nicht:

Gegen grundsätzliche Fehler kann BSD nichts. Google ist ein grundsätzlicher Fehler.

Bei FreeBSD gibt es das Handbook, bei OpenBSD die FAQ und die man-pages, bei NetBSD die Doc.

Das Problem mit dem Partitionieren hättest Du z. B. bei vorheriger Lektüre von http://www.openbsd.org/faq/faq4.html nicht gehabt.

Bei den BSDs ist Google die allerletze Anlaufstelle.

Gruß
Morgoth
 
Nur so am Rande, hab die Sachen soweit ans laufen bekommen, ist aber auch nicht schneller gewesen als das Debian-Equivalent, eher das Gegenteil.
 

Ähnliche Themen

Zurück
Oben