Hi all,
I'm new to the forum so go easy on me!
I'm trying to setup a CMTS (arris C4c) which has IPv6 support, connected devices should query the backend server (an isc-dhcpd server) for an IPv6 address and both the cable modem and any connected devices (i.e CPE devices) should also obtain an IPv6 address (ideally from a different pool).
This setup works fine for IPv4 and I've had few problems with the existing setup and i've made a new config file for IPv6, but I can't get the CPE pool working with IPv6 (it either doesn't get an IP at all, or get's an IPv6 address and an IPv4 address and uses the IPv4 by default). I've made relevant changes to the CMTS (cable cm-ip-prov-mode ipv6only
) and I can see the CM's pulling an IPv6 address, but not the CPE's... I suspect I need a way of classing the pool (previously this has been the following, where 10.0.0.1 is the interface address on the CMTS):
class "ecm" {
match if (binary-to-ascii(10,8, ".", packet(24,4)) = "10.0.0.1");
}
CMTS config below for reference:
interface cable-mac 10.0
ip address 10.0.0.1 255.255.255.0
ipv6 enable
ipv6 address 2000::200:201/120 dhcp-link-address any
cable helper-address 192.168.0.1
ip igmp
ip igmp proxy-interface gigabitEthernet 17/1.0
ipv6 dhcp relay destination 2000::2000:2000c
ipv6 nd managed-config-flag
ipv6 nd other-config-flag
ipv6 nd ra interval 30 10
ipv6 no nd ra suppress
ipv6 nd ns-interval 1000
ipv6 nd prefix 2000::200:200:2000::/56 autoconfig
My eventual aim is for the CPE to be able to ping ipv6.google.com. At this point ANY help is hugely appreciated.
I started simple with just trying to get CPEs working with IPv6. You would leave your provisioning set to ipv4 only(cable cm-ip-prov-mode). Then in your DHCP server just make a simple range statement. I would also try and remove the "ipv6 nd prefix 2000::200:200:2000::/56 autoconfig" line. That command tells the CMTS to broadcast the prefix in the RA and let clients pick and address. Also, if you want DHCP to hand out the address I would remove it. Also be careful with double colons(::). You can only use them once and it's usually in the middle or end of an address(see my range6 line below).
Here is a basic file for getting IPv6 up in dhcpd-4.3.3(not this will not work in 4.3.2, you must leave out the prefix6 line if you use 4.3.2). Once you get a little more accustom to IPv6 then try and do IPv6 on the CM. You have to setup the docsis option space for the time, log, tftp servers, etc..
authoritative;
ddns-update-style none;
# set lease times
default-lease-time 86400;
max-lease-time 86400;
# Define global options
option dhcp6.rapid-commit;
option dhcp6.name-servers 2001:470:20::2;
option domain-name "yourdomain.net";
# Match local subnet; Needed since I use DHCPv6 relay.
subnet6 2001:0db8:f000:102::/64 { }
# CPE Subnet
subnet6 2001:0db8:f001:c::/64 {
pool6 {
range6 2001:0db8:f001:c::1000 2001:0db8:f001:c::ffff:ffff;
prefix6 2001:0db8:f002:: 2001:0db8:f002:fff0:: /60;
}
}
I'm getting the following with my CPE's (IP's and MAC's changed where appropriate).
Current CPE=1, IPv4 Addr=1, IPv6 Addr=2 Max CPE=4, IPv4 Addr=32, IPv6 Addr=64
CPE aaaa.aaaa.aaaa Filter-Group:Up=0 Down=0 Proto-Throttle=Normal IPv6=fe80::50be:2ed3:3ceb:773d
+CPE aaaa.aaaa.aaaa IPv4=10.0.0.3
+CPE aaaa.aaaa.aaaa IPv6=2001:0db8:f001:c::1003
Is it normal for the first line to have a link local IP (fe80::50be:2ed3:3ceb:773d)? I'm also not entirely sure why it's pulling BOTH an IPv6 address and an IPv4 address, I'd like one or the other (I thought APM proffered v6 over v4). Any thoughts?
Link local yes. From what I've found every device will get a link local and unique IPv6 address. In some cases you'll get two IPv6 addresses, one global and one for privacy. APM will try IPv6 and if it fails will revert back to IPv4. But this is just for the CM provisioning flow.
From what I can see your setup looks to be correct if you want dual stack to CPEs(IMO, that's recommended). It's up to the CPE on which address it will use. Different vendors/OSs handle this differently.
You will not have global IPv6 reachability unless you have a unique IPv6 prefix from your RIR or provider. 2001:0db8::/32 is a prefix set aside for documentation purposes. I changed my addresses in the post above from our unique prefix to the documentation /32.
Hello,
trying to provision eRouter CPE's with IPv6, the DHCP part seems to go well, CPE gets IPv6 address from a /64 pool and a /60 prefix delegated with isc-dhcpd. Sometimes it takes 30-40 minutes for the erouter to install the prefixes got from dhcp to the LAN side, sometimes it does not install at all, I am super confused. DHCP is configured to hand out nameservers, prefix-list, even sntp, however that is not solicited.
CMTS is a BSR64000, eRouters vary, there are Ciscos, CBNs...
Is there someway I can debug the whole process from the CM side? The CM logs don't show anything.