IPv6 and PC Provisioning in a DOCSIS Network. With IPv6 on the way in a number of MSO (Multi-System Operator) networks, I have received numerous questions lately about how home devices such as routers and PCs attached to DOCSIS cable modems will get their IP addresses. Will cable operators suddenly start issuing IPv6 IP addresses to their customers? Will you as a subscriber need to upgrade your equipment to support IPv6? Or does the cable modem act as a Network Address Translation (NAT) device and hand-out IP address to each device attached to it? These are some very good questions and the answers are addressed in the DOCSIS specification as I will outline.
A term I need to introduce that is common in DOCSIS speak is Customer Premise Equipment or CPE. CPE means any internet protocol device that is connected to the LAN port of the cable modem. So from here on, I will use CPE instead of router, PC, etc., but you should understand that the CPE is a device you own that is being issued an IP address from the cable operator’s DOCSIS network. Also, I will be talking about IPv4 and IPv6. If you are not familiar with these, please refer to my post “DOCSIS 3.0 Tutorial – DOCSIS Does IPv6”
First it is important to recall that DOCSIS cable modems are given an IP address during the cable modem provisioning process by a DHCP server. (You can learn more about this by reviewing this post: DOCSIS and Cable Modems – How it works :: Cable Modem Registration) DOCSIS uses the same DHCP server to provision CPE equipment as it does to provision cable modems. But how does the DHCP server tell the difference between a cable modem and a CPE device? When the cable modem sends its DHCP discover request to the CMTS this message arrives on an RF coax cable attached to the CMTS. The connector that the coax cable is connected to is associated with an interface card. Each CMTS can have multiple interface cards each having one or more downstream channels and multiple upstream channels. The CMTS keeps track of the cards by assigning them X/Y addresses, where X is the downstream channel number and Y is the upstream channel number. As an example, if a cable modem is connected to downstream channel #2 and upstream channel #4 by a coax cable, then the CMTS would identify that modem as being connected to cable interface 2/4 (note that each interface card only has a limited number of valid logical connections). As in previous examples, I have shown the running-configuration file, which is the instruction set for how the CMTS operates. The CMTS operator must configure each interface card so that it assigns a range of IP addresses for the cable modems and a secondary range of IP addresses for CPEs. Here is an example of what this configuration would look like for our example interface, 2/4:
int cable 2/4 ip address 10.0.1.1 255.255.255.0
! This is the PRIMARY address on the CMTS (note it is a 24 bit subnet mask).
ip address 213.47.224.1 255.255.255.0 secondary
! This will be the primary scope for the CPEs.
Now when the cable modem’s DHCP messages arrive at int cable 2/4, the CMTS will forward those requests to the DHCP server using a relay agent, also called a giaddr in CMTS speak. The CMTS will remember the MAC address of the cable modem for any future DHCP messages which would be form CPE devices and assign them to the secondary IP range. When the DHCP server receives the incoming DHCP request from the relay agent, it will see that the range is in the 10.0.1.1 scope from the CMTS. The DHCP server will follow the rules setup for this scope. If the cable operator is using IPv6, then the DHCP server will issue an IPv6 IP address to the cable modem. The use of a relay agent by the CMTS is explained in the DOCSIS CM-SP-MULPIv3.0 specification in section 5.2.5.2:
“DOCSIS assumes the use of DHCP for provisioning of CPE devices. To that end the CMTS supports a DHCP relay agent which allows the operator to associate a CPE IP Address request with the subscriber Cable Modem MAC Address. This feature is also used as the basis of a mechanism that prevents spoofing of IP Addresses. DOCSIS 3.0 gives operator the option to provision CPE devices with an IPv4 or an IPv6 or both types of IP Addresses simultaneously.”
Once the cable modem completes its provisioning with the DOCSIS network, other CPE equipment can begin their provisioning on the IP network. At this time the CPE equipment will send a DHCP discover message to the cable modem which will forward that message to the CMTS. The DOCSIS CM-SP-MULPIv3.0 specification explains how this is done in section 9.1.2.1:
“The CM maintains a forwarding database (bridging table) including entries for the CM’s own MAC address and CPE MAC addresses. The CM MUST acquire CPE Ethernet MAC addresses, either from the provisioning process or from learning, until the CM acquires its maximum number of CPE MAC addresses (the lesser of the Max CPE from the config file (Annex C.1.1.7, Max CPE) or a device-dependent value). Once the CM acquires its maximum number of CPE MAC addresses, then newly discovered CPE MAC addresses MUST NOT replace previously acquired addresses. The CM MUST support acquisition of at least 64 CPE MAC addresses.”
When the DHCP server receives the CPE DHCP request forwarded by the CMTS (using the same relay agent as in the cable modem case), the DHCP server will see that the CMTS has now appended the secondary IP scope from the running-config (ip address 213.47.224.1 255.255.255.0 secondary). The DHCP server will have a different set of rules for CPE devices than it does for cable modems. It would be highly unlikely that cable operators would expect their subscribers (you and I) to have equipment that supports IPv6. Therefore, the DHCP server will be configured to send out the older IPv4 IP address to CPE devices so that the existing CPE equipment in our homes and offices do not have problems obtaining an IP address. Of course over time this may change as home users upgrade equipment, but not likely in the near future.
To summarize, there is typically only one DHCP server (not including the back-up server) which provides IP addresses to cable modems, set-top boxes, and any device connected to the cable modem. Keep in mind that if you have a router connected to the cable modem that has a NAT, your router will have its own DHCP server and therefore will be providing IP address to your devices locally. However the router itself will have received an IP address from the cable operator’s DHCP server. You are unlikely to receive IPv6 addresses anytime in the near future because because cable operators will assume your home equipment will not support it even if your cable modem does obtain an IPv6 IP address. The rules for this are handled in the DHCP server.
For more reading on DHCP servers, be sure and check out the DHCP handbook. The authors are actively involved in the development of DHCP standards and the ISC DHCP reference implementation, so it’s difficult to find a more authoritative source.
Upcoming events can be seen under Broadband Events. Previous events can be seen under the blog.
- If you watch on youtube please hit the subscribe button!
- Let us know what you think and remember to share!
- You can find slides at the bottom of the page and some on slideshare.
- Find out about events or articles by following us on Twitter, LinkedIn or Facebook too.
Also available on iTunes, Google Podcasts, Spotify, vurbl see podcasts “get your tech on”.
Great article Brady as IPv6 is upon us. My question is about the framing that happens at the CPE as packets begin to traverse the internet. Let me know if I’m close here; data goes through the OSI layers and are placed on a medium (cat 5) as bits (this would be from your typical PC, we’re interacting with our favorite web site). From the CPE side of things, would the frames from our PC be then re-framed at our SOHO router? and after that is there further encapsulation at the cable modem? If so could you expand on that (expand on that either way sir! : )
Hi Keith,
Good to hear from you again. Hope all is going well with your VoIP prep.
I think you are asking a very good question about IPv6 which is confusing many people I speak to about the differences between IPv6 on the DOCSIS cable modem side versus IPv6 on the user application layer or CPE side. Let me first start by saying that it is likely that you have already browsed your favorite website, like Google, Facebook, or Yahoo back on IPv6 day which occured on June 8th, 2011 – see http://www.worldipv6day.org/. On this day, the companies I named along with a few others set their IP addresses from IPv4 to IPv6, the URLs stayed the same, but your computer converted the URLs to IPv6 addresses. Since most PCs today are up-to-date and support IPv6 you never noticed the difference and neither did the rest of the world.
The DOCSIS network is just a transparent Ethernet bridge to application layer traffic such as this – be it IPv4 or IPv6, so no encapsulation is needed as you suggest. Routing is done by MAC address in the DOCSIS domain not IP address. In fact when BPI+ DOCSIS encryption is enabled, IP addresses and all IP traffic are encrypted, so the only thing that is not encrypted is the MAC address.
Now what does become important is when a cable operator wants to make the entire DOCSIS network, including your home network IPv6 compatible. When this occurs, all devices must support IPv6. This means the cable modem, your router, and all devices behind your router. You may ask why so much? Well an IPv6 network is much different than an IPv4 network. Your router will no longer be performing NAT (Network Address Translation) and in-home DHCP. The cable provider will use DHCPv6 with IPv6 to provide IP addresses to every device inside your home network. This enables IPv6 to route, discover and repair network devices and traffic much more effectively. It also allows IPv6 to take advantage of the inherent security built into the protocol.
So to summarize, IPv6 can exist over top of a DOCSIS network with little or no changes. IPv6 in a DOCSIS network will require changes to modems and likely firmware upgrades to your existing subscribers home routers, but the value is significant.
-Brady
Hi Brady,
Read this post again with the Docsis 3.0 Tutorial, Docsis does IPv6 and got alot out of it. Do you have any books out yet? It might be time to consider putting pen to paper and publish some of this good info for ‘us guys’ working the WWW. I’ve another question for you, and it’s not a IPv6 issue but rather a question regarding the ‘show cable modem rogue’ command (UBR10 ver 12.2); do you currently have a post out regarding some of the dynamics surrounding rouge modems?
Hi Keith,
Thanks for the feedback. I am working currently working on a book and hope to have it completed by the SCTE Cable Tec Expo show in mid-November. It will contain much more detail than what is on this site. At the same time I will be announcing my new consulting firm, so I have a lot of activity going on between now and then.
I am quite familiar with the ‘show cable modem rogue’ command as well as I have done a great deal of work in analyzing rogue modems using DOCSIS protocol analyzers, so this would make for a very good article. I currently have three articles in process, all of which are waiting one detail or another before release. The next several weeks should be very active.
-Brady
Can you change a Cable Modem’s Provisioning mode from an IPV6 only to a IPV4 only via the modems config file? I’ve been told that if I add a TLV11 to the config file and set the OID 1.3.6.1.4.1.4491.2.1.20.1.16.1.2 and set the integer “1” (IPV6 Only) than if my system’s MDD is set for “0”(IPV4 Only)the modem should read the TLV11 from the config file know that the provisioning mode is different go back to the DHCP stage and re-register for an IPV4 address. Have you hear of this before?
I have tried this but no luck, I can only seem to read the CMTS on this OID but not the modem.
Thanks!
Disregard, I had the wrong OID. The correct OID is 1.3.6.1.4.1.139.2.1.20.1.31.1.1
Hi Heavy,
Nice job on answering your own question.
For other readers, DOCSIS 3.0 provides for two ways to provision IPv4 / IPv6 in cable modems. As Heavy indicates above, he is using the config file with MIB strings to tell a cable modem how it should send the DHCP message to the DHCP server (DHCPv4 or DHCPv6). Heavy has been kind enough to also provide the MIB strings for those of you who may be looking for this information.
Additionally, DOCSIS 3.0 lets you globally set the IPv4 / IPv6 globally in the MDD (MAC Domain Descriptor) message which is sent on each DOCSIS 3.0 downstream.
-Brady
Bad day…. the correct OID: 1.3.6.1.4.1.4491.2.1.20.1.31.1.1