pf config für 2 WAN interfaces (kein load-balancing)

hi

es wird dir niemand eine patent lösung geben / sagen können da es mehre lösung ansätze gibt.

von daher

a: verwende nur pass oder match aber nicht beides ( lieber pass da einfacher )
b: mische nicht nat-to und route-to , einfacher ist nat das das verhalten rein pf spezifisch ist und
somit die routing tabelle , vorerst , keine rolle spielt.
c: zum debuggen verwende log in den rules und dann tcpdump -nevvvi pflog0
du kannst dann im dump sehen wo es matched und wo nicht.
mit pfctl -vvvsr bekommst du alle regeln mit nummer aufgelistet incl anzahl der gematched packets und sessions.
d: keep simple was da ruleset betrifft.


im übrigen ist ein openbsd update in 30 min erledigt , problemlos.
ggf. kommen noch ein paar minuten drauf für ein pkg update ( pkg_add -u )

holger
 
hi holger,

hi

es wird dir niemand eine patent lösung geben / sagen können da es mehre lösung ansätze gibt.
Ich war ja auch nicht auf der suche nach einer Patentlösung. ich bin auf der Suche nach dem Fehler in meiner Config!!! ;-)
von daher

a: verwende nur pass oder match aber nicht beides ( lieber pass da einfacher )
Meines Wissens zieht match doch erst bei einem pass - oder liege ich da falsch??
b: mische nicht nat-to und route-to , einfacher ist nat das das verhalten rein pf spezifisch ist und
somit die routing tabelle , vorerst , keine rolle spielt.
Das Routing benötige ich doch für das zweite Interface oder sehe ich das falsch?
c: zum debuggen verwende log in den rules und dann tcpdump -nevvvi pflog0
du kannst dann im dump sehen wo es matched und wo nicht.
mit pfctl -vvvsr bekommst du alle regeln mit nummer aufgelistet incl anzahl der gematched packets und sessions.
Gut zu wissen "-nevvvi" hab ich noch nicht ausprobiert und "pfctl -vvvsr" kannte ich nicht...
d: keep simple was da ruleset betrifft.
Ich versuche mein Bestes... ;-)
im übrigen ist ein openbsd update in 30 min erledigt , problemlos.
ggf. kommen noch ein paar minuten drauf für ein pkg update ( pkg_add -u )
Das glaub ich gern, aber ich bin momentan im Urlaub und will nichts kaputt machen, was mich am ende dann meinen Urlaub kostet.

Ich hatte die Hoffnung das mir jemand anhand meines "stümperhaften" Config-Versuchs den richtigen Weg zeigen kann. Bin ja immer noch der Meinung, dass ich nicht sooo weit daneben liege...
 
hi

Meines Wissens zieht match doch erst bei einem pass - oder liege ich da falsch??

nein , match erlaubt genauso wie pass, in dem was mit dem packet danach passiert ist der unterschied.
grundsatzlich habe beide die gleiche funktion und können unabhängig von einander verwendet werden

holger
 
So, ich komme leider nicht weiter damit...

Nun noch ein Aufruf:
Ist hier vielleicht rein zufällig jemand aus Wien (oder Umgebung), der mir gegen Bezahlung bei dem Problem helfen könnte? Ich muss das schnellstmöglich auf die Reihe bekommen, da daran unsere neue Telefonanlage hängt und eigentlich JETZT in Betrieb gehen sollte...
 
So liebe Leute... Die letzten Wochen habe ich versucht diverse Leute zu kontaktieren, die sich groß auf die Fahne schreiben, dass sie sich mit PF unter OpenBSD sehr gut auskennen - leider mit keiner einzigen Rückmeldung. Da sich mein Problem auch nicht von allein löst, bin ich es nochmals systematisch durchgegangen. ...und ich habe das Problem lösen können!!! :-)

Damit dieser Thread zu einem Ende kommt und andere, die vielleicht mit ähnlichen Problemen kämpfen müssen, auch zu einem Ergebnis kommen - hier die Lösung der Problematik:

NAT für alle Devices aus dem Netzwerk:
Code:
match out $log_debug on $ext_if2 from $lan_phone to any nat-to $nat_ip_phone

Routen des Traffics aus dem Telefon-Netz zum zweiten Interface:
Code:
pass in $log_debug quick on $int_if from $lan_phone to any route-to ($ext_if2 $ext_gw2)

Regel für den SIP-Trunk (eingehender Traffic):
Code:
match in $log_debug on $ext_if2 proto tcp from $ext_management_ip to $nat_ip_phone port 80 \
    rdr-to $sip_server_ip1
pass in $log_debug on $ext_if2 proto tcp to $sip_server_ip1 port 80 \
    reply-to ($ext_if2 $ext_gw2)
match in $log_debug on $ext_if2 proto udp from { $sip_provider_net } to $nat_ip_phone port 5060 \
    rdr-to $sip_server_ip2
pass in $log_debug on $ext_if2 proto udp to $sip_server_ip2 port 5060 \
    reply-to ($ext_if2 $ext_gw2)
match in $log_debug on $ext_if2 proto udp from { $sip_provider_net } to $nat_ip_phone port 16000:16015 \
    rdr-to $sip_server_ip2
pass in $log_debug on $ext_if2 proto udp to $sip_server_ip2 port 16000:16015 \
    reply-to ($ext_if2 $ext_gw2)

So... Falls jemand Fragen hat, so kann er sich gern melden. Sollte jemand Fehler entdecken, dann natürlich unbedingt melden. Für uns funktioniert es nun auf jeden Fall mal, was nach der enormen Zeit schon fast unmöglich schien.

An allen die hier versucht haben, mich zu unterstützen: VIELEN DANK!!!

(Das Thema ist somit mal abgeschlossen...)
 
Zurück
Oben