James, I can confirm. If a table is created by an anchor with the same name as an existing table the following error is printed:
pfctl: warning: namespace collision with <BLOCKTEMP> global table. The anchors table is different from the main pf table. pfctl -vvs Tables --a-rhC BLOCKTEMP Addresses: 12 Cleared: Wed Dec 31 19:00:00 1969 pfctl -a games -vvs Tables --a-r-C BLOCKTEMP games Addresses: 0 Cleared: Wed Jun 2 16:40:14 2010 -- Calomel @ https://calomel.org Open Source Research and Reference On Wed, Jun 02, 2010 at 04:23:54PM -0400, James Records wrote: >On Wed, Jun 2, 2010 at 10:48 AM, James Records <james.records gmail.com>wrote: > >> Hi All, >> >> Having an issue with anchors and tables again, I had this same issue a >> couple of years ago in 4.5 but never got any response, hoping someone can >> shed some light onto what I'm missing here, or if this is even supported, >> I'm trying to use an overload rule inside of an anchor to populate a table >> defined outside of all anchors. I haven't seen anything that specifically >> says this isn't supported, but if thats the case I'd like to get it >> clarified. Here are snippets of pf.conf that don't work, and one that does, >> and an explanation of why I can't just use the one that does work without >> side effects. >> >> Thanks in advance, >> >> J >> >> >> >> Doesn't work: >> >> ############## >> #### Tables ### >> ############## >> table <blocked_sites> persist >> >> ##################### >> #### Blocked Sites #### >> ##################### >> anchor "Blocked_Sites" { >> block in quick from <blocked_sites> to any >> } >> >> ############## >> ### TEST_IN ### >> ############## >> anchor "TEST_IN" { >> pass in log quick on em0 inet proto tcp \ >> from any to <TEST_IN_dst> \ >> port { 443 } keep state \ >> (max 100, source-track rule, max-src-nodes 10, max-src-states 20, >> max-src-conn 20, max-src-conn-rate 2/15, overload <blocked_sites> flush) >> } >> >> >> But remove the anchor from the overload rule and it works fine: >> >> ############### >> #### Tables #### >> ############### >> table <blocked_sites> persist >> >> ##################### >> #### Blocked Sites #### >> ##################### >> anchor "Blocked_Sites" { >> block in quick from <blocked_sites> to any >> } >> >> ############### >> ### TEST_IN ### >> ############### >> #anchor "TEST_IN" { >> pass in log quick on em0 inet proto tcp \ >> from any to <TEST_IN_dst> \ >> port { 443 } keep state \ >> (max 100, source-track rule, max-src-nodes 10, max-src-states 20, >> max-src-conn 20, max-src-conn-rate 2/15, overload <blocked_sites> flush) >> #} >> >> This would be simple enough but I want to be able to parse my logs using >> the anchor names, this isn't possible using the 2nd method. >> >> The docs say this should just work from everything I can tell, I can "read" >> from a global table from within an anchor but am failing to "write" to it >> from within an anchor using the overload rule >> > > > >Just an update, I've done some more digging, it seems like I'm running into >an issue where its creating a new table inside the anchor, I'm thinking this >is just a bug where the table gets created because it doesn't look outside >of the anchor to see if one already exists, but I just want to get another >pair of eyes to confirm. > >Thanks >J > > pfctl -vvs Tables >-pa--h- blocked_sites > Addresses: 0 > Cleared: Wed Jun 2 06:10:20 2010 > References: [ Anchors: 3 Rules: 0 ] > Evaluations: [ NoMatch: 162 Match: 0 ] > In/Block: [ Packets: 0 Bytes: 0 ] > In/Pass: [ Packets: 0 Bytes: 0 ] > In/XPass: [ Packets: 0 Bytes: 0 ] > Out/Block: [ Packets: 0 Bytes: 0 ] > Out/Pass: [ Packets: 0 Bytes: 0 ] > Out/XPass: [ Packets: 0 Bytes: 0 ] > >$ pfctl -a "TEST_IN" -vvs Tables >--a-r-- blocked_sites TEST_IN > Addresses: 1 > Cleared: Wed Jun 2 01:55:11 2010 > References: [ Anchors: 0 Rules: 5 ] > Evaluations: [ NoMatch: 114 Match: 69 ] > In/Block: [ Packets: 69 Bytes: 6732 ] > In/Pass: [ Packets: 0 Bytes: 0 ] > In/XPass: [ Packets: 0 Bytes: 0 ] > Out/Block: [ Packets: 0 Bytes: 0 ] > Out/Pass: [ Packets: 0 Bytes: 0 ] > Out/XPass: [ Packets: 0 Bytes: 0 ]