I was wondering, to anyone that has deployed IPv6 to their customers, how you track what address/prefix goes with which customer? If at all. Currently we specify that we keep records(for 6 mo) of which customer has which IPv4 address via dhcpd.leases. This is very easy as ISC DHCP logs the MAC address of the CM the request came from(option agent.remote-id). However IPv6 isn't the same, it logs a lot more information in octal format. Sometimes I can get the MAC address of the router doing the request but not in all cases. And that doesn't really help since there isn't a way to tie the CPE MAC to which CM it was behind(if the CM is now offline).
I guess the only way to do this is via the logs, rather than dhcpd6.leases but I wanted to see how others were doing it.
Thanks in advance,
Matt
Looks like someones managed to do it on the following link: http://dhcp-users.isc.narkive.com/FT98mDUy/dhcpv6-options-to-lease let me know if it works, I'm implementing IPv6 at the moment and struggling...
Thank you very much for that link. It's exactly what I needed. I have IPv6 working with PD and everything for CPEs. My last step before I will launch will be trying to get classes working for IPv6. Then I can have separate subnets for CMs, MTAs, etc..
I'm using dhcpd 4.3.3 with Ubuntu 14.04 so if you need any help you can email me at. matt at zitomedia dot com.
For those interested here is what dhcpd6.leases shows now.
ia-pd "e\214\177\317\000\003\000\001\000\035\317\177\214d" {
cltt 4 2015/10/15 18:44:14;
iaprefix 2001:0db8:f002:ffe0::/60 {
binding state active;
preferred-life 54000;
max-life 86400;
ends 5 2015/10/16 18:44:14;
set lla = "0:1d:cf:7f:8c:64";
set ifname = "Bu1&Ca1/0\000\000\035\317\177\214d\000\000";
set cm = "0:1d:cf:7f:8c:62";
set pdsize = "60";
set iapd = "0:0:0:0:0:0:0:0";
set iana = "0:0:0:0:0:0:0:0";
}
}
Try these for your classes
class "CM" {
# only match if first 6 chars of option 61 are docsis
match if (substring(option vendor-class-identifier,0,6) = "docsis");
spawn with hardware;
}
# Match Clients as determined by option 61
class "Client" {
match if ((substring(option vendor-class-identifier,0,6) != "docsis") and (substring(option vendor-class-identifier,0,4) != "pktc"));
spawn with hardware;
}
# Match MTAs that Identify themselves as pktc1
class "MTA" {
match if (substring(option vendor-class-identifier,0,4) = "pktc");
spawn with hardware;
}
What if the CMTS is in APM mode, this class can't work with both type of IP.
looks like in DHCPv6 Vendor options are in option 17
the sub option you are looking for would be 2
which is one of the following values "ECM", "EPS", "EMTA",
"ESTB", or "EROUTER" you would need to define a custom options space to determine this sub option. I don't have a dhcpd with ipv6 capability but it should not be too hard. this info was gathered from http://www.cablelabs.com/wp-content/uploads/specdocs/CL-SP-CANN-DHCP-Reg....
from that document
5.2.2 Device Type Option
This option is used to identify the device type of the component making the DHCPv6 request.
option-code CL_OPTION_DEVICE_TYPE (2)
option-len length of device-type field in bytes.
device-type The device type as NVT ASCII text MUST NOT be null terminated.
"ECM" for embedded Cable Modem (as specified by DOCSIS 1.0, 1.1, 2.0
or 3.0 Base Specifications)
"EPS" for CableHome embedded Portal Services Element
"EMTA" for PacketCable embedded Multimedia Terminal Adapter
"EDVA" for PacketCable embedded Digital Voice Adapter
"ESTB" for an embedded Set-Top Box
"EROUTER" for an embedded DOCSIS Router
I added this line to my existing option space for DHCPv6 DOCSIS stuff.
option docsis.device-type code 2 = text;
Added the following class statement.
class "cm6" {
match if option docsis.device-type = "ECM";
}
And the CM got a IPv6 address from the correct subnet6.
cmts1-hsdlab#sh cab mode 2073.55c9.448f ipv6
Device Type: B - CM Bridge, R - CM Router
IP Assignment Method: D - DHCP
MAC Address Type Interface Mac State D/IP IP Address
2073.55c9.448f B/D C1/0/UB w-online(pt) Y 2001:0db8:F000:C::DCFD:E022
Thanks to everyone for the help!!