I am guessing that the problem lies with flags S/SA. Changing all rules to flags any, and the packets hits the rules, but things go worse: no web navigation... this is driving me mad!
On 3 June 2013 13:09, Raimundo Santos <rait...@gmail.com> wrote: > Hi there! > > I asked, without an answer, something about nat-to and real IPs. Well, I > really need an answer there, so if someone get a clue, I will be glad tho > hear :) > > Now, to the new issue! > > Here in our WiFi ISP we are have contracted a tproxy service from FreeBSD > Brasil. It is somehow working, but I can not figure out exactly how. Here > is a diagram of the desired paths: > > http://devio.us/~raitech/Obsd53PfTproxy.png > > These are my rules by now: > > RFC1918 = "{ 172.16/12, 192.168/16, 10/8, 127/8 }" > table <INT_NET> persist { internal nets, all valid IPs } > > ext_if_1 = "em0" > ext_gw_1 = "187.72.X.X" > ext_ip_1 = "187.72.X.X" > > ext_if_2 = "em1" > ext_gw_2 = "187.72.X.X" > ext_ip_2 = "187.72.X.X" > > ext_if_3 = "alc0" > ext_gw_3 = "187.72.X.X" > ext_ip_3 = "187.72.X.X" > > int_if_1 = "em2" > int_gw_1 = "187.72.X.X" > int_ip_1 = "187.72.X.X" > > squid_master_if = "em3" > squid_master_gw = "187.72.X.X" > squid_master_ip = "187.72.X.X" > > set limit states 6304000 > set limit tables 5000 > set limit src-nodes 200000 > set limit frags 3000 > set optimization aggressive > set state-defaults pflow, no-sync > > set skip on lo > > block in log quick on { \ > $ext_if_1, \ > $ext_if_2, \ > $ext_if_3, \ > $squid_master_if, \ > $int_if_1 } from $RFC1918 label "blocking RFC1918" > > # trying to prioritizing ACKs... > match set prio (3,5) > # ... and all traffic http. https over the others > match proto tcp to port { http, https } set prio (5,6) > match proto tcp from port { http, https } set prio (5,6) > > match proto tcp to port { ssh, 9876 } set prio(5,7) > > pass in on $int_if_1 proto tcp from { <INT_NET>, $int_gw_1 } to port http \ > route-to ($squid_master_if $squid_master_gw) > > pass in on { $ext_if_1, $ext_if_2, $ext_if_3 } proto tcp from port http \ > to { <INT_NET>, $int_gw_1 } \ > route-to ($squid_master_if $squid_master_gw) > > pass in on $squid_master_if proto tcp from { <INT_NET>, $int_gw_1 } to \ > port http no state route-to \ > { \ > ($ext_if_1 $ext_gw_1) , \ > ($ext_if_2 $ext_gw_2) \ > } least-states label "cahce external outbound balancing" > > pass in on $squid_master_if proto tcp from port http \ > to { <INT_NET>, $int_gw_1 } route-to ($int_if_1 $int_gw_1) \ > label "cahce internal outbound routing" > > An here are a pfctl -vsr output: > > block drop in log quick on em0 inet from 172.16.0.0/12 to any label > "blocking RFC1918" > [ Evaluations: 61764339 Packets: 332 Bytes: 32854 States: 0 > ] > [ Inserted: uid 0 pid 19584 State Creations: 0 ] > block drop in log quick on em0 inet from 192.168.0.0/16 to any label > "blocking RFC1918" > [ Evaluations: 5883927 Packets: 114 Bytes: 28621 States: 0 > ] > [ Inserted: uid 0 pid 19584 State Creations: 0 ] > block drop in log quick on em0 inet from 10.0.0.0/8 to any label > "blocking RFC1918" > [ Evaluations: 5883813 Packets: 170 Bytes: 18354 States: 0 > ] > [ Inserted: uid 0 pid 19584 State Creations: 0 ] > block drop in log quick on em0 inet from 127.0.0.0/8 to any label > "blocking RFC1918" > [ Evaluations: 5883643 Packets: 0 Bytes: 0 States: 0 > ] > [ Inserted: uid 0 pid 19584 State Creations: 0 ] > block drop in log quick on em1 inet from 172.16.0.0/12 to any label > "blocking RFC1918" > [ Evaluations: 60684174 Packets: 305 Bytes: 30912 States: 0 > ] > [ Inserted: uid 0 pid 19584 State Creations: 0 ] > block drop in log quick on em1 inet from 192.168.0.0/16 to any label > "blocking RFC1918" > [ Evaluations: 6862827 Packets: 93 Bytes: 9232 States: 0 > ] > [ Inserted: uid 0 pid 19584 State Creations: 0 ] > block drop in log quick on em1 inet from 10.0.0.0/8 to any label > "blocking RFC1918" > [ Evaluations: 6862734 Packets: 196 Bytes: 19396 States: 0 > ] > [ Inserted: uid 0 pid 19584 State Creations: 0 ] > block drop in log quick on em1 inet from 127.0.0.0/8 to any label > "blocking RFC1918" > [ Evaluations: 6862538 Packets: 0 Bytes: 0 States: 0 > ] > [ Inserted: uid 0 pid 19584 State Creations: 0 ] > block drop in log quick on alc0 inet from 172.16.0.0/12 to any label > "blocking RFC1918" > [ Evaluations: 50726925 Packets: 304 Bytes: 30856 States: 0 > ] > [ Inserted: uid 0 pid 19584 State Creations: 0 ] > block drop in log quick on alc0 inet from 192.168.0.0/16 to any label > "blocking RFC1918" > [ Evaluations: 1251 Packets: 79 Bytes: 8268 States: 0 > ] > [ Inserted: uid 0 pid 19584 State Creations: 0 ] > block drop in log quick on alc0 inet from 10.0.0.0/8 to any label > "blocking RFC1918" > [ Evaluations: 1172 Packets: 152 Bytes: 16948 States: 0 > ] > [ Inserted: uid 0 pid 19584 State Creations: 0 ] > block drop in log quick on alc0 inet from 127.0.0.0/8 to any label > "blocking RFC1918" > [ Evaluations: 1020 Packets: 0 Bytes: 0 States: 0 > ] > [ Inserted: uid 0 pid 19584 State Creations: 0 ] > block drop in log quick on em3 inet from 172.16.0.0/12 to any label > "blocking RFC1918" > [ Evaluations: 50726392 Packets: 304 Bytes: 30856 States: 0 > ] > [ Inserted: uid 0 pid 19584 State Creations: 0 ] > block drop in log quick on em3 inet from 192.168.0.0/16 to any label > "blocking RFC1918" > [ Evaluations: 13589809 Packets: 76 Bytes: 8132 States: 0 > ] > [ Inserted: uid 0 pid 19584 State Creations: 0 ] > block drop in log quick on em3 inet from 10.0.0.0/8 to any label > "blocking RFC1918" > [ Evaluations: 13589733 Packets: 152 Bytes: 16948 States: 0 > ] > [ Inserted: uid 0 pid 19584 State Creations: 0 ] > block drop in log quick on em3 inet from 127.0.0.0/8 to any label > "blocking RFC1918" > [ Evaluations: 13589581 Packets: 0 Bytes: 0 States: 0 > ] > [ Inserted: uid 0 pid 19584 State Creations: 0 ] > block drop in log quick on em2 inet from 172.16.0.0/12 to any label > "blocking RFC1918" > [ Evaluations: 39571927 Packets: 10414 Bytes: 478685 States: 0 > ] > [ Inserted: uid 0 pid 19584 State Creations: 0 ] > block drop in log quick on em2 inet from 192.168.0.0/16 to any label > "blocking RFC1918" > [ Evaluations: 6364466 Packets: 1779 Bytes: 142401 States: 0 > ] > [ Inserted: uid 0 pid 19584 State Creations: 0 ] > block drop in log quick on em2 inet from 10.0.0.0/8 to any label > "blocking RFC1918" > [ Evaluations: 6362687 Packets: 32496 Bytes: 1375238 States: 0 > ] > [ Inserted: uid 0 pid 19584 State Creations: 0 ] > block drop in log quick on em2 inet from 127.0.0.0/8 to any label > "blocking RFC1918" > [ Evaluations: 6330191 Packets: 0 Bytes: 0 States: 0 > ] > [ Inserted: uid 0 pid 19584 State Creations: 0 ] > match all set ( prio(3, 5) ) > [ Evaluations: 61717375 Packets: 13877464 Bytes: 10275632710 States: > 3831 ] > [ Inserted: uid 0 pid 19584 State Creations: 0 ] > match proto tcp from any to any port = 80 set ( prio(5, 6) ) > [ Evaluations: 61717375 Packets: 13877464 Bytes: 10275632710 States: > 3831 ] > [ Inserted: uid 0 pid 19584 State Creations: 0 ] > match proto tcp from any to any port = 443 set ( prio(5, 6) ) > [ Evaluations: 51200612 Packets: 0 Bytes: 0 States: 0 > ] > [ Inserted: uid 0 pid 19584 State Creations: 0 ] > match proto tcp from any port = 80 to any set ( prio(5, 6) ) > [ Evaluations: 51200612 Packets: 0 Bytes: 0 States: 0 > ] > [ Inserted: uid 0 pid 19584 State Creations: 0 ] > match proto tcp from any port = 443 to any set ( prio(5, 6) ) > [ Evaluations: 51200612 Packets: 0 Bytes: 0 States: 0 > ] > [ Inserted: uid 0 pid 19584 State Creations: 0 ] > match proto tcp from any to any port = 22 set ( prio(5, 7) ) > [ Evaluations: 51200616 Packets: 0 Bytes: 0 States: 0 > ] > [ Inserted: uid 0 pid 19584 State Creations: 0 ] > match proto tcp from any to any port = 9876 set ( prio(5, 7) ) > [ Evaluations: 51200616 Packets: 0 Bytes: 0 States: 0 > ] > [ Inserted: uid 0 pid 19584 State Creations: 0 ] > pass all no state allow-opts > [ Evaluations: 61717379 Packets: 61549113 Bytes: 41451833770 States: > 0 ] > [ Inserted: uid 0 pid 19584 State Creations: 0 ] > pass in on em0 inet proto tcp from any port = 80 to <INT_NET> flags S/SA > keep state (no-sync, pflow) route-to 187.72.X.X@em3 > [ Evaluations: 61717379 Packets: 0 Bytes: 0 States: 0 > ] > [ Inserted: uid 0 pid 19584 State Creations: 0 ] > pass in on em1 inet proto tcp from any port = 80 to <INT_NET> flags S/SA > keep state (no-sync, pflow) route-to 187.72.X.X@em3 > [ Evaluations: 55197296 Packets: 0 Bytes: 0 States: 0 > ] > [ Inserted: uid 0 pid 19584 State Creations: 0 ] > pass in on alc0 inet proto tcp from any port = 80 to <INT_NET> flags S/SA > keep state (no-sync, pflow) route-to 187.72.X.X@em3 > [ Evaluations: 38378103 Packets: 0 Bytes: 0 States: 0 > ] > [ Inserted: uid 0 pid 19584 State Creations: 0 ] > pass in on em0 inet proto tcp from any port = 80 to 187.72.X.X flags S/SA > keep state (no-sync, pflow) route-to 187.72.X.X@em3 > [ Evaluations: 48038032 Packets: 0 Bytes: 0 States: 0 > ] > [ Inserted: uid 0 pid 19584 State Creations: 0 ] > pass in on em1 inet proto tcp from any port = 80 to 187.72.X.X flags S/SA > keep state (no-sync, pflow) route-to 187.72.X.X@em3 > [ Evaluations: 44966361 Packets: 0 Bytes: 0 States: 0 > ] > [ Inserted: uid 0 pid 19584 State Creations: 0 ] > pass in on alc0 inet proto tcp from any port = 80 to 187.72.X.X flags S/SA > keep state (no-sync, pflow) route-to 187.72.X.X@em3 > [ Evaluations: 41608198 Packets: 0 Bytes: 0 States: 0 > ] > [ Inserted: uid 0 pid 19584 State Creations: 0 ] > pass in on em2 inet proto tcp from <INT_NET> to any port = 80 flags S/SA > keep state (no-sync, pflow) route-to 187.72.X.X@em3 > [ Evaluations: 48044445 Packets: 1439990 Bytes: 894473590 States: > 435 ] > [ Inserted: uid 0 pid 19584 State Creations: 40060 ] > pass in on em2 inet proto tcp from 187.72.X.X to any port = 80 flags S/SA > keep state (no-sync, pflow) route-to 187.72.X.X@em3 > [ Evaluations: 3694317 Packets: 12437474 Bytes: 9381159120 States: > 3396 ] > [ Inserted: uid 0 pid 19584 State Creations: 128206] > pass in on em3 inet proto tcp from <INT_NET> to any port = 80 no state > label "cahce external outbound balancing" route-to <__automatic_9ca6f8d9_0> > least-states > [ Evaluations: 38420511 Packets: 0 Bytes: 0 States: 0 > ] > [ Inserted: uid 0 pid 19584 State Creations: 0 ] > pass in on em3 inet proto tcp from 187.72.X.X to any port = 80 no state > label "cahce external outbound balancing" route-to <__automatic_9ca6f8d9_1> > least-states > [ Evaluations: 13586403 Packets: 0 Bytes: 0 States: 0 > ] > [ Inserted: uid 0 pid 19584 State Creations: 0 ] > pass in on em3 inet proto tcp from any port = 80 to <INT_NET> flags S/SA > keep state (no-sync, pflow) label "cahce internal outbound routing" > route-to 187.72.X.X@em2 > [ Evaluations: 13731058 Packets: 0 Bytes: 0 States: 0 > ] > [ Inserted: uid 0 pid 19584 State Creations: 0 ] > pass in on em3 inet proto tcp from any port = 80 to 187.72.X.X flags S/SA > keep state (no-sync, pflow) label "cahce internal outbound routing" > route-to 187.72.X.X@em2 > [ Evaluations: 13586403 Packets: 0 Bytes: 0 States: 0 > ] > [ Inserted: uid 0 pid 19584 State Creations: 0 ] > > This is the same behavior with or without multipath routing. What > bahavior? Well, only rules for in on em3 that are destineted to internal > network are working, the others barelly catches a few thousands of packets. > Very strange... > > But, as said before: more strange is the fact that the cache solution is > almost working, just some delays to load a page here, youtube gasps there, > but overall it seems to work! > > Tested without multipath routing, without keep state, and the behavior are > the same. > > Will apreciate any kind of help on this, thank you in advance. > > Raimundo Santos