pf.conf and cable modem

alex at alex at
Wed Feb 28 18:19:16 UTC 2007

Quoting RW <fbsd06 at>:

> On Wed, 28 Feb 2007 12:44:21 -0500
> alex at wrote:
>> Quoting RW <fbsd06 at>:
>> > When I used DHCP with PF, I found that it just worked without any
>> > rules at all.
>> That's been my experience as well (admittedly on OpenBSD, but it's
>> basically the same PF). Remember, your NIC's initialization sequence,
>> which is where the DHCP request will come, happens before PF is
>> enabled, so you're essentially at a "pass all" sort of a state when
>> the request happens.
>> The one thing to keep in mind is that if you're doing, say, NAT for
>> some clients behind the box, you can use a rule like this to deal
>> with any changes in your dynamic IP
> Not in my experience.
> I was using a half-bridge modem that had a 30 second lease time, which
> was definitely renewing. It would also give me a private address when
> PPPoA went down, and I saw that happen too.

Are you sure it was a 30 *second* lease time? No sane ISP would set 
such a low value -- that's a surefire way to overwhelm their DHCP 
servers. It sounds like either a) there was something misconfigured on 
one end of the connection (and I make no value judgement as to which 
end it was, given the lack of evidence), or b) you had an incredibly 
stupid ISP that I'd like the name of, so that I can avoid them at all 

> I added-in some early static rules to log all the DHCP packets. IIRC I
> never saw any of the lease renewal packets, just some broadcast
> packets. I asked in this list about it but never got a reply.

What were the rules? I'd be curious to see them.

> I suspect that either DHCP sees the packets directly in some way, or PF
> has some special handling for DHCP. In either case it would make sense
> for PF rules to see the broadcasts, since they might need to be
> bridged.

Given this thread:

I'd say that DHCP goes on at a level below PF, at least on OpenBSD 
(which, again, should be largely similar, if not identical, on 
FreeBSD). In any case, the OP shouldn't have to do anything special to 
let DHCP through, especially if he's got something like:

pass out quick on $ext_if proto udp all keep state

in his ruleset, which probably makes sense anyway.

Alex Kirk

More information about the freebsd-questions mailing list