FreeBSD als Gateway

Ich wollte in meinem FreeBSD-Server die Gateway-Funktion nutzen. Ich habe zwei Netzwerkadapter in zwei verschiedenen Netzen. Für das eine Netz (re1: 10.0.0.1) laufen erfolgreich named und dhcpd mit dynamischen Updates. Das andere Interface (re0: 192.168.2.51) hängt mit dhcp-Client am Router. Als default gateway habe ich auf dem Server völlig richtig 192.168.2.2 und bekomme problemlos Internetzugriff.
Der DHCP gibt an die Clients als Gateway 10.0.0.1 weiter. Nun habe ich noch auf dem Server in der rc.config
gateway_enable="YES"
angegeben.
Ich hatte es nun so verstanden, dass ich nun von den Clients durch das FreeBSD "durchkucken" können müsste. Das geht aber nicht. Ich kann von einem Client an re1 zwar beide Netzwerkkarten des Servers anpingen, aber nichts, was "draußen" liegt.

Erkennt irgendwer meinen Denkfehler? (Später soll dann IPFW genutzt werden, allerdings wüsste ich gern erstmal meinen Fehler, warum die einfache Durchleitung nicht funktioniert.)
Danke im Voraus!
 
gateway_enable setzt ip.forwarding auf 1, sobald man neu gebootet hat. Am einfachsten kannst du dir helfen, wenn du vom einen Netz ins andere pingst und auf dem Gateway tcpdump icmp laufen lässt. Das 2er-Netz kennt die Rückroute nicht. Deswegen aktivierst du in deinem Fall vielleicht NAT:
Code:
nat on $ext_if inet from !($ext_if) -> ($ext_if:0)
Wäre ein Beispiel für pf. Wie du das bei IPFW umsetzt weiß ich nicht, sollte aber machbar sein.

HTH
 
@gadean: ja, die sysctl-Variable hatte ich auch schon geprüft, war gesetzt.

@Columbo: Danke, Treffer!
Der Host 192.168.2.2 kennt den Rückweg ins 10.0.0.0er Netz nicht. Ich habe auf diesem Linuxhost jetzt testweise händisch die Route hinzugefügt:
# route add -net 10.0.0.0/24 gw 192.168.2.51
– und schon funzt es. Ich werde das wohl dann mit NAT lösen.

Vielen Dank euch Zweien für die schnelle Hilfe!
 
Das einfachste wäre natürlich die Route auf dem Standardgateway im 2er-Netz zu setzen, sofern das möglich ist. Dann erübrigt sich auch das NAT. Das habe ich nur als Lösung vorgeschlagen, damit du nicht auf jedem Rechner im 2er Netz die Rückroute manuell setzen musst. Denn das 2er-Netz erreicht per NAT dann immer noch keinen Rechner im 10er-Netz. Es geht mit NAT also nur in die eine Richtung.

HTH
 
Das Standardgateway im 192.168.2er Netz ist ein kleiner Linux-Knecht, welcher vom FreeBSD abgelöst werden soll. Ich werde das FreeBSD NATen lassen und versuchen, den noch darüber liegenden Router in Modem-Betrieb zu nehmen, am besten so, dass ich meine externe IP direkt am FreeBSD anliegen habe. Dann bräuchte ich keine Klimmzüge machen, um meine externe IP zu erfahren, die ich wiederum zum Updaten des dynamischen DNS benötige. Ich versuche mich jetzt erstmal an NAT+IPFW. Wenn von draußen die Clients nicht erreichbar sind, ist das OK.
Da könnte ich später nochmal mit VPN rumexperimentieren, aber das ist nicht lebenswichtig. Der FreeBSD-Server soll dann noch einen Mailserver beherbergen, der per RPOP die Mails abholt und lokal speichert. Das mache ich, um damit ich alte Mails sorglos behalten kann, ohne an Quotas in meiner Domain anzuecken.
Ich bin hier sozusagen nur der Hobby-Admin für meinen Kleinbetrieb, deswegen hab ich nicht viel Ahnung, möchte aber irgendwie bissel mitspielen. :-) FreeBSD begeistert mich, da es eben ein richtiges Unix ist und meine Mac-Clients untenrum zumindest ähnlich sind. Bin ich zu doof, dann hilft mir hier die Community mit knackigen Antworten, statt erstmal zu fragen, warum ich das will – um anschließend zu dozieren, dass das Murks sei. Bei Linux verstehe ich so viele Sachen nicht, z.B. was dieser zickige Grub soll, der nach Updates gern mal vergisst, wie das Booten geht, wozu ich systemd brauch'… Das FreeBSD habe ich als Anfänger mit redundanter ZFS-Root hinbekommen, natd+bind mit dynamischen Updates ging nahezu auf Anhieb. Linux scheiterte schon am Versuch, ohne größere Umstände wenigstens XFS zu booten. Aber ich schweife ab.

Vielen Dank, Martin
 
NATen würde helfen. Ansonsten wäre mein Tipp, dem Router, den Du im FreeBSD-Server als Gateway konfiguriert hast, eine statische Route zum 10-er Netz zu verpassen. Ansonsten weiß er nicht, wo er die Antwortpakete hinschicken soll. Ich vermute da das Problem.
 
NATen würde helfen. Ansonsten wäre mein Tipp, dem Router, den Du im FreeBSD-Server als Gateway konfiguriert hast, eine statische Route zum 10-er Netz zu verpassen.

Ja, das Gateway 192.168.2.2 fand das 10er Netz nicht. Mit der Route klappte alles sofort. Im Nachhinein erscheint mir das auch völlig logisch. Ich habe nun schon natd+ipfw aufgesetzt (brauch ich eh), nach dieser Anleitung glücklicherweise ein Kinderspiel:
http://www.lugs.ch/lib/vortraege/ipfw-folien.pdf
Ging erstaunlich schnell und unproblematisch.

Danke, Martin
 
Zurück
Oben