Hello,

I have the following scenario:
[box_rac]----[fw_rac] <--iked site-to-site--> [fw_krz]--[box_krz]

[box_rac] pulls (rsync) "big data" from [box_krz] through VPN.
I need to put this traffic to the total background, making way for any other 
packets going through VPN, NICs, from/to any other boxes on both sides.

I tried to do it by "catching" this traffic on [fw_rac]/[fw_krz] by specific 
rules [1] and setting the lowest priority fot it. 
Unfortunately it doesn't seem to work as expected. Bandwidth seems to be shared 
roughly equally with other traffic (tested with pushing data (netcat) through 
VPN in the same time).

I would appreciate your advice or any clues on what I have done wrong. Thank 
you.

[fw_rac] and [fw_krz] have analogical rulesets [2].

[1]
[fw_rac]:
pass out quick on enc0 from $box_rac to $box_krz set prio (0, 0) keep state

[fw_krz]:
pass out quick on enc0 from $box_krz to $box_rac set prio (0, 0) keep state

[2] pf.conf [fw_rac]:
ext_if          = "vr0"
lan_rac_if      = "vr2" #
lan_rac_local   = $lan_rac_if:network # 10.0.15.0/24
backup_if       = "vr3" #
backup_local    = $backup_if:network # 10.0.115/24

box_rac         = "10.0.115.151"
box_krz         = "10.0.100.151"

set fingerprints "/dev/null"
set skip on { lo, enc0 }
set block-policy drop
set optimization normal
set ruleset-optimization basic
antispoof quick for {lo0, $lan_rac_if, $backup_if }
match out log on $ext_if inet proto { tcp, udp, icmp } from { $lan_rac_local, 
$backup_local } nat-to $ext_if set prio (3, 7)
block all 
match out all scrub (no-df random-id)
pass out on egress keep state

pass out quick on enc0 from $box_rac to $box_krz set prio (0, 0) keep state
pass out quick on $ext_if from $box_rac to $box_krz set prio (0, 0) keep state

pass from { 10.0.201.0/24, $lan_rac_local, $backup_local } to any set prio (3, 
7) keep state

ssh_port        = "1071"
table <ssh_trust> const { $bud, $rdk_wy, $rdk_mon, $krz_wan, 10.0.2.0/24, 
10.0.15.0/24, 10.0.100.0/24 } 
table <bruteforce> persist counters
block from <bruteforce>
pass in log quick inet proto tcp from <ssh_trust> to $ext_if port $ssh_port 
flags S/SA \
        set prio (7, 7) keep state \
        (max-src-conn 15, max-src-conn-rate 2/10, overload <bruteforce> flush 
global)

icmp_types      = "{ echoreq, unreach }" 
pass inet proto icmp all icmp-type $icmp_types \
        set prio (7, 7) keep state

table <vpn_peers> const { $krz_wan }
pass out quick on egress proto esp from (egress:0) to <vpn_peers>               
   set prio (6, 7) keep state
pass out quick on egress proto udp from (egress:0) to <vpn_peers> port {500, 
4500} set prio (6, 7) keep state
pass  in quick on egress proto esp from <vpn_peers> to (egress:0)               
   set prio (6, 7) keep state
pass  in quick on egress proto udp from <vpn_peers> to (egress:0) port {500, 
4500} set prio (6, 7) keep state

pass in on egress proto udp from any to (egress:0) port {isakmp,ipsec-nat-t} 
set prio (6,7) keep state
pass in on egress proto {ah,esp} set prio (6,7) keep state
block return in on ! lo0 proto tcp to port 6000:6010


-- 
Radek

Reply via email to