On Mon, May 4, 2020 at 4:43 PM Marko Cupać <marko.cu...@mimar.rs> wrote:

> ...so I can permit hosts on guest vlan access Internet hosts, but not
> hosts on other private vlans similar to:
>
> block log all
> pass in on $guest_vlan from $guest_vlan:network to <routable>
>

I suspect the best path forward here is:

block log all
pass in on $guest_vlan from $guest_vlan:network to ! <guest-unroutable>

Then make a <guest-unroutable> table that's like <martians>, but also
including
your other vlan subnets you don't want guests to be able to reach.

Each entry added to a table is implicitly an 'or'.  So adding A and B to
<test>
means that you get a match if you check for A, or you check for B.  And
adding
!A and !B means that <test> matches if it's not A, OR not B.  A satisfies
'!B' so
that matches, B satisfies '!A' so that matches, and indeed anything else
also
matches.  So using ! *inside* a table definition rarely does what you
intend.

Using ! <table>, however, is fine and should do what you want.

-ken

Reply via email to