On Sun, Jul 31, 2011 at 02:30:05PM +0200, Peter N. M. Hansteen wrote:
> Ryan McBride <mcbr...@openbsd.org> writes:
> > The interface may have more than one address...
> 
> That's probably just me not noticing, but the odd part is that while
> this interface has several addresses, it only has one IPv4 address:

The point of using a dynamic interface is to handle possible future
situations as well. So even if you only have one address now, how does
PF know that you'll never do "ifconfig xl0 inet alias ..."?

Basically, when you use "(" ifname ")", internally in PF it's handled as
a table that's managed by the kernel, and

1) pfctl has no idea what's in that table, so it has to assume that
   there might be multiple addresses
2) all tables get implicit round-robin load-balancing unless you specify
   something else (I think the only other valid option for tables at the
   moment is 'least-states')

Anyhow, the behaviour is the same as what you're expecting: round-robin
on a single address means you always get that address selected.

Reply via email to