To have various IP ranges in the same subnet and assign the IP Address depending of the device type that sends the request.
Bill Shirley
bill at c3po.polymerindustries.biz
Thu Aug 8 05:50:01 UTC 2019
Here's a couple of classes you might find useful:
class "mobile_device" {
match if (
option vendor-class-identifier ~~ "android"
or option host-name ~~ "android"
or option host-name ~~ "iphone"
or option host-name ~~ "samsung-"
or option host-name ~~ "galaxy"
or option host-name ~~ "ipod"
or option host-name ~~ "ipad"
or option host-name ~~ "watch"
or option host-name ~~ "nintendo 3ds"
);
}
class "Microsoft" {
match if substring(option vendor-class-identifier, 0, 4) = "MSFT";
set member_of = "Microsoft";
}
The first class uses the regexp operator ~~ (case insensitive). There is also the
case sensitive operator ~=.
On the subject of implicit deny for a pool with only "allow members":
I classify most of my devices (i.e. Panasonic, Ricoh, Canon, Linux, Microsoft) to assign
them to a specific pool (i.e Printers, Linux, Microsoft, mobile_device). Then I have an
"uncategorized" pool for those devices that aren't in a currently defined class so that they
will get an address. If later I change a class to include a device (say Epson), that device
will request its previous address on renew and *will get it* if my "uncategorized" pool doesn't
have a 'deny members of "Epson"' configuration line.
TL;DR - If a device requests a renewal of an address and there is no "deny members" for
the pool, it will be granted.
dhcp-server-4.3.6-10.fc27.x86_64
Bill
On 8/7/2019 8:42 AM, Juan Antonio García Moreno wrote:
> Hi Simon,
>
> Too much thanks by your anotation about the Hosts Declarations. I will keep them in mind and I will change it.
>
> About the Hosts Classifications, I have tested this and works for me:
>
> ------------------------------------------------------------------------------
> class "smartphones" {
> match if substring(option vendor-class-identifier,0,13) = "android-dhcp-" or
> substring(option vendor-class-identifier,0,7) = "HUAWEI:" or
> substring(option vendor-class-identifier,0,7) = "dhcpcd-";
> }
> ------------------------------------------------------------------------------
>
> That is the same that this:
>
> ------------------------------------------------------------------------------
> class "smartphones" {
> match option vendor-class-identifier;
> }
>
> subclass "smartphones" "android-dhcp-9"
> subclass "smartphones" "android-dhcp-8.1.0"
> subclass "smartphones" "android-dhcp-7.0"
> subclass "smartphones" "HUAWEI:android:FIG-L11"
> subclass "smartphones" "HUAWEI:android:QC_Reference_Phone"
> subclass "smartphones" "dhcpcd-5.5.6"
> ------------------------------------------------------------------------------
>
> And I can change it to:
>
> ------------------------------------------------------------------------------
> class "smartphones" {
> match option vendor-class-identifier;
> }
>
> include smartphones.cfg
>
> * smartphones.cfg file containing the subclass lines.
> ------------------------------------------------------------------------------
>
> But, is there any way to minimize the number of lines to include in the smartphones.cfg file using some kind of wildcard or
> expression/function like "substring()" used in the Class Declaration?
>
> Another question:
>
> The iPhones and the iPads not send the "vendor-class-identifier" option in the DHCP Discover Packet.
>
> Could I classify iPhones and iPads taking into account some other parameter of the DHCP Discover Packet?
>
>
> Best regards
>
>
>
> El lun., 5 ago. 2019 a las 19:35, Simon Hobson (<dhcp1 at thehobsons.co.uk <mailto:dhcp1 at thehobsons.co.uk>>) escribió:
>
> Juan Antonio García Moreno <jagarcia at emergya.com <mailto:jagarcia at emergya.com>> wrote:
>
> > I relly have some hosts declarations, but I don't have put these in the post.
>
> Ah yes, about that ... see below !
>
> > subnet 10.53.0.0 netmask 255.255.0.0 {
> >
> > default-lease-time 86400;
> > max-lease-time 172800;
> >
> > option broadcast-address 10.53.255.255;
> > option routers 10.53.1.1;
> >
> > # Unknown Clients Range.
> > pool {
> > deny members of "smartphones";
> > range 10.53.33.1 10.53.35.254;
> > }
> >
> > # Smartphones Range.
> > pool {
> > allow members of "smartphones";
> > range 10.53.10.2 10.53.11.254;
> > }
> >
> > host PC-01 {
> > hardware ethernet ff:ff:ff:ff:ff:01;
> > fixed-address 10.53.100.5;
> > }
> >
> > host PC-02 {
> > hardware ethernet ff:ff:ff:ff:ff:02;
> > fixed-address 10.53.100.6;
> > }
> >
> > }
>
> That is another common mistake. Host declarations are always global in scope even though you might think that putting them
> inside a subnet declaration would tie them to that subnet. So even though declared inside one subnet, they will be "known"
> in any subnet - which in itself can cause considerable confusion.
> But what really makes life "interesting" (see https://en.wikipedia.org/wiki/May_you_live_in_interesting_times) is that
> should a host be connected to a different network, it will inherit option values from the subnet where it is defined. Thus
> you find yourself with a client that's been given an address by DHCP, but the gateway address it's been given is in a
> completely different subnet !
>
>
> > And too, howto fill a text file with the "vendor-class-identifier" of the smartphones and include in the DHCP Server
> config to match the smartphones devices too.
>
> It's a simple scripting exercise to take a text file containing one string per line, and build a config file snippet. You
> can then use an include statement to incorporate that config snippet into the daemon config.
>
> _______________________________________________
> dhcp-users mailing list
> dhcp-users at lists.isc.org <mailto:dhcp-users at lists.isc.org>
> https://lists.isc.org/mailman/listinfo/dhcp-users
>
>
>
> --
> EMERGYA <http://www.emergya.com/>
> *Juan García*
> *Dto. de Soporte Interno*
> *EMERGYA INGENIERÍA*
> *m:* +34 954 517 577
> *p:* +34 954 517 577
> *e:*jagarcia at emergya.com <mailto:jagarcia at emergya.com>
> linkedin icon <https://www.linkedin.com/company/emergya> facebook icon <https://www.facebook.com/Emergya> twitter icon
> <https://twitter.com/emergya>youtube icon <https://www.youtube.com/channel/UCU0ISPwk1pcOWwjpX63gN_A>
>
>
> _______________________________________________
> dhcp-users mailing list
> dhcp-users at lists.isc.org
> https://lists.isc.org/mailman/listinfo/dhcp-users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.isc.org/pipermail/dhcp-users/attachments/20190808/1d242c1e/attachment-0001.html>
More information about the dhcp-users
mailing list