[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