Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 11 Apr 2011 08:45:44 +0300
From:      Zeus V Panchenko <zeus@ibs.dn.ua>
To:        freebsd-pf@freebsd.org
Subject:   transparent proxy traffic queue ...
Message-ID:  <20110411054544.GC22812@relay.ibs.dn.ua>
In-Reply-To: <20110210155622.GA60117@icarus.home.lan>
References:  <20110210155622.GA60117@icarus.home.lan>

next in thread | previous in thread | raw e-mail | index | archive | help
Hi all,

while trying to shape bandwidth for transparent proxy traffic i faced
weird for me behaviuor ... may somebody help to understand where i am
mistaking, please?

i use squid as proxy (installed from ports and configured with
WITH_SQUID_PF=true, WITH_SQUID_IPFILTER=true), it works and my LAN can
browse inet transparently (without setting proxy in browser options)

squid is configured with delay pools, but i want to send it through pf
queue too

the network topology is simple:

(LAN) <-> ale0 [FreeBSD-8.2-STABLE i386] xl0(tun0) <-> [ADSL bridge] <-> (INTERNET)


the problem is that outgoing to the internet traffic from proxy is
going through the queue on $if_wan and i can see it while tcpdumping
pflog0 but i can not see on pflog0, traffic incomming from internet to
LAN, no outgoing traffic through $if_lan interface while tcpdump
pflog0 ...

while trying to:
> tcpdump -n -i pflog0 -ttte -s0 port 80

i can see only outgoing traffice from LAN to inet:
...
00:00:00.000000 rule 12/0(match): pass out on tun0: my.wan.ip.here.56987 > 206.127.23.230.80: Flags [S], seq 3641245239, win 65535, options [mss 1452,nop,wscale 3,sackOK,TS val 114160025 ecr 0], length 0
00:00:00.023229 rule 12/0(match): pass out on tun0: my.wan.ip.here.53120 > 64.147.113.42.80: Flags [S], seq 3951546220, win 65535, options [mss 1452,nop,wscale 3,sackOK,TS val 114164836 ecr 0], length 0
00:00:00.479411 rule 12/0(match): pass out on tun0: my.wan.ip.here.40511 > 199.7.50.72.80: Flags [S], seq 3596234346, win 65535, options [mss 1452,nop,wscale 3,sackOK,TS val 114462122 ecr 0], length 0
...


but if i 
> tcpdump -n -i ale0 -ttte -s0 port 80

than i can see all traffic ofcourse ... 


what i am missing, please? why traffic outgoing to LAN is missed on pflog0?

and yet, the same picture is with smb traffic ... i can see only
traffic from LAN to WAN

my tailored pf.conf is:

if_wan = "tun0"
if_lan = "ale0"

ports_proxy = "http, https, ftp, ftp-data, ftps, ftps-data"
ports_nat = "ntp, xmpp-client, 5223, xmpp-server"
ports_smb = "135:139, 445"

table <ADMINS> persist file "/etc/pf.tbl.admins"
table <PASS_WAN> persist file "/etc/pf.tbl.pass_wan"

set skip on lo0
set optimization conservative
set ruleset-optimization basic

altq on $if_wan cbq bandwidth 1Mb queue { wan_rest, wan_http }
queue wan_http bandwidth 150Kb priority 2
queue wan_rest bandwidth 850Kb cbq(default)

altq on $if_lan cbq bandwidth 100% queue { lan_rest, lan_http }
queue lan_http bandwidth 2Mb   priority 2
queue lan_rest bandwidth 98Mb cbq(default)

rdr on $if_lan proto { tcp, udp } from ! <ADMINS> \
    to ! 172.16/12 port { $ports_proxy } -> $if_lan:0 port 3128

nat on $if_wan from <ADMINS> to any -> ($if_wan)
nat on $if_wan from ! <ADMINS> to port { $ports_nat } -> ($if_wan)

antispoof for { $if_wan, $if_lan }

block in log
pass in log inet proto icmp all icmp-type echoreq
pass in log on $if_wan inet proto { tcp, udp } from { <PASS_WAN> } \
     to ($if_wan) port ssh
pass in log on $if_lan

pass out log on $if_wan
pass out log on $if_lan

block drop out log on $if_wan from any \
     to { 127/8, 10/8, 172.16/12, 192.168/16 }

pass out log on $if_wan inet proto { tcp, udp } from $if_lan:0 \
     to any port { $ports_proxy } keep state queue wan_http
pass out log on $if_lan inet proto { tcp, udp } from any port { $ports_proxy } \
     to $if_lan:0 queue lan_http

pass out log on $if_lan inet proto { tcp, udp } from any port { $ports_smb } \
     to $if_lan:network queue lan_smb
pass out log on $if_vpn inet proto { tcp, udp } from $if_lan:network \
     to any port { $ports_smb } queue vpn_smb


-- 
Zeus V. Panchenko
IT Dpt., IBS ltd			      	        GMT+2 (EET)



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20110411054544.GC22812>