Cisco IOS®软件配置文件是包含要发送到路由器的配置的文本文件。对于思科电缆调制解调器,发送的配置通常包含访问列表、主机名、SNMP社区字符串、密码或路由配置,这些配置与默认桥接配置不同。要发送Cisco IOS配置文件,必须将该文件嵌入到电缆调制解调器在其初始化过程的TFTP部分使用的电缆数据服务接口规范(DOCSIS)配置文件中。
将Cisco IOS配置文件下载到Cisco电缆调制解调器有两种方法。
第一种是使用DOCSIS CPE配置器工具,这是最常见的方法。请参阅Cisco DOCSIS CPE配置器(仅限注册客户)。 文档“使用Cisco DOCSIS配置器构建DOCSIS 1.0配置文件(仅限注册客户)”包含有关如何执行此操作的详细说明。
完成相同任务的第二种方法是在电缆调制解调器终端系统(CMTS)的Cisco IOS中使用命令行界面(CLI)。
本文档详细说明了无需使用DOCSIS配置器工具将IOS配置文件下载到Cisco电缆调制解调器的第二种方法。为此,我们使用增强版的一体化配置,允许Cisco CMTS配置为DHCP、ToD和TFTP服务器,并在CMTS上配置DOCSIS配置文件。
当我们要使用CLI向电缆调制解调器发送配置文件以配置DOCSIS配置文件时,需要添加一个DHCP选项,称为DHCP供应商特定信息选项,也称为选项43。
以这种方式配置电缆调制解调器的主要优势是,所有操作都可从思科的CMTS完成,而且不需要其他服务器(如DHCP、TFTP或ToD)和软件(如DOCSIS CPE配置器工具)来成功将Cisco IOS配置发送到思科电缆调制解调器,并通过自定义配置使其正常运行。
有关文档规则的详细信息,请参阅 Cisco 技术提示规则。
读者应该对以下方面有基本的了解:
DOCSIS协议
uBR系列路由器上的Cisco IOS命令行界面(CLI)
UNIX
动态主机配置协议 (DHCP)
请参阅下面的“在一个配置中配置所有”部分,包括DHCP选项43。
选项43是客户端和服务器用于交换供应商特定信息的DHCP选项。
此选项通常以“类型长度值”样式格式化,在该样式中,不同的信息片段可能由不同的子选项类型表示。“值”字段的含义由终端设备的制造商定义。图1以图形表示选项43。
类型 | 长度 | 价值 | 类型 | 长度 | 价值 | ||||
T1 | n | d1 | d2 | ......... | T2 | n | D1 | D2 | ........ |
图1 — 选项43中发送的数据的类型长度值结构。
要将Cisco IOS配置文件下载到Cisco电缆调制解调器,我们使用两个子选项,即供应商ID和供应商特定信息选项(VSIF)。
供应商ID子选项的类型为8。供应商的三字节组织唯一标识符(OUI)通常是电缆调制解调器MAC地址的前三个字节。此值通常表示为十六进制数。对于思科系统设备,此字段应为00:00:0C(十六进制)。下图2提供了供应商ID子选项的十六进制数。
类型 | 长度 | 价值 |
08 | 03 | 00:00:0C |
图2 -子选项供应商ID(十六进制值)
第二个子选项是供应商特定信息字段(VSIF)。 此子选项的类型为128,并且包含电缆调制解调器制造商定义的任何任意值。Cisco电缆调制解调器使用此字段标识应下载到路由器(如果有)的Cisco IOS配置文件名。
此字段中也可指定任意Cisco IOS命令。此字段通常以点分十进制表示。点分十进制记法是字母的十进制表示,根据ASCII,每个字母都有十进制值。“点”在十进制表示之间使用,以便更容易理解。
在本文档中,我们将介绍如何下载名为ios.cf的Cisco IOS配置文件。此文件的名称从ASCII转换为点分十进制。
要了解ASCII和点分十进制之间的转换是什么,可使用UNIX命令man ascii,如下所示。此命令提供多个转换表。我们需要查找十进制 — 字符表。
sj-cse-494% man ascii Reformatting page. Wait... done ASCII(5) Headers, Tables, and Macros ASCII(5) NAME ASCII - map of ASCII character set .... (skip the beginning) Decimal - Character | 0 NUL| 1 SOH| 2 STX| 3 ETX| 4 EOT| 5 ENQ| 6 ACK| 7 BEL| | 8 BS | 9 HT | 10 NL | 11 VT | 12 NP | 13 CR | 14 SO | 15 SI | | 16 DLE| 17 DC1| 18 DC2| 19 DC3| 20 DC4| 21 NAK| 22 SYN| 23 ETB| | 24 CAN| 25 EM | 26 SUB| 27 ESC| 28 FS | 29 GS | 30 RS | 31 US | | 32 SP | 33 ! | 34 " | 35 # | 36 $ | 37 % | 38 & | 39 ' | | 40 ( | 41 ) | 42 * | 43 + | 44 , | 45 - | 46 . | 47 / | | 48 0 | 49 1 | 50 2 | 51 3 | 52 4 | 53 5 | 54 6 | 55 7 | | 56 8 | 57 9 | 58 : | 59 ; | 60 < | 61 = | 62 > | 63 ? | | 64 @ | 65 A | 66 B | 67 C | 68 D | 69 E | 70 F | 71 G | | 72 H | 73 I | 74 J | 75 K | 76 L | 77 M | 78 N | 79 O | | 80 P | 81 Q | 82 R | 83 S | 84 T | 85 U | 86 V | 87 W | | 88 X | 89 Y | 90 Z | 91 [ | 92 \ | 93 ] | 94 ^ | 95 _ | | 96 ` | 97 a | 98 b | 99 c |100 d |101 e |102 f |103 g | |104 h |105 i |106 j |107 k |108 l |109 m |110 n |111 o | |112 p |113 q |114 r |115 s |116 t |117 u |118 v |119 w | |120 x |121 y |122 z |123 { |124 | |125 } |126 ~ |127 DEL|
因此,ios.cf的点分十进制表示为105.111.115.46.99.102,如图3所示。
i | o | s | 。 | c | f |
105 | 111 | 115 | 46 | 99 | 192 |
图3 — 文件名ios.cf的点分十进制表示。
由于VSIF是Type-Length-Value格式,因此名为ios.cf的Cisco IOS配置文件的完整点分十进制表示为128.6.105.111.115.46.99.192。如您所见,128.6已添加到图3所示的ios.cf的点分十进制表示中。请记住,“128”是类型,“6”是长度。
128.6.105.111.115.46.99.192是在DOCSIS CPE配置器工具V3.2的“供应商信息”选项卡的VSIF字段中输入的值,如下图4所示。
图4 - DOCSIS CPE配置器工具的“供应商信息”字段。
但是,在使用DHCP选项43的Cisco IOS中执行此功能时,Type-Length-Value(TLV)信息应以十六进制值表示。本文档重点介绍此十六进制表达式。
要查找ASCII字符的十六进制表示形式,可使用Unix命令:
echo -n "ios.cf" | od -t x1 | cut -s -d' ' -f2- | tr ' ' ':' sj-cse-494% echo -n "ios.cf" | OD -t x1 | cut -s -d' ' -f2- | tr ' ' ':' 69:6f:73:2e:63:66
或者,您也可以使用ASCII中的前一个UNIX命令并找到“十六进制 — 字符”表。
sj-cse-494% man ASCII Reformatting page. Wait... done ASCII(5) Headers, Tables, and Macros ASCII(5) NAME ASCII - map of ASCII character set .... (skip the beginning) Hexadecimal - Character | 00 NUL| 01 SOH| 02 STX| 03 ETX| 04 EOT| 05 ENQ| 06 ACK| 07 BEL| | 08 BS | 09 HT | 0A NL | 0B VT | 0C NP | 0D CR | 0E SO | 0F SI | | 10 DLE| 11 DC1| 12 DC2| 13 DC3| 14 DC4| 15 NAK| 16 SYN| 17 ETB| | 18 CAN| 19 EM | 1A SUB| 1B ESC| 1C FS | 1D GS | 1E RS | 1F US | | 20 SP | 21 ! | 22 " | 23 # | 24 $ | 25 % | 26 & | 27 ' | | 28 ( | 29 ) | 2A * | 2B + | 2C , | 2D - | 2E . | 2F / | | 30 0 | 31 1 | 32 2 | 33 3 | 34 4 | 35 5 | 36 6 | 37 7 | | 38 8 | 39 9 | 3A : | 3B ; | 3C < | 3D = | 3E > | 3F ? | | 40 @ | 41 A | 42 B | 43 C | 44 D | 45 E | 46 F | 47 G | | 48 H | 49 I | 4A J | 4B K | 4C L | 4D M | 4E N | 4F O | | 50 P | 51 Q | 52 R | 53 S | 54 T | 55 U | 56 V | 57 W | | 58 X | 59 Y | 5A Z | 5B [ | 5C \ | 5D ] | 5E ^ | 5F _ | | 60 ` | 61 a | 62 b | 63 c | 64 d | 65 e | 66 f | 67 g | | 68 h | 69 i | 6A j | 6B k | 6C l | 6D m | 6E n | 6F o | | 70 p | 71 q | 72 r | 73 s | 74 t | 75 u | 76 v | 77 w | | 78 x | 79 y | 7A z | 7B { | 7C | | 7D } | 7E ~ | 7F DEL|
下图5总结了供应商特定信息字段(VSIF)的点分十进制和十六进制表示。
类型 | 长度 | 价值 | |
点分十进制 | 128 | 6 | 105.111.115.46.99.102 |
十六进制 | 80 | 06 | 69:6F:73:2E:63:66 |
图5 — 点分十进制和十六进制的子选项VSIF。
此配置使用下面软件和硬件版本开发并且被测试。
运行12.2(2)XF的思科uBR10012
运行12.2(2)XA的思科CVA120
本文档中的信息都是基于特定实验室环境中的设备创建的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您在实时网络中工作,请确保在使用任何Cisco IOS命令之前了解其潜在影响。
配置选项43的第一步是了解供应商ID的必要十六进制值和DHCP选项43的VSIF子选项的必要十六进制值。
下表总结了供应商特定信息部分中详细讨论的这些值。
供应商ID子选项 | VSIF子选项 | |||||
TLV | 类型 | 长度 | 价值 | 类型 | 长度 | 价值 |
十六进制 | 08 | 03 | 00:00:0C | 80 | 06 | 69:6F:73:2E:63:66 |
含义 | 供应商ID类型 | 供应商ID长度 | 思科ID | VSIF类型 | VSIF长度 | (文件名)ios.cf |
图 6
一旦我们知道将输入哪个值,就需要使用思科CMTS的CLI生成DOCSIS配置文件所需的所有属性,包括DHCP选项43。
要创建DOCSIS配置文件,我们需要输入全局命令cable config-file DOCSIS-file-name。以下输出显示了名为platinum.cm的DOCSIS配置文件的创建。下文解释了platinum.cm的所有设置。
Note: !--- Comments are in blue. cable config-file platinum.cm !--- Name of the DOCSIS config file is platinum.cm service-class 1 priority 2 !--- The Upstream Channel priority is 2 service-class 1 max-upstream 128 !--- The Maximum upstream value is 128Kbps service-class 1 guaranteed-upstream 10 !--- The Guaranteed Upstream is 10 Kbps service-class 1 max-downstream 10000 !--- The Maximum Downstream is 10Mbps service-class 1 max-burst 1600 !--- The Maximum Upstream Transmit burst is 1600 bytes cpe max 10 !--- The Maximum number of CPE's is 10 timestamp !--- Enable timestamp generation option 43 hex 08:03:00:00:0C:80:06:69:6F:73:2E:63:66 !--- Using option 43 to send the IOS Configuration file named "ios.cf" !--- to cable modems.
注意: cable config-file 命令在uBR7200和uBR7100的Cisco IOS版本12.1(2)EC1和uBR10的Cisco IOS版本12.2(1)XF1中引入k
注意:确保在使用十六进制选项时已正确输入TLV数据。不正确地输入的数据会造成CM重置,脱机或者暂停,需要重新通电才能继续。
创建DOCSIS配置文件platinum.cm后,我们需要将CMTS配置为DHCP服务器,并配置DHCP功能所需的选项。请参阅CMTS上的Cisco IOS动态主机配置协议(DHCP)服务,该服务解释了我们用于创建dhcp池的每个命令的含义。在此,我们将总结配置并提供简要说明。
DHCP池的配置如下:
ip dhcp pool surf !--- name of the dhcp pool. This scope is for the cable modems attached !--- to interface cable 5/0/0 network 10.1.4.0 255.255.255.0 !--- pool of addresses for scope from interface c5/0/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 !
第三步是将CMTS配置为TFTP服务器。为此,您需要:
使用命令tftp-server
告知TFTP服务器文件ios.cf的位置
您可以使用命令tftp-server disk0:ios.cf alias ios.cf实现此目的。请注意,此命令将文件ios.cf放在disk0中。
tftp-server server !--- enable the cmts to act as a tftp server tftp-server disk0:ios.cf alias ios.cf !--- get the IOS config file called ios.cf that is pre-downloaded to disk0 !--- this IOS config file was built with a text editor and tftp to disk0
要将ios.cf文件放入闪存或disk0(对于uBR10012)中,您必须将使用文本文件编辑器创建的文件tftp。为此,首先确保您能ping通Cisco IOS配置所在的tftp服务器。
接下来,应输入全局命令copy tftp <device>将文件放置在CMTS中。闪存通常用于uBR7200或uBR7100或uBR10K,但本示例显示如何将disk0用于uBR10012。
schooner#copy tftp disk0 Address or name of remote host []? 172.16.30.2 Source filename []? ios.cf Destination filename [ios.cf]? Accessing tftp://172.16.30.2/ios.cf... Loading ios.cf from 172.16.30.2 (via FastEthernet0/0/0): ! [OK - 173/4096 bytes] 173 bytes copied in 0.152 secs
要确保IOS配置文件存储在CMTS上,请运行命令dir。
schooner#dir Directory of disk0:/ 3 -rw- 11606084 Sep 17 2001 13:31:38 ubr10k-k8p6-mz.122-2.XF.bin 2839 -rw- 173 Oct 01 2001 23:29:44 ios.cf 47890432 bytes total (36274176 bytes free)
要查看ios.cf文件中配置了哪些命令,CMTS中可以使用more <filename>命令,如下所示:
schooner#more ios.cf hostname SUCCEED service linenumber enable password cisco interface ethernet 0 load 30 no shut interface cable 0 load 30 no shut line vty 0 4 password cisco end
要在思科CMTS上配置ToD,只需服务udp-small-servers max-servers no-limit和cable time-server两个全局命令即可完成。配置如下所示:
service udp-small-servers max-servers no-limit !--- supports a large number of modems / hosts attaching quickly cable timeserver !--- permits cable modems to obtain Time of Day (ToD) from uBR10012
uBR10012的完整配置如下。所有粗体命令都是与本文档相关的命令。
Schooner#show run Building configuration... Current configuration : 3522 bytes ! version 12.2 no parser cache no service single-slot-reload-enable no service pad service timestamps debug uptime service timestamps log uptime no service password-encryption service udp-small-servers max-servers no-limit ! hostname schooner ! logging rate-limit console all 10 except critical enable secret 5 $1$cM7F$ryXH7z/Ly6QCnD2LQ.gZs/ ! no cable qos permission create no cable qos permission update cable qos permission modems cable timeserver ! cable config-file platinum.cm service-class 1 priority 2 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 option 43 hex 08:03:00:00:0C:80:06:69:6F:73:2E:63:66 ! redundancy main-cpu auto-sync standard facility-alarm intake-temperature major 49 facility-alarm intake-temperature minor 40 facility-alarm core-temperature major 53 facility-alarm core-temperature minor 45 card 1/0 1oc12pos-1 card 1/1 2cable-tccplus card 2/0 1gigethernet-1 card 5/0 2cable-mc28 card 7/0 2cable-mc28 ip subnet-zero no ip domain-lookup ! ip dhcp pool surf 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 ! interface FastEthernet0/0/0 ip address 172.16.30.50 255.255.255.192 ! interface POS1/0/0 no ip address crc 32 pos report all POs flag j0 1 ! interface GigabitEthernet2/0/0 no ip address negotiation auto ! interface Cable5/0/0 ip address 10.1.4.1 255.255.255.0 cable downstream annex B cable downstream modulation 64qam cable downstream interleave-depth 32 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 ! ip classless ip route 0.0.0.0 0.0.0.0 172.16.30.1 no ip http server ! no cdp run snmp-server community public RO snmp-server community private RW snmp-server trap-source Cable5/0/0 snmp-server packetsize 2048 snmp-server enable traps cable snmp-server host 172.16.30.8 public cable snmp snmp-server manager tftp-server server tftp-server ios.cf alias ios.cf ! alias exec scm show cable modem ! line con 0 line aux 0 line vty 0 4 ! end schooner#
其他CMTS供应商可能无法仅使用其CMTS命令来设置所有这些部分,而可在Cisco IOS中完全完成。
要使电缆调制解调器采用Cisco IOS配置文件ios.cf中指定的命令,必须重新启动有问题的电缆调制解调器。可以从CMTS的CLI使用命令clear cable modem <ip address/MAC address> reset从中完成此操作。
Schooner#clear cable modem 10.1.4.4 reset
注意:如果您有一个大型网络,并且希望向工厂中的所有电缆调制解调器发送不同的配置文件,建议分阶段执行。这将最大限度地减少数千个电缆调制解调器尝试在尝试同时联机时相互踩踏的影响。
要检验配置,请使用clear cable modem命令清除电缆调制解调器。当电缆调制解调器重新联机时,请通过telnet访问它,查看配置。
Schooner#show cable modem MAC Address IP Address I/F MAC Prim RxPwr Timing Num BPI State Sid (db) Offset CPEs Enbld 0004.27ca.0e9b 10.1.4.6 C5/0/0/U0 online 1 *0.00 2820 0 no 0090.9600.703d 10.1.4.2 C5/0/0/U0 online 2 -0.75 2816 0 no 0003.e38f.f9b5 10.1.4.3 C5/0/0/U0 online 3 *0.00 2822 0 no 0001.64ff.e4b5 10.1.4.4 C5/0/0/U0 online 4 *0.00 2812 0 no !--- CVA120 0020.4086.2704 10.1.4.5 C5/0/0/U0 online 5 -0.50 2808 0 no 0020.4086.3324 10.1.4.7 C5/0/0/U0 online 6 -0.50 2808 0 no 0020.4079.feb4 10.1.4.8 C5/0/0/U0 online 7 0.00 2805 0 no 0020.4085.d06a 10.1.4.9 C5/0/0/U0 online 8 -0.50 2807 0 no
请注意,在本示例中,ios.cf文件命令电缆调制解调器的主机名为SUCCEED,这实际上是我们telnet至电缆调制解调器时看到的文件名。
Schooner#telnet 10.1.4.4 Trying 10.1.4.4 ... Open SUCCEED line 1 User Access Verification Password: SUCCEED>en Password: SUCCEED#
要验证Cisco IOS配置文件是否已成功下载到电缆调制解调器,请使用命令show version。以下输出以粗体显示有关ios.cf文件的信息。
SUCCEED#show version Cisco Internetwork Operating System Software IOS (tm) 120 Software (CVA120-K8V4Y5-M), Version 12.2(2)XA, EARLY DEPLOYMENT RELEASE SOFTWARE (fc1) TAC:Home:SW:IOS:Specials for info Copyright (c) 1986-2001 by cisco Systems, Inc. Compiled Wed 27-Jun-01 02:02 by hwcheng Image text-base: 0x800100A0, data-base: 0x80782844 ROM: System Bootstrap, Version 12.0(20001010:025045) [spaulsen-blue-3105 3108], DEVELOPMENT SOFTWARE ROM: 120 Software (CVA120-K8V4Y5-M), Version 12.2(2)XA, EARLY DEPLOYMENT RELEASE SOFTWARE (fc1) SUCCEED uptime is 3 days, 3 hours, 21 minutes System returned to ROM by reload at 05:52:09 - Sat Jan 1 2000 System restarted at 05:58:30 - Sat Oct 6 2001 System image file is "flash:cva120-k8v4y5-mz.122-2.XA.bin" Host configuration file is "tftp://10.1.4.1/ios.cf" cisco CVA122 CM (MPC850) processor (revision 3.r) with 32256K/1024K bytes of memory. Processor board ID SAD043708GK Bridging software. 1 Ethernet/IEEE 802.3 interface(s) 1 Cable Modem network interface(s) 1 Universal Serial Bus (USB) interface(s) 8192K bytes of processor board System flash (Read/Write) 7296K bytes of processor board Boot flash (Read/Write) Configuration register is 0x2
CVA120的配置如下所示。请注意,粗体命令与ios.cf文件中的行对应。
SUCCEED#show run Building configuration... Current configuration : 1429 bytes ! ! Last configuration change at 11:22:22 - Tue Oct 9 2001 ! version 12.1 no service single-slot-reload-enable no service pad service timestamps debug uptime service timestamps log uptime no service password-encryption service linenumber service internal ! hostname SUCCEED ! no logging buffered no logging buffered logging rate-limit console 10 except errors enable password cisco ! clock timezone - -8 ip subnet-zero no ip routing no ip finger ! interface Ethernet0 ip address 10.1.4.11 255.255.255.0 no ip route-cache no ip mroute-cache load-interval 30 bridge-group 59 bridge-group 59 spanning-disabled ! interface cable-modem0 ip address docsis no ip route-cache no ip mroute-cache load-interval 30 cable-modem boot admin 2 cable-modem boot oper 5 cable-modem downstream mode annex-b cable-modem Mac-timer t2 40000 bridge-group 59 bridge-group 59 spanning-disabled ! interface USB0 ip address 10.1.4.11 255.255.255.0 no ip route-cache no ip mroute-cache arp timeout 0 bridge-group 59 bridge-group 59 spanning-disabled ! ip classless no ip http server no ip http cable-monitor ! snmp-server packetsize 4096 snmp-server chassis-id snmp-server manager ! voice-port 0 input gain -2 ! voice-port 1 input gain -2 ! mgcp modem passthrough voaal2 mode no mgcp timer receive-rtcp ! mgcp profile default ! line con 0 transport input none line vty 0 4 password cisco login ! end
电缆配置文件的option命令似乎已中断,因为您可能希望以下命令提供有效配置。
option 43 instance 8 hex 00:00:0c option 43 instance 128 ASCII ios.cf
虽然接受了这些命令,但无法生成正确的Cisco IOS配置文件。这不是漏洞!这里的问题是,“实例”一词如何被解释为“子选项”,而它从来不应被理解为“子选项”。
实施“instance”只允许多次重复同一选项,就像您有多个选项43实例供不同供应商使用时一样!示例如下:
option 43 instance 1 hex 08:03:00:00:0C:80:07:69:6F:73:2E:63:66:67 !--- Config file cisco CM option 43 instance 2 hex 08:03:11:22:33:80:07:69:6F:73:2E:63:66:67 !--- Some option for other CM
请注意,11:22:33是虚构公司的随机供应商ID。任何与真实供应商ID匹配都完全是巧合。
由于术语“instance”应反映TLV子选项字段,并且您确实有TLV子选项字段,因此您必须以十六进制输入整个字符串。