VoIP wird nicht richtig von PF eingeordnet

Josen

UNIX-Enthusiast
Hallo Forum,

es ist sicher 4 Jahre her, dass ich das letzte mal gepostet habe. Natürlich lese ich hin und wieder mit; die meisten aller Probleme die man mit BSD aber haben kann löse ich mittels der guten Dokumentation allein. Gerade darum ist es mir schon fast etwas peinlich jetzt um Hilfe zu fragen.

Seit heute habe auch ich VoIP bei einem großen deutschen Kabel-Internet Anbieter.

Mein Setup sieht so aus:

VoIP-Server vom Provider <-> Kabelmodem <-> OpenBSD-Router <-> Fritz!Box

Die Fritz!Box hängt am Interface vr2 des OBSD-Routers.
Das Kabelmodel (damit Internet) hängt an vr1 des OBSD-Routers.

Die SIP-Singalisierung/Transport mache ich mit siproxd aus den Packages.

Mein Problem besteht nun darin, die Pakete vom siproxd und die von der Fritz!Box an der passenden Stelle abzufangen und zu klassifizieren.


Wie würdet ihr klassifizieren?

- Ausgehend auf dem externen Interface direkt in die Queue alles schmeißen, was vom siproxd kommen kann
- Eingehend auf dem Interface von/zur Fritz!Box alles taggen und auf dem ausgehenden klassifizieren


Habe beides mal durchgespielt (wobei die erste Lösung natürlich die einzig sinnvolle ist), klappt aber nicht. Kriege nur gute 2-3 Kbit/sec in die echtzeit-Queue. So sieht meine pf.conf aus:

Code:
# cat /var/pf/pf.conf                                                          
int_if="vr0"
int="172.16.1.0/24"

ext_if1="pppoe0"

namenhafterkabelinternetanbieter_if="vr1"

echtzeit_if="vr2"
echtzeit_net="10.10.0.0/24"

set block-policy drop
set optimization conservative
set loginterface $int_if

set skip on lo0

scrub on {$namenhafterkabelinternetanbieter_if,$ext_if1} no-df random-id reassemble tcp fragment reassemble
        
# QoS Upstream
altq on $namenhafterkabelinternetanbieter_if hfsc bandwidth 1100Kb queue { standard_up, vorrang_up, acks_up, echtzeit_up  }
queue standard_up bandwidth 10% priority 1 qlimit 100 hfsc (red default)
queue echtzeit_up bandwidth 50% priority 8 qlimit 500 hfsc (realtime 50% )
queue acks_up bandwidth 30% priority 7 qlimit 500 hfsc(red)
queue vorrang_up bandwidth 10% priority 6 qlimit 75 hfsc(red)

nat on $namenhafterkabelinternetanbieter_if from !($unity_if) to any -> ($unity_if)
nat on $echtzeit_if from $int to $echtzeit_net -> ($echtzeit_if)


rdr pass on $namenhafterkabelinternetanbieter_if proto udp from any to any port 5060 -> 10.10.0.2
rdr pass on $namenhafterkabelinternetanbieter_if proto udp from any to any port 7070:7089 -> 10.10.0.2

# Standard rule
pass all
block return-icmp (3) in on $unity_if

# Vorbereitung VoIP
pass in on $echtzeit_if tag ECHTZEIT keep state

# Filter Ausgehend
pass out on $namenhafterkabelinternetanbieter_if inet proto tcp from ($namenhafterkabelinternetanbieter_if) to any flags S/SA queue (standard_up, acks_up)
pass out on $namenhafterkabelinternetanbieter_if inet proto {tcp,udp} from ($namenhafterkabelinternetanbieter_if) to any port {ssh,www,https,domain} keep state queue vorrang_up
pass out on $namenhafterkabelinternetanbieter_if tagged ECHTZEIT queue echtzeit_up
pass out on $namenhafterkabelinternetanbieter_if inet proto udp from ($namenhafterkabelinternetanbieter_if) to any port {5060,7070:7089} queue echtzeit_up


Könnt ihr mal einen Blick drauf werfen und vielleicht einen Tip abgeben? Danke! :o

Grüße
 
Zurück
Oben