[Dnsmasq-discuss] Ignore DHCP request based on "client name"?

Hugo Segovia hugoac2004 at gmail.com
Wed Aug 8 13:37:49 BST 2018


El Wed, 8 Aug 2018 10:31:01 +0100
Simon Kelley <simon at thekelleys.org.uk> escribió:
> dhcp-match does a substring match, not a regexp or wildcard one: the *
> character is not special. Your attempts are therefore looking for a
> substring "android*" in the option and failing.
> 
> Remove the * and all will be well, I think.
> 
> 
> Cheers,
> 
> Simon.
> 
> On 07/08/18 14:03, Hugo Segovia wrote:
> > El Mon, 6 Aug 2018 20:39:53 +0100
> > Simon Kelley <simon at thekelleys.org.uk> escribió:
> >> Use dhcp-match to set a tag based on the existence of the "android"
> >> substring in the hostname option, and then dhcp-ignore to ignore
> >> all clients with that tag set.
> >>
> >>
> >> Simples!
> >>
> >>
> >> Simon.
> >>
> >>
> >>
> >> On 04/08/18 16:32, Hugo Segovia wrote:
> >>> Hello! 
> >>>
> >>> First, for "client name" I mean the fourth field in an typical
> >>> dnsmasq.lease line:
> >>>                                                * this one! *
> >>> 1532225279 aa:bb:cc:00:11:22 192.168.3.191 android-abcdexyx123456
> >>> *
> >>>
> >>> Now, to my issue: I've been asked to setup a little WLAN for free
> >>> "Computers 101" courses, and the WLAN does not have any kind of
> >>> security (not my choice, BTW...). As you can imagine,
> >>> an open WLAN is VERY attractive for freeloaders.
> >>>
> >>> I've been adding "dhcp-host=mac-address,ignore" entries for a
> >>> while, but I've been wondering if I could, for example, ignore all
> >>> DHCP requests from hosts with a client name like
> >>> "android-<somethingsomething>" (because we're not teaching "how to
> >>> use your Android smartphone", hence it must come from
> >>> freeloaders) 
> >>>
> >>>
> > 
> > Hello again!
> > 
> > I've trying different forms for "dhcp-match", but none seems to
> > work:
> > 
> > Example 1:
> > dhcp-match=set:android,option:hostname,android*
> > dhcp-ignore=tag:android
> > 
> > Example 2:
> > dhcp-match=set:android,option:hostname,*android*
> > dhcp-ignore=tag:android
> > 
> > Example 3:
> > dhcp-match=set:android,12,*android*
> > dhcp-ignore=tag:android
> > 
> > (since according to
> > https://www.iana.org/assignments/bootp-dhcp-parameters/bootp-dhcp-parameters.xhtml
> > tag 12 = "Hostname")
> > 
> > Whatever I try, it stills keeps giving DHCP leases for Android
> > devices: dnsmasq-dhcp[1234]: DHCPACK(ethX) <ip addr> <mac>
> > android-whatever1234
> > 
> > 

Thank you, that worked out! No asterisk needed, got it!

BTW, I've been trying the "dhcp-vendorclass" option too, and I was
thinking in using it instead of hostnames for the matching-ignore stuff.
The manual clearly says:

"The  vendor-class string is _substring_ matched against the
vendor-class supplied by the client, to allow fuzzy matching"

Too bad it didn't occured to me that "dhcp-match" worked in the
same way... Anyway, thanks for the help!



More information about the Dnsmasq-discuss mailing list