Contents

Introduction

Before You Begin

Conventions

Prerequisites

Components Used

Description

The Cisco IOS Dynamic Host Configuration Protocol (DHCP) service on a CMTS

Further DHCP Server Functionality

The Cisco IOS Time of Day (ToD) service

The Cisco IOS Trivial File Transfer Protocol (TFTP) service

The Internal DOCSIS configuration file generator

Sample Diagram

Configurations

Basic all-in-one configuration

Verification Tips for Basic Configuration

Advanced all-in-one Configuration

Verification Tips for Advanced Configuration

Introduction

This document shows a configuration on Cisco's Cable Modem Termination System (CMTS) that acts as a Dynamic Host Configuration Protocol (DHCP), ToD, and TFTP server. It also explains how to built the DOCSIS configuration file using CLI on the CMTS. This configuration is known as "all-in-one configuration for Cisco's CMTS."

Before You Begin

Conventions

For more information on document conventions, see the Cisco Technical Tips Conventions.

Prerequisites

The reader should have a basic understanding of the DOCSIS protocol and Cisco IOS command line on the uBR series routers.

Components Used

The hardware use in this document were from the Cisco uBR7200, uBR7100 or uBR10k CMTS and DOCSIS compliant cable modems.

Description

A DOCSIS compliant cable modem requires access to three types of servers in order to successfully come online.

- The first is a DHCP server, which provides the cable modem with an IP address, a subnet mask and other IP related parameters.

- The second is an RFC868 compliant Time of Day (ToD) server which lets the modem know what the current time is. A cable modem needs to know the time in order to be able to properly add accurate timestamps to its event log.

- The third is a Trivial File Transfer Protocol (TFTP) server from which a cable modem is able to download a DOCSIS configuration file containing cable modem specific operational parameters.

Most of cable operators use Cisco Network Registrar (CNR) as the DHCP, DNS, and TFTP servers. ToD server is not part of CNR. The ToD server that is used depends upon the platform on their system. The ToD should be RFC868 compliant. For UNIX systems, it is included in Solaris, it is only necessary to make sure the file "inetd.conf" that lives in "/etc" directory contains the following lines:

# Time service is used for clock synchronization.

#

time    stream  tcp     nowait  root    internal

time    dgram   udp     wait    root    internal

For Windows, the most common software that is used is Greyware .

The following table shows the Cisco IOS® Software Release versions in which different server capabilities have been added to the CMTS.

Server Capabilities

Cisco IOS Software Release

DHCP

12.0(1)T

ToD

12.0(4)XI

TFTP

11.0 (for all platforms)

This document will explain each of these features. The configuration on the CMTS that contains all of these capabilities is what we call "all-in-one configuration for the cmts". With this configuration you do not need any additional servers to test your cable plants to provide high speed internet access.

It is also possible to configure a DOCSIS configuration file residing on the CMTS instead of the TFTP server. According to the release notes, you need at least Cisco IOS Software Release 12.1(2)EC1 to use this feature.

Although this "all-in-one configuration" is very convenient for lab environment, initial testing, small deployments, and troubleshooting, it is not scalable to support a very large number of cable modems. So it is NOT recommended to use this configuration in operational cable plants with large deployments of cable modems.

TAC engineers use this configuration very often to be able to eliminate variables while troubleshooting cable problems.

The Cisco IOS Dynamic Host Configuration Protocol (DHCP) service on a CMTS

Cisco routers running a Cisco IOS Software Release of 12.0(1)T or greater have the ability to act as DHCP servers. This DHCP service may be configured to provide DHCP leases to cable modems and Customer Premise Equipment (CPE) such as PCs and workstations.

There is a minimum set of DHCP options that cable modems typically require in order to come on line. These are:

- An IP address (The yiaddr field in the DHCP packet header)

- A subnet mask (DHCP Option 1)

- The local time offset from GMT in seconds (DHCP Option 2)

- A default router (DHCP Option 3)

- The IP address of a ToD server (DHCP Option 4)

- The log server (DHCP option 7)

- The IP address of a TFTP server (The siaddr field in the DHCP packet header)

- The name of a DOCSIS configuration file (The file field in the DHCP packet header)

- A DHCP lease time in seconds (DHCP Option 51)

In the router this can be configured as follows:

!

ip dhcp pool cm-platinum

network 10.1.4.0 255.255.255.0

bootfile platinum.cm

next-server 10.1.4.1

default-router 10.1.4.1

option 7 ip 10.1.4.1

option 4 ip 10.1.4.1

option 2 hex ffff.8f80

lease 7 0 10

!

The explanation of each command is as follows:

- The dhcp pool command defines the name of the scope (cm-platinum which means platinum service for cable modems).

- The network provides the IP address and the subnet mask (DHCP option 1).

- The bootfile provides the boot file name which in this case is platinum.cm.

- The next-server command specifies the TFTP server IP address (in this case is the primary ip address in the interface c4/0).

- The default-router is the default gateway, which in this case is the primary IP address of interface c4/0 (option3).

- Option 7 is the Log server dhcp option.

- Option 4 is the ToD server ip address (primary ip address of interface c4/0).

- Option 2 is the time offset option for GMT - 8 hr (-8 hr = -28800 sec = ffff.8f80 in hex).

- The lease time is 7 days 0 hours 10 minutes.

Note: To learn more about how to convert an offset time decimal value into hexadecimal, read Tech Tip How to Calculate the Hexadecimal Value for DHCP Option 2 (time offset).

For CPE devices the following options are the minimum in order to be able to operate successfully.

- An IP address (The yiaddr field in the DHCP packet header)

- A subnet mask (DHCP Option 1)

- A default router (DHCP Option 3)

- The IP address of one or more Domain Name Servers (DHCP Option 6)

- A domain name (DHCP Option 15)

- A DHCP Lease time in seconds (DHCP Option 51)

!

ip dhcp pool pcs-c4

! -- the scope for the hosts

network 172.16.29.0 255.255.255.224

! -- the ip address and mask for the hosts

next-server 172.16.29.1

! -- tftp server, in this case we put the secondary add.

default-router 172.16.29.1

dns-server 172.16.30.2

! -- dns server (which is not configured on the cmts)

domain-name cisco.com

lease 7 0 10

!

When configuring the dhcp pools, it is important to include the command cable dhcp-giaddr policy in the cable interface configuration. This command has the effect of directing the DHCP server to assign leases to cable modems corresponding to the primary network number on the cable interface and leases to CPE corresponding to the secondary network number on the cable interface. If this command is missing then all DHCP leases will come from the pool corresponding to the primary network number on the cable interface. Also, as we will see in the partial configuration of the interface below, the scope cm-platinum is associated with the primary address defined on interface cable 4/0 and the scope pcs-c4 is in the network of the secondary address.

!

interface Cable4/0

ip address 172.16.29.1 255.255.255.224 secondary

! -- CPE network

ip address 10.1.4.1 255.255.255.0

! -- Cable Modem Network

cable dhcp-giaddr policy

!

Note that there is no cable helper-address or ip helper-address command under the cable interface. This is because DHCP requests do not need to be forwarded to an external server when the internal IOS DHCP server is utilized. If this command is added underneath the interface, and there is an external DHCP server configured, the cable modems will register with the configuration of the external DHCP.

Further DHCP Server Functionality

Other features which can be utilized using the Cisco IOS DHCP server include:

- ip dhcp ping: Ping before lease function which ensures that the DHCP server does not issue leases for IP addresses that are already in use.

- ip dhcp database: Storage of DHCP bindings in an external database in order to maintain MAC address to IP address relationships over a CMTS power cycle.

- show ip dhcp: A suite of commands which can be used to monitor the operation of the DHCP server.

- debug ip dhcp server : A suite of commands which can be used to troubleshoot the operation of the DHCP server.

All of these extra functions and features are described in the Cisco IOS DHCP server feature release notes located at Cisco IOS DHCP Server document.

The Cisco IOS Time of Day (ToD) service

After a Cable Modem successfully acquires a DHCP lease it then proceeds to attempt to contact a ToD server. Cisco CMTS products running Cisco IOS Software Release 12.0(4)XI or later are able to provide an RFC868 ToD service.

A common misconception is that the ToD service that cable modems need to utilize as a part of coming online is the same as the Network Time Protocol (NTP) service which is commonly configured on Cisco routers. The NTP service and the ToD service are incompatible. Cable Modems cannot talk to an NTP server. While cable modems must attempt to contact a Time of Day server as a part of the process of coming online, modems compliant with the latest revisions of the DOCSIS 1.0 RFI specification will still proceed to come online even if a ToD server cannot be reached.

According to the most recent releases of the specification, if a cable modem is unable to contact a ToD server then it may continue with the process of coming online. However it should periodically continue to try to contact the ToD server until it is successful. Older versions of the DOCSIS 1.0 RFI specification mandated that if a cable modem could not contact a ToD server then the modem could not come online. It is important to be aware that cable modems running older firmware may comply with this older version of the specification.

Note: Some vendor's cable modems do not interoperate with the Cisco IOS Time of Day service. If these modems are compliant with the most recent versions of the DOCSIS 1.0 RFI specification then they should continue to come online regardless. This interoperability issue is being addressed by Cisco bug ID CSCdt24107.

Note: To configure ToD on a Cisco's CMTS only two global commands are needed:

service udp-small-servers max-servers no-limit

!

cable time-server

!

The Cisco IOS Trivial File Transfer Protocol (TFTP) service

After a cable modem has attempted to contact a ToD server, it proceeds to contact a TFTP server in order to download a DOCSIS configuration file. If a binary DOCSIS configuration file can be copied to a flash device on a Cisco CMTS then the router can act as a TFTP server for that file.

The procedure to download a DOCSIS configuration file into flash is the following:

First, make sure the CMTS can reach the server where the DOCSIS config file lives:

7246VXR#ping 172.16.30.2

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 172.16.30.2, timeout is 2 seconds:

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/4 ms

Next, copy the file, in this case it is called silver.cm into the flash of the CMTS.

7246VXR#copy tftp flash

Address or name of remote host []? 172.16.30.2

Source filename []? silver.cm

Destination filename [silver.cm]?

Accessing tftp://172.16.30.2/silver.cm...

Loading silver.cm from 172.16.30.2 (via Ethernet2/0): !

[OK - 76/4096 bytes]

76 bytes copied in 0.152 secs

Finally, it is always a good idea to check the flash and verify that the size of the file is correct. For this do show flash.

7246VXR#show flash

-#- ED --type-- --crc--- -seek-- nlen -length- -----date/time------ name

1   .. unknown  2D6C7818   200CC    9       74 Feb 28 2001 7:39:09 silver.cm

2   .. unknown  1CB785DC   20258    7       62 Feb 20 2001 15:44:11 test.cm

3   .. image    4350A04F  7A0CC8   24  7866864 Feb 27 2001 09:36:40 ubr7200-ik1s-mz.121-4.EC

4   .. unknown  36E5D6D3  7A0D94    7       76 Feb 28 2001 07:23:12 gold.cm

8516204 bytes available (7867796 bytes used)

To enable the TFTP service on the CMTS there we only need to include the following command in global config mode.

tftp-server slot0:silver.cm alias silver.cm

Once this command is entered, the following will show after in the configuration:

!

tftp-server slot0:silver.cm alias silver.cm

tftp-server server

!

For more information about the configuration of tftp server in a router see the document Additional File Transfer Commands.

The Internal DOCSIS configuration file generator

Cisco CMTS products running Cisco IOS Software Release 12.1(2)EC or later (in the EC release train) can be configured to generate and internally store DOCSIS configuration files. This is useful because it takes away the requirement of having access to an external DOCSIS configuration file generation tool. When a DOCSIS configuration file is created using the internal configuration tool, the file becomes automatically available via TFTP. In addition only cable modems on directly connected cable interfaces are able to download these configuration files.

The following configuration sample shows the creation of two DOCSIS config files.

The first is called disable.cm which allows a cable modem to come online but stops connected CPE devices from accessing the service provider's network. In this case we see the command "access-denied". Notice that the Downstream and Upstream speeds in this case are 1Kbps, the maximum burst size is 1600 bytes.

cable config-file disable.cm

access-denied

service-class 1 max-upstream 1

service-class 1 max-downstream 1600

timestamp

!

The reason a cable operator would have this "disable.cm" DOCSIS configuration file is because he/she wants to deny access to the CPE behind the cable modems while letting the cable modem to come online. This is a more efficient way to deny CPEs service that using the "exclude" option in CNR which will not allow the cable modem to come online and therefore the cable modem will try to get online over and over which will waste bandwidth.

Cable modems getting this DOCSIS configuration file will look like under the command show cable modem:

Cable4/0/U0 10   online(d)  2287    0.50  6   0   10.1.4.65       0010.7bed.9b45

The (|| add link when available) below gives more details on this outupt. The status "online(d)" means that the cable modems is only but access is denied.

In the second example, a DOCSIS configuration file name is being created called "platinum.cm". In this case the Maximum upstream value is 1Mbps, the guarantied upstream is 100Kpbs, the maximum downstream is 10Mbps and it allows up to 30 CPE devices to be connected to this.

cable config-file platinum.cm

service-class 1 max-upstream 1000

service-class 1 guaranteed-upstream 100

service-class 1 max-downstream 10000

service-class 1 max-burst 1600

cpe max 30

timestamp

!

Notice that while configuring the DOCSIS configuration file in the CMTS we do not need the statement "tftp server slot0:platinum.cm alias platinum.cm" because there is no ".cm" file stored on memory, it resides within the configuration. Further details on the Internal DOCSIS configuration file tool can be found in the document Cable Modem Termination System Commands.

Sample Diagram

A typical lab set up topology is described in the picture.

Configurations

This configuration is supported in all Cisco's CMTS platforms. This includes uBR7200, uBR7246 VXR, uBR7100, and uBR10000.

The Cisco IOS Software Release that supports all in one configuration, including the configuration of the DOCSIS configuration file, is Cisco IOS Software Release 12.1(2)EC and the subsequent EC train releases.

The following configurations were done in a uBR7246 VXR using Cisco IOS Software Release 12.1(4)EC and having a NPE300. First a basic configuration is presented and then a more advanced configuration will be shown.

Basic all-in-one configuration

The configuration below summarizes all the pieces that we explained in on the document. It has two dhcp scopes, one for the cable modems and other one for the hosts behind the cable modems.

One DOCSIS configuration file was created called platinum.cm. This file is applied to the DHCP pool called cm-platinum. The other DOCSIS configuration file called disabled.cm is not applied to anything at the moment.

There are two DHCP pools configured in this example, one for the cable modems and another one for the PC's behind the cable modems.

Note:  All-in-one configuration commands are in bold.

Basic "all-in-one config" 7246VXR

7246VXR#show run

version 12.1

no service pad

service timestamps debug datetime msec localtime

! -- provides nice timestamps on all log messages

service timestamps log datetime localtime

no service password-encryption

service linenumber

service udp-small-servers max-servers no-limit

! -- supports a large number of modems / hosts attaching quickly

!

hostname 7246VXR

!

logging buffered 1000000 debugging

enable password cable

!

cable qos profile 8

cable qos profile 10

cable qos profile 10 grant-size 1500

cable qos profile 12 guaranteed-upstream 100000

no cable qos permission create

no cable qos permission update

cable qos permission modems

cable time-server

! --  permits cable modems to obtain Time of Day (ToD) from uBR7246VXR

!

cable config-file disable.cm

access-denied

service-class 1 max-upstream 1

service-class 1 max-downstream 1600

cpe max 1

timestamp

!

cable config-file platinum.cm

service-class 1 max-upstream 128

service-class 1 guaranteed-upstream 10

service-class 1 max-downstream 10000

service-class 1 max-burst 1600

cpe max 10

timestamp

!

clock timezone PDT -8

clock summer-time PDT recurring

clock calendar-valid

ip subnet-zero

ip cef

! -- Turn on cef switching / routing, anything but process  switching (no ip route-cache)

ip cef accounting per-prefix

no ip finger

ip tcp synwait-time 5

no ip domain-lookup

! -- Prevents cmts from looking up domain names / attempting  ! -- to connect to machines when mistyping commands

ip host vxr 172.16.26.103

ip domain-name cisco.com

ip name-server 171.68.10.70

ip name-server 171.69.2.132

ip name-server 171.68.200.250

no ip dhcp relay information check

!

!

!

ip dhcp pool cm-platinum

! -- name of the dhcp pool. This scope is for the cable modems attached  ! -- to interface cable 4/0

network 10.1.4.0 255.255.255.0

! -- pool of addresses for scope modems-c4/0

bootfile platinum.cm

! -- DOCSIS config file name associated with this pool

next-server 10.1.4.1

! -- IP address of TFTP server which sends bootfile

default-router 10.1.4.1

! -- default gateway for cable modems, necessary to get DOCSIS files

option 7 ip 10.1.4.1

! -- Log Server DHCP option

option 4 ip 10.1.4.1

! -- ToD server IP address

option 2 hex ffff.8f80

! -- Time offset for ToD, in seconds, HEX, from GMT, -28,000 = PST = ffff.8f80

lease 7 0 10

! -- lease 7 days 0 hours 10 minutes

!

ip dhcp pool pcs-c4

! -- name of the dhcp pool. This scope is for the CPEs  attached  ! -- the cable modems that are connected to interface cable 4/0

network 172.16.29.0 255.255.255.224

! -- pool of addresses for scope pcs-c4 (associated with the secondary address)

next-server 172.16.29.1

default-router 172.16.29.1

dns-server 172.16.30.2

domain-name cisco.com

lease 7 0 10

!

!

interface Ethernet2/0

ip address 172.16.30.4 255.255.255.192

no ip mroute-cache

half-duplex

!

interface Cable4/0

ip address 172.16.29.1 255.255.255.224 secondary

! -- used for the scope pcs-c4 so that PC's get an ip address on this network

ip address 10.1.4.1 255.255.255.0

! -- used for the scope modems-c4/0 so that cable modems get an ip address from this network

no ip route-cache cef

no keepalive

cable downstream rate-limit token-bucket shaping

cable downstream annex B

cable downstream modulation 64qam

cable downstream interleave-depth 32

cable downstream frequency 555000000

cable upstream 0 frequency 40000000

cable upstream 0 power-level 0

no cable upstream 0 shutdown

cable upstream 1 shutdown

cable upstream 2 shutdown

cable upstream 3 shutdown

cable upstream 4 shutdown

cable upstream 5 shutdown

cable dhcp-giaddr policy

! -- Used to  modify the GIADDR field of DHCPDISCOVER and DHCPREQUEST packets with a ! -- Relay IP address before they are forwarded to the DHCP server

!

!

router eigrp 202

redistribute connected

redistribute static

network 10.0.0.0

network 172.16.0.0

no auto-summary

no eigrp log-neighbor-changes

!

router rip

version 2

redistribute connected

redistribute static

network 10.0.0.0

network 172.16.0.0

no auto-summary

!

ip default-gateway 172.16.30.1

ip classless

ip route 0.0.0.0 0.0.0.0 172.16.30.1

ip route 172.16.30.0 255.255.255.0 Ethernet2/0

ip http server

ip http authentication local

!

snmp-server engineID local 00000009020000E01ED77E40

snmp-server community public RO

snmp-server community private RW

tftp-server server

! -- enable the cmts to act as a tftp server

tftp-server slot0:silver.cm alias silver.cm

! -- get the DOCSIS config file called silver.cm that is pre-downloaded to flash. ! -- this DOCSIS config file is built using DOCSIS CPE Configurator.

!

line con 0

exec-timeout 0 0

transport input none

line aux 0

speed 19200

line vty 0 4

session-timeout 60

login

!

ntp clock-period 17179977

ntp server 172.16.135.51

end

Verification Tips for Basic Configuration

First we have to make sure that the command are supported in the Cisco IOS Software Release. For this we can do show version.

7246VXR#show version

Cisco Internetwork Operating System Software

IOS (tm) 7200 Software (UBR7200-IK1S-M), Version 12.1(4)EC, EARLY DEPLOYMENT RELEASE SOFTWARE (fc1)

Copyright (c) 1986-2000 by cisco Systems, Inc.

Compiled Fri 08-Dec-00 17:35 by ninahung

Image text-base: 0x60008950, data-base: 0x612AA000

ROM: System Bootstrap, Version 12.0(19990210:195103) [12.0XE 105], DEVELOPMENT SOFTWARE

BOOTFLASH: 7200 Software (UBR7200-BOOT-M), Version 12.0(7)T,  RELEASE SOFTWARE (fc2)

7246VXR uptime is 9 minutes

System returned to ROM by reload at 09:47:00 PDT Tue Feb 27 2001

System restarted at 09:48:26 PDT Tue Feb 27 2001

System image file is "slot0:ubr7200-ik1s-mz.121-4.EC"

cisco uBR7246VXR (NPE300) processor (revision C) with 253952K/40960K bytes of memory.

Processor board ID SAB03500058

R7000 CPU at 262Mhz, Implementation 39, Rev 1.0, 256KB L2, 2048KB L3 Cache

6 slot VXR midplane, Version 2.0

Last reset from power-on

Bridging software.

X.25 software, Version 3.0.0.

4 Ethernet/IEEE 802.3 interface(s)

1 FastEthernet/IEEE 802.3 interface(s)

5 Cable Modem network interface(s)

125K bytes of non-volatile configuration memory.

16384K bytes of Flash PCMCIA card at slot 0 (Sector size 128K).

4096K bytes of Flash internal SIMM (Sector size 256K).

Configuration register is 0x2102

We need to verify that the DOCSIS configuration file is in flash.

7246VXR#show flash

-#- ED --type-- --crc--- -seek-- nlen -length- -----date/time------ name

1   .. unknown  2D6C7818   200CC    9       74 Feb 28 2001 7:39:09 silver.cm

2   .. unknown  1CB785DC   20258    7       62 Feb 20 2001 15:44:11 test.cm

3   .. image    4350A04F  7A0CC8   24  7866864 Feb 27 2001 09:36:40 ubr7200-ik1s-mz.121-4.EC

4   .. unknown  36E5D6D3  7A0D94    7       76 Feb 28 2001 07:23:12 gold.cm

8516204 bytes available (7867796 bytes used)

Notice that the file "silver.cm" was built using DOCSIS CPE Configurator tool . For the platunum.cm file that was built in the CMTS configuration you do not need the statement "tftp server slot0:platinum.cm alias platinum.cm" because there is no "Cm" file, it resides within the configuration.

The next step is to verify that the cable modems are online. We can achieve this with the command show cable modem.

7246VXR#show cable modem

Interface   Prim Online     Timing Rec    QoS CPE IP address      MAC address

Sid  State      Offset Power

Cable4/0/U0 75   online     2290    0.00  5   1   10.1.4.2        0010.7bed.9b23

Cable4/0/U0 76   online     2809    0.00  5   0   10.1.4.3        0002.fdfa.0a63

Cable4/0/U0 77   online     2288    0.25  5   1   10.1.4.5        0010.7bed.9b45

Cable4/0/U0 78   online     2810    0.50  5   0   10.1.4.4        0004.2752.ddd5

Cable4/0/U0 79   online     2813    0.25  5   0   10.1.4.6        0002.1685.b5db

Cable4/0/U0 80   online     2812   -0.50  5   0   10.1.4.7        0001.64ff.e47d

Notice that all the cable modems are online. The ones connected to interface cable 4/0/U0 are in the network 10.1.4.0. We can see from the configuration that their ip addresses are taken from the dhcp pool called "cm-platinum".

Also notice that cable modems with Mac addresses 0010.7bed.9b23, and 0010.7bed.9b45 respectively, have a CPE behind. Those cable modems come online with the default bridging configuration. Those PCs are configured with DHCP so that they can get their IP address from the network.

7246VXR#show interface cable 4/0 modem 0

SID   Priv bits  Type      State     IP address    method    MAC address

75    00         host      unknown   172.16.29.2   static    00c0.4f97.61c5

75    00         modem     up        10.1.4.2      dhcp      0010.7bed.9b23

76    00         modem     up        10.1.4.3      dhcp      0002.fdfa.0a63

77    00         host      unknown   172.16.29.3   dhcp      00a0.243c.eff5

77    00         modem     up        10.1.4.5      dhcp      0010.7bed.9b45

78    00         modem     up        10.1.4.4      dhcp      0004.2752.ddd5

79    00         modem     up        10.1.4.6      dhcp      0002.1685.b5db

80    00         modem     up        10.1.4.7      dhcp      0001.64ff.e47d

The following pictures show that those PCs get an IP address from the pools called "pcs-c4."

We can also see from this PC that the TCP/IP settings are to obtain ip address automatically.

Advanced all-in-one Configuration

This section provides a more sophisticated configuration example which involves the hierarchy functionality of dhcp pools. The way DHCP pool hierarchy works is that any DHCP pool with a network number that is a subset of another pool's network number inherits all the characteristics of that other pool. This saves repetition in DHCP server configuration. However, if the same specification is done with a different parameter then the parameter will be overwritten. This example will show a general pool with a bootfile called platinum.cm and a subset of this pool will have a bootfile called disable.cm.

In addition to the DHCP pools created in the basic example, we have special requirements for two cable modems.

The cable modem 0010.7bed.9b45 will be denied access. This means that the cable modem will be granted an IP address but it will not come online. For this we will create the following pool:

ip dhcp pool cm-0010.7bed.9b45

host 10.1.4.65 255.255.255.0

client-identifier 0100.107b.ed9b.45

bootfile disable.cm

The most notable feature of this configuration example is the section where special DHCP pools corresponding to individual cable modem MAC addresses are specified. This is so that the DHCP server can send unique DHCP options to these modems. In order to specify a particular cable modem the "client-identifier" parameter is used. The "client-identifier" must be set to 01 followed by the MAC address of the device the entry corresponds to. The 01 corresponds to hardware type of ethernet for DHCP.

Note: When changing config files for a modem it is necessary to do the following so that the cable modem gets the manually configured parameters:

- Clear the ip dhcp binding table using the command clear ip dhcp binding <ip address> ."

- Reset the cable modem in question using the command clear cable modem <mac address > res.

The cable modem 0010.7bed.9b23 also has an special requirement. This will get a different quality of service. Therefore a different bootfile is associated to the scope. See the partial configuration below:

ip dhcp pool cm-0010.7bed.9b23

host 10.1.4.66 255.255.255.0

client-identifier 0100.107b.ed9b.23

bootfile silver.cm

!

When configuring DHCP pools for specific cable modems it is always a good practice to give a relevant name. Also, since a specific ip address is assigned to the pool using the host command, we need to add the global command ip dhcp exclude 10.1.4.60 10.1.4.70. This command tells DHCP do not hand out addresses belonging to this range.

Advanced "all-in-one config" 7246VXR

7246VXR# show run

version 12.1

no service pad

service timestamps debug datetime msec localtime

service timestamps log datetime localtime

no service password-encryption

service linenumber

service udp-small-servers max-servers no-limit

!

hostname 7246VXR

!

logging buffered 1000000 debugging

!

cable qos profile 8

cable qos profile 10

cable qos profile 10 grant-size 1500

cable qos profile 12 guaranteed-upstream 100000

no cable qos permission create

no cable qos permission update

cable qos permission modems

cable time-server

!

cable config-file disable.cm

access-denied

service-class 1 max-upstream 1

service-class 1 max-downstream 1600

cpe max 1

timestamp

!

cable config-file platinum.cm

service-class 1 max-upstream 128

service-class 1 guaranteed-upstream 10

service-class 1 max-downstream 10000

service-class 1 max-burst 1600

cpe max 10

timestamp

!

clock timezone PDT -8

clock summer-time PDT recurring

clock calendar-valid

ip subnet-zero

no ip finger

no ip domain-lookup

ip host vxr 172.16.26.103

ip domain-name cisco.com

ip name-server 171.68.10.70

ip name-server 171.69.2.132

ip name-server 171.68.200.250

ip dhcp excluded-address 10.1.4.60 10.1.4.70

!

ip dhcp pool cm-platinum

network 10.1.4.0 255.255.255.0

bootfile platinum.cm

next-server 10.1.4.1

default-router 10.1.4.1

option 7 ip 10.1.4.1

option 4 ip 10.1.4.1

option 2 hex ffff.8f80

lease 7 0 10

!

ip dhcp pool pcs-c4

network 172.16.29.0 255.255.255.224

next-server 172.16.29.1

default-router 172.16.29.1

dns-server 172.16.30.2

domain-name cisco.com

lease 7 0 10

!

ip dhcp pool cm-0010.7bed.9b45

host 10.1.4.65 255.255.255.0

client-identifier 0100.107b.ed9b.45

bootfile disable.cm

!

ip dhcp pool cm-0010.7bed.9b23

host 10.1.4.66 255.255.255.0

client-identifier 0100.107b.ed9b.23

bootfile silver.cm

!

!

interface Ethernet2/0

ip address 172.16.30.4 255.255.255.192

no ip mroute-cache

half-duplex

!

interface Cable4/0

ip address 172.16.29.1 255.255.255.224 secondary

ip address 10.1.4.1 255.255.255.0

no keepalive

cable downstream rate-limit token-bucket shaping

cable downstream annex B

cable downstream modulation 64qam

cable downstream interleave-depth 32

cable downstream frequency 555000000

cable upstream 0 frequency 40000000

cable upstream 0 power-level 0

no cable upstream 0 shutdown

cable upstream 1 shutdown

cable upstream 2 shutdown

cable upstream 3 shutdown

cable upstream 4 shutdown

cable upstream 5 shutdown

cable dhcp-giaddr policy

!

router eigrp 202

redistribute connected

redistribute static

network 10.0.0.0

network 172.16.0.0

no auto-summary

no eigrp log-neighbor-changes

!

router rip

version 2

redistribute connected

redistribute static

network 10.0.0.0

network 172.16.0.0

no auto-summary

!

ip default-gateway 172.16.30.1

ip classless

ip route 0.0.0.0 0.0.0.0 172.16.30.1

ip route 172.16.30.0 255.255.255.0 Ethernet2/0

ip http server

ip http authentication local

!

access-list 188 permit tcp any any eq www log

access-list 188 permit ip any any

route-map docsis permit 10

!

snmp-server engineID local 00000009020000E01ED77E40

snmp-server community public RO

snmp-server community private RW

tftp-server slot0:silver.cm alias silver.cm

tftp-server server

line con 0

exec-timeout 0 0

transport input none

line aux 0

speed 19200

line vty 0 4

session-timeout 60

exec-timeout 0 0

login

!

ntp clock-period 17179973

end

Verification Tips for Advanced Configuration

The verification of this configuration focuses on the services that the cable modems are getting, specially 0010.7bed.9b45 and 0010.7bed.9b23. We need to be sure that they are getting the addresses that were manually configured with and the service.

The first thing to test is that 0010.7bed.9b45 will come online but service will be denied. For this we let's take a look at the show cable modem command:

7246VXR#show cable modem

Interface   Prim Online     Timing Rec    QoS CPE IP address      MAC address

Sid  State      Offset Power

Cable4/0/U0 7    online     2813    0.00  7   0   10.1.4.7        0002.1685.b5db

Cable4/0/U0 8    online     2809    0.25  7   0   10.1.4.10       0002.fdfa.0a63

Cable4/0/U0 9    online     2288   -0.25  5   1   10.1.4.66       0010.7bed.9b23

Cable4/0/U0 10   online(d)  2287    0.50  6   0   10.1.4.65       0010.7bed.9b45

Cable4/0/U0 11   online     2809   -0.50  7   0   10.1.4.6        0001.64ff.e47d

Cable4/0/U0 12   online     2812   -0.50  7   0   10.1.4.9        0004.2752.ddd5

There are several points to notice here:

- Cable modem 0010.7bed.9b23 got IP address 10.4.1.66 as specified in the scope cm-0010.7bed.9b23. There is a computer attached to it and it gets its ip address from pool pcs-c4.

- Cable modem 0010.7bed.9b23 has a different QoS.

- Cable modem 0010.7bed.9b45 got IP address 10.1.4.65 as specified in the scope cm-0010.7bed.9b45. There is a computer attached to it, however the CPE value is 0. The reason is that the service is denied.

- The Online State of 0010.7bed.9b45 is online(d) which means that the cable modem comes online but the access to the cable network is denied. See the output of debug cable mac log verbose from cable modem.

21:52:16:  78736.550 CMAC_LOG_RESET_RANGING_ABORTED

21:52:16:  78736.554 CMAC_LOG_STATE_CHANGE                       reset_interface_state

21:52:16:  78736.558 CMAC_LOG_STATE_CHANGE                       reset_hardware_state

21:52:17:  78737.024 CMAC_LOG_STATE_CHANGE                       wait_for_link_up_state

21:52:17:  78737.028 CMAC_LOG_DRIVER_INIT_IDB_RESET              0x082B9CA8

21:52:17:  78737.032 CMAC_LOG_LINK_DOWN

21:52:17:  78737.034 CMAC_LOG_LINK_UP

21:52:17:  78737.040 CMAC_LOG_STATE_CHANGE                       ds_channel_scanning_state

21:52:17: %LINEPROTO-5-UPDOWN: Line protocol on Interface cable-modem0, changed state to down

21:52:18:  78738.386 CMAC_LOG_UCD_MSG_RCVD                       1

21:52:19:  78739.698 CMAC_LOG_DS_64QAM_LOCK_ACQUIRED             747000000

21:52:19:  78739.702 CMAC_LOG_DS_CHANNEL_SCAN_COMPLETED

21:52:19:  78739.704 CMAC_LOG_STATE_CHANGE                       wait_ucd_state

21:52:20:  78740.368 CMAC_LOG_UCD_MSG_RCVD                       1

21:52:22:  78742.396 CMAC_LOG_UCD_MSG_RCVD                       1

21:52:22:  78742.398 CMAC_LOG_ALL_UCDS_FOUND

21:52:22:  78742.402 CMAC_LOG_STATE_CHANGE                       wait_map_state

21:52:22:  78742.406 CMAC_LOG_FOUND_US_CHANNEL                   1

21:52:24:  78744.412 CMAC_LOG_UCD_MSG_RCVD                       1

21:52:24:  78744.416 CMAC_LOG_UCD_NEW_US_FREQUENCY               39984000

21:52:24:  78744.420 CMAC_LOG_SLOT_SIZE_CHANGED                  8

21:52:24:  78744.500 CMAC_LOG_UCD_UPDATED

21:52:24:  78744.560 CMAC_LOG_MAP_MSG_RCVD

21:52:24:  78744.564 CMAC_LOG_INITIAL_RANGING_MINISLOTS          41

21:52:24:  78744.566 CMAC_LOG_STATE_CHANGE                       ranging_1_state

21:52:24:  78744.570 CMAC_LOG_RANGING_OFFSET_SET_TO              9610

21:52:24:  78744.574 CMAC_LOG_POWER_LEVEL_IS                     55.0  dBmV (commanded)

21:52:24:  78744.578 CMAC_LOG_STARTING_RANGING

21:52:24:  78744.580 CMAC_LOG_RANGING_BACKOFF_SET                0

21:52:24:  78744.586 CMAC_LOG_RNG_REQ_QUEUED                     0

21:52:24:  78744.622 CMAC_LOG_RNG_REQ_TRANSMITTED

21:52:24:  78744.626 CMAC_LOG_RNG_RSP_MSG_RCVD

21:52:24:  78744.628 CMAC_LOG_RNG_RSP_SID_ASSIGNED               10

21:52:24:  78744.632 CMAC_LOG_ADJUST_RANGING_OFFSET              2286

21:52:24:  78744.636 CMAC_LOG_RANGING_OFFSET_SET_TO              11896

21:52:24:  78744.638 CMAC_LOG_STATE_CHANGE                       ranging_2_state

21:52:24:  78744.644 CMAC_LOG_RNG_REQ_QUEUED                     10

21:52:25:  78745.654 CMAC_LOG_RNG_REQ_TRANSMITTED

21:52:25:  78745.658 CMAC_LOG_RNG_RSP_MSG_RCVD

21:52:25:  78745.660 CMAC_LOG_RANGING_SUCCESS

21:52:25:  78745.680 CMAC_LOG_STATE_CHANGE                       dhcp_state

21:52:25:  78745.820 CMAC_LOG_DHCP_ASSIGNED_IP_ADDRESS           10.1.4.65

21:52:25:  78745.824 CMAC_LOG_DHCP_TFTP_SERVER_ADDRESS           10.1.4.1

21:52:25:  78745.826 CMAC_LOG_DHCP_TOD_SERVER_ADDRESS            10.1.4.1

21:52:25:  78745.830 CMAC_LOG_DHCP_SET_GATEWAY_ADDRESS

21:52:25:  78745.834 CMAC_LOG_DHCP_TZ_OFFSET                     -28800

21:52:25:  78745.836 CMAC_LOG_DHCP_CONFIG_FILE_NAME              disable.cm

21:52:25:  78745.840 CMAC_LOG_DHCP_ERROR_ACQUIRING_SEC_SVR_ADDR

21:52:25:  78745.846 CMAC_LOG_DHCP_COMPLETE

21:52:25:  78745.968 CMAC_LOG_STATE_CHANGE                       establish_tod_state

21:52:25:  78745.978 CMAC_LOG_TOD_REQUEST_SENT

21:52:26:  78746.010 CMAC_LOG_TOD_REPLY_RECEIVED                 3192525217

21:52:26:  78746.018 CMAC_LOG_TOD_COMPLETE

21:52:26:  78746.020 CMAC_LOG_STATE_CHANGE                       security_association_state

21:52:26:  78746.024 CMAC_LOG_SECURITY_BYPASSED

21:52:26:  78746.028 CMAC_LOG_STATE_CHANGE                       configuration_file_state

21:52:26:  78746.030 CMAC_LOG_LOADING_CONFIG_FILE                disable.cm

21:52:26: %LINEPROTO-5-UPDOWN: Line protocol on Interface cable-modem0, changed state to up

21:52:27:  78747.064 CMAC_LOG_CONFIG_FILE_PROCESS_COMPLETE

21:52:27:  78747.066 CMAC_LOG_STATE_CHANGE                       registration_state

21:52:27:  78747.070 CMAC_LOG_REG_REQ_MSG_QUEUED

21:52:27:  78747.076 CMAC_LOG_REG_REQ_TRANSMITTED

21:52:27:  78747.080 CMAC_LOG_REG_RSP_MSG_RCVD

21:52:27:  78747.082 CMAC_LOG_COS_ASSIGNED_SID                   1/10

21:52:27:  78747.088 CMAC_LOG_RNG_REQ_QUEUED                     10

21:52:27:  78747.090 CMAC_LOG_NETWORK_ACCESS_DENIED

21:52:27:  78747.094 CMAC_LOG_REGISTRATION_OK

21:52:27:  78747.096 CMAC_LOG_STATE_CHANGE                       establish_privacy_state

21:52:27:  78747.100 CMAC_LOG_PRIVACY_NOT_CONFIGURED

21:52:27:  78747.102 CMAC_LOG_STATE_CHANGE                       maintenance_state

21:52:31:  78751.122 CMAC_LOG_RNG_REQ_TRANSMITTED

21:52:31:  78751.124 CMAC_LOG_RNG_RSP_MSG_RCVD

21:52:37:  78757.164 CMAC_LOG_RNG_REQ_TRANSMITTED

21:52:37:  78757.168 CMAC_LOG_RNG_RSP_MSG_RCVD

21:52:43:  78763.206 CMAC_LOG_RNG_REQ_TRANSMITTED

21:52:43:  78763.210 CMAC_LOG_RNG_RSP_MSG_RCVD

21:52:49:  78769.250 CMAC_LOG_RNG_REQ_TRANSMITTED

21:52:49:  78769.252 CMAC_LOG_RNG_RSP_MSG_RCVD

The output of this debug shows that the Network Access is Denied.

7246VXR#show cable modem detail

Interface   SID  MAC address    Max CPE  Concatenation  Rx SNR

Cable4/0/U0 7    0002.1685.b5db 10       yes            33.52

Cable4/0/U0 8    0002.fdfa.0a63 10       yes            33.24

Cable4/0/U0 9    0010.7bed.9b23 1        no             33.29

Cable4/0/U0 10   0010.7bed.9b45 1        no             33.23

Cable4/0/U0 11   0001.64ff.e47d 10       yes            33.20

Cable4/0/U0 12   0004.2752.ddd5 10       yes            33.44

Notice that the Max CPE for cable modems with special scopes is 1 and the rest are 10. If you see the configuration of scope platinum.cm, it has 10 CPEs specified, on the other hand, scope disable.cm has only 1 CPE. The preconfigured DOCSIS configuration file silver.cm has also only one CPE specified.

7246VXR#show interface cable 4/0 modem 0

SID   Priv bits  Type      State     IP address    method    MAC address

7     00         modem     up        10.1.4.7      dhcp      0002.1685.b5db

8     00         modem     up        10.1.4.10     dhcp      0002.fdfa.0a63

9     00         host      unknown   172.16.29.2   static    00c0.4f97.61c5

9     00         modem     up        10.1.4.66     dhcp      0010.7bed.9b23

10    00         modem     up        10.1.4.65     dhcp      0010.7bed.9b45

11    00         modem     up        10.1.4.6      dhcp      0001.64ff.e47d

12    00         modem     up        10.1.4.9      dhcp      0004.2752.ddd5

To verify that the cable modems are getting the correct level of service, we see the output of the command show cable qos profile.

7246VXR#show cable qos profile

ID  Prio Max       Guarantee Max        Max   TOS  TOS   Create  B     IP prec.

upstream  upstream  downstream tx    mask value by      priv  rate

bandwidth bandwidth bandwidth  burst                    enab  enab

1   0    0         0         0          0     0x0  0x0   cmts(r) no    no

2   0    64000     0         1000000    0     0x0  0x0   cmts(r) no    no

3   7    31200     31200     0          0     0x0  0x0   cmts    yes   no

4   7    87200     87200     0          0     0x0  0x0   cmts    yes   no

5   4    64000     0         512000     0     0x0  0x0   cm      no    no

6   0    1000      0         1600000    0     0x0  0x0   cm      no    no

7   0    128000    10000     10000000   1600  0x0  0x0   cm      no    no

8   0    0         0         0          0     0x0  0x0   mgmt    no    no

10  0    0         0         0          0     0x0  0x0   mgmt    no    no

12  0    0         100000000 0          0     0x0  0x0   mgmt    no    no

Notice that qos ID 7 matches with the configuration on platinum.cm:

cable config-file platinum.cm

service-class 1 max-upstream 128

service-class 1 guaranteed-upstream 10

service-class 1 max-downstream 10000

service-class 1 max-burst 1600

cpe max 10

timestamp

The same happens with the DOCSIS configuration of disable.cm.

7246VXR#show ip dhcp binding

IP address       Hardware address        Lease expiration        Type

10.1.4.6         0100.0164.ffe4.7d       Mar 08 2001 07:58 AM    Automatic

10.1.4.7         0100.0216.85b5.db       Mar 08 2001 07:58 AM    Automatic

10.1.4.9         0100.0427.52dd.d5       Mar 08 2001 07:58 AM    Automatic

10.1.4.10        0100.02fd.fa0a.63       Mar 08 2001 08:36 AM    Automatic

10.1.4.65        0100.107b.ed9b.45       Infinite                Manual

10.1.4.66        0100.107b.ed9b.23       Infinite                Manual