<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<p>No, the point of IPv6 is more addresses. Then the privacy
advocates and DHCP haters<br>
jumped onboard and made IPv6 very complicated. For DHCPv6, most
devices don't<br>
sent the host name. This makes if very hard to keep DNS updated.
However, kudos to<br>
Microsoft because Windows does send the host name.<br>
<br>
Yes, random MAC addresses will lead to problems assigning static
addresses. It will<br>
be impossible to open a port (in-going or out-going) on the
firewall for a special device.<br>
<br>
For IPv4 you can identify a device by host name because most
devices send it:<br>
<font color="#804000"><tt>class "identify_by_hostname" {</tt><tt><br>
</tt><tt> match option host-name;</tt><tt><br>
</tt><tt>}</tt><tt><br>
</tt><tt>subclass "identify_by_hostname"
"android-4867fdc048d28c06" { ddns-hostname
"My-eXpro-tablet"; } # this works</tt><tt><br>
</tt></font>Just add a fixed-address between the {} to the
subclass entry if desired.<br>
<br>
Who ever comes up with this randomization stuff has obviously
never been a network administrator.<br>
<br>
<br>
To address Mike's post, shorten your lease times:<br>
<font color="#804000"><tt>class "mobile_device" {</tt><tt><br>
</tt><tt> match if (</tt><tt><br>
</tt><tt> option host-name ~~ "dhcpcd"</tt><tt><br>
</tt><tt> or option host-name ~~ "android"</tt><tt><br>
</tt><tt> or option host-name ~~ "iphone"</tt><tt><br>
</tt><tt> or option host-name ~~ "samsung-sm"</tt><tt><br>
</tt><tt> or option host-name ~~ "ipod"</tt><tt><br>
</tt><tt> or option host-name ~~ "ipad"</tt><tt><br>
</tt><tt> or option host-name ~~ "a?p?plewatch"</tt><tt><br>
</tt><tt> or option host-name ~~ "nintendo 3ds"</tt><tt><br>
</tt><tt> or option host-name ~~ "galaxy-"</tt><tt><br>
</tt><tt> or option host-name ~~ "g7-thinq"</tt><tt><br>
</tt><tt> or option host-name ~~ "v40-thinq"</tt><tt><br>
</tt><tt> or option vendor-class-identifier ~~
"android-dhcp"</tt><tt><br>
</tt><tt> );</tt><tt><br>
</tt></font><font color="#804000"><tt><font color="#804000"><tt>#
optional: to make devices unique (for DNS) that have a
duplicate host name (users haven't changed the default):<br>
if (lcase(option host-name) = "iphone") {
ddns-hostname = concat("iPhone-", binary-to-ascii(16, 8,
"", substring(hardware, 4, 3))); }<br>
if (lcase(option host-name) = "iphone-2") {
ddns-hostname = concat("iPhone2-", binary-to-ascii(16, 8,
"", substring(hardware, 4, 3))); }<br>
if (lcase(option host-name) = "iphone-3") {
ddns-hostname = concat("iPhone3-", binary-to-ascii(16, 8,
"", substring(hardware, 4, 3))); }<br>
if (lcase(option host-name) = "ipod") {
ddns-hostname = concat("iPod-", binary-to-ascii(16, 8, "",
substring(hardware, 4, 3))); }<br>
if (lcase(option host-name) = "ipad") {
ddns-hostname = concat("iPad-", binary-to-ascii(16, 8, "",
substring(hardware, 4, 3))); }<br>
if ((substring(lcase(option fqdn.hostname), 0, 8) =
"g7-thinq") or (substring(lcase(option host-name), 0, 8) =
"g7-thinq")) {<br>
ddns-hostname = concat("g7-thinq-",
binary-to-ascii(16, 8, "", substring(hardware, 4, 3)));<br>
}<br>
if not ((exists server.ddns-hostname) or (exists
fqdn.hostname) or (exists host-name)) {<br>
if (substring(lcase(option
vendor-class-identifier), 0, 12) = "android-dhcp") {<br>
ddns-hostname = concat("android-dhcp-",
binary-to-ascii(16, 8, "", substring(hardware, 4, 3)));<br>
}<br>
}<br>
}<br>
</tt></font>class "Other_mobile" {<br>
match hardware;<br>
set member_of = "mobile_device";<br>
}<br>
subclass "Other_mobile" 1:68:09:ff:49:0a:35; #
Brenda's-phone<br>
subclass "</tt></font><font color="#804000"><tt><font
color="#804000"><tt>Other_mobile</tt></font>"
1:00:aa:f6:01:05:fe { ddns-hostname "Ricks-phone"; }<br>
.</tt><tt><br>
</tt><tt>.</tt><tt><br>
</tt><tt>subnet 192.168.99.0 netmask 255.255.255.0 {</tt><tt><br>
</tt><tt>.</tt><tt><br>
</tt><tt>.</tt><tt><br>
</tt><tt># ------------------</tt><tt><br>
</tt><tt> pool {</tt><tt><br>
</tt><tt> allow members of "mobile_device";</tt><tt><br>
</tt><tt> allow members of "Other_mobile";</tt><tt><br>
</tt><tt><br>
</tt><tt> deny dynamic bootp clients;</tt><tt><br>
<br>
</tt><tt> adaptive-lease-time-threshold 75; #
use min-lease-time when pool is above this percent</tt><tt><br>
</tt></font><font color="#804000"><tt><font color="#804000"><tt>
min-lease-time 3600; # 1 hour<br>
default-lease-time 14400; # 4 hours</tt><tt><br>
</tt><tt> max-lease-time 28800; # 8
hours<br>
</tt><tt><br>
</tt></font> range 192.168.99.128
192.168.99.191; # </tt></font><font color="#804000"><tt><font
color="#804000"><tt>192.168.99.128</tt></font>/26 (64
addresses)</tt><tt><br>
</tt><tt> }</tt><tt><br>
</tt><tt># ------------------</tt><tt><br>
</tt><tt>.</tt><tt><br>
</tt><tt>.</tt><tt><br>
</tt><tt>}</tt><tt><br>
</tt></font>Note the <b>adaptive-lease-time-threshold</b>
statement.<br>
<br>
Bill<br>
<br>
</p>
<div class="moz-cite-prefix">On 7/24/2020 9:46 PM, Joshua Stark
wrote:<br>
</div>
<blockquote type="cite"
cite="mid:060f1dcf-0374-3612-fafc-76b735f064a1@gmail.com"><font
size="-1">But was that not the point of IPv6 - totally random<br>
</font></blockquote>
</body>
</html>