PF und weiterleitung?!

dimi

Well-Known Member
Hallo zusammen,
stehe wieder mal vor einem kleinen Problem. Habe schon gegoogelt aber irgendwie...

ich habe zwei netzwerke 192.168.2.0/24 und 192.168.1.0/24.Dazwischen ist eine Routerkiste auf FreeBSD. Ping etc. funktioniert einwandfrei.
Ich möchte eine FreeBSD maschine im Netzwerk 192.168.2.0/24 so einstellen, dass diese ALLE TCP UND UDP verbindungen auf eine andere FreeeBSD Maschine im netzwerk 192.168.1.0/24 umleitet. Im Rechner is jeweils nur 1 Netzwerkkarte.nur der router hat zwei, aber um den geht es ja nicht. Ist das irgendwie überhaupt realisierbar?!?!?!

ich habs versucht mit

rdr on fxp0 proto tcp from any to any port 135 -> 192.168.2.10
aber dann telnet 192.168.1.10 135 und tote hose...

Weiss jemand nen Rat?
 
das problem ist, dass der computer direkt versucht mit dem anderen zu sprechen, weil's dasselbe netz ist und der freebsd-router in diesem falle nicht in die kommunikation eingebunden ist. wenn die kommunikation über ihn läuft (bspw. weil er das standardgateway ist), dann wird es mit dem rdr klappen.
 
ich würde mal vermuten, dass es nicht das default gw ist. Alternativ müsste dann aber wahrscheinlich NAT Abhilfe schaffen können.
 
Source Routed Frames dürfte die Antwort sein. Wenn dein PC in 192.168.2.0/24 Verbindung zu anderen IPs in 192.168.2.0/24 macht, weiß er ja dass er nicht einen GW benutzen muss. Erst wenn für jede mögliche Ziel IP der Rechner gezwungen wäre den GW anzusteuern, könnte der GW auch mit seiner PF Regel greifen.

Statische ARP Einträge auf dem PC, die für die Ziel IPs auf die MAC des GW zeigen, oder ein anderer Mechanismus zwischen PC und Switch, muss die Pakete an die Netzwerkkarte des GW lenken.

Clevere Switche unterbinden übrigens Source Routed Frames
 
könnte ich nicht auch einfacher mein Subnet reduzieren? So dass alle Rechner ausserhalb meines Subnets liegen. Ich habe mal so verrückte Konstellationen bei irgendwelchen ISPs gesehen.

Wenn ich 192.168.2.1/32 z.B. verwende müsste doch alles über das GW laufen. Wie er allerdings das GW erreicht bliebe mir ein Rätsel, ist ja nicht im selben Netz. Wenn es nicht so viele Rechner sind, würde evtl. /30 helfen und dem GW eine IP für jeden Rechner...

eine direkte Kommunikation wären dann wohl ganz und garnicht mehr möglich...

aber warum möchte OP überhaupt allen internen Traffic von Netz 2 in Netz 1 umleiten. 139, da kann ich mir nur die Netbios-Anfragen vorstellen. Server in Netz 1 sollte also auch die "Arbeitsgruppe" für Netz 2 verwalten. Hm, gabs da nicht ne Proxy-Funktion in Samba... Domain-Browser Election. Ich hab da wirre Erinnerungen aus Zeiten eines OpenVPN-Tests mit nem Kumpel.
 
wenn ich das richtig verstehe, willst du zwei fbsd Maschinen miteinander verbinden.
Bitte schau mal unter man gre(4). Ich denke ein interner Tunnel kann da angebracht sein, wenn Verschlüsselung keine Rolle spielt, da intern, reicht das wohl. Sieht schwieriger aus als es ist.
Wenn du den Tunnel allerdings noch verschlüsseln willst, stell dich auf ernsthafte Gehirnschäden auf dem weg dahin ein ;) , aber im internen Netz muß das nicht das Kriterium sein, denke ich.
Die mittels route(8) gesetzte Route ist dann eigentlich der Schlüssel.

Da du mit pf arbeitest, musst du gre erlauben, und zwar das neugeschaffene Interface
als auch das Protokoll auf den betroffenen weiteren Interfaces in etwa (für den Anfang)

z.B. zum testen
Code:
set skip on gre0

pass on $ein_if  proto gre to ...
pass on $ein_if  proto gre from ...
und das auf allen betroffenen Maschinen.
Feintuning wenn es läuft, davor wirst du mit einem pf das mitmischt einfach wahnsinnig.

Das ganze geht genauso mit den anderen Tunnel Interfaces, also gif(4) und tun(4) unter Zuhilfenahme von nos-tun(8) . gre(4) und gif(4) funktionieren normalerweise wunderbar.

Viel Spaß und Erfolg
 
Zurück
Oben