此产品的文档集力求使用非歧视性语言。在本文档集中,非歧视性语言是指不隐含针对年龄、残障、性别、种族身份、族群身份、性取向、社会经济地位和交叉性的歧视的语言。由于产品软件的用户界面中使用的硬编码语言、基于 RFP 文档使用的语言或引用的第三方产品使用的语言,文档中可能无法确保完全使用非歧视性语言。 深入了解思科如何使用包容性语言。
思科采用人工翻译与机器翻译相结合的方式将此文档翻译成不同语言,希望全球的用户都能通过各自的语言得到支持性的内容。 请注意:即使是最好的机器翻译,其准确度也不及专业翻译人员的水平。 Cisco Systems, Inc. 对于翻译的准确性不承担任何责任,并建议您总是参考英文原始文档(已提供链接)。
思科在思科电缆调制解调器终端系统(CMTS)产品中实施了增强功能,可防止基于IP地址欺骗和IP地址盗窃的特定类型的拒绝服务攻击,以及有线数据服务接口规范(DOCSIS)电缆系统。Cisco CMTS Cable Command Reference介绍了属于这些IP地址安全增强功能的cable source-verify命令套件。
有关文档规则的详细信息,请参阅 Cisco 技术提示规则。
本文档没有任何特定的前提条件。
本文档不限于特定的软件和硬件版本。
DOCSIS介质访问控制(MAC)域在本质上类似于以太网网段。如果不加保护,该网段中的用户容易受到许多类型的基于第2层和第3层寻址的拒绝服务攻击。此外,用户也可能由于其他用户设备上地址配置错误而遭受服务级别的降级。例如:
在不同节点上配置重复的IP地址。
在不同节点上配置重复的MAC地址。
未经授权使用静态IP地址而不是动态主机配置协议(DHCP)分配的IP地址。
网段内不同网络号的未授权使用。
将终端节点错误地配置为代表网段IP子网的一部分应答ARP请求。
在以太网LAN环境中,通过物理方式跟踪和断开违规设备可以轻松控制和缓解此类问题,但由于网络规模可能很大,DOCSIS网络中的此类问题可能更难隔离、解决和预防。此外,控制和配置客户端设备(CPE)的最终用户可能没有本地IS支持团队的优势,因此无法确保他们的工作站和PC不会有意或无意地配置错误。
Cisco CMTS产品套件维护动态填充的内部数据库,包括连接的CPE IP和MAC地址。CPE数据库还包含这些CPE设备所属相应电缆调制解调器的详细信息。
可以通过执行隐藏的CMTS命令show interface cable X/Y modem Z查看与特定电缆调制解调器对应的CPE数据库的部分视图。此处,X是线路卡号,Y是下行端口号,Z是电缆调制解调器的服务标识符(SID)。Z可设置为0,以查看特定下游接口上所有电缆调制解调器和CPE的详细信息。请参阅此命令生成的典型输出的以下示例。
CMTS# show interface cable 3/0 modem 0 SID Priv bits Type State IP address method MAC address 1 00 host unknown 192.168.1.77 static 000C.422c.54d0 1 00 modem up 10.1.1.30 dhcp 0001.9659.4447 2 00 host unknown 192.168.1.90 dhcp 00a1.52c9.75ad 2 00 modem up 10.1.1.44 dhcp 0090.9607.3831
注意:由于此命令处于隐藏状态,因此可能会发生更改,并且不能保证在Cisco IOS®软件的所有版本中可用。
在上面的示例中,IP地址为192.168.1.90的主机的方法列列列为dhcp。这意味着CMTS通过观察主机与服务提供商的DHCP服务器之间的DHCP事务来获知此主机。
IP地址为192.168.1.77的主机列出了method static。这意味着CMTS没有首先通过此设备和DHCP服务器之间的DHCP事务获知此主机。相反,CMTS首先看到来自此主机的其他类型的IP流量。此流量可能是Web浏览、电子邮件或“ping”数据包。
虽然192.168.1.77似乎已配置了静态IP地址,但可能是该主机实际上获取了DHCP租用,但是CMTS可能自事件发生后已重新启动,因此它不记得该事务。
CPE数据库通常由CMTS从CPE设备与服务提供商的DHCP服务器之间的DHCP事务收集信息填充。此外,CMTS可以侦听来自CPE设备的其他IP流量,以确定哪些CPE IP和MAC地址属于哪个电缆调制解调器。
Cisco已经实施了cable interface命令cable source-verify [dhcp]。此命令使CMTS使用CPE数据库验证CMTS在其电缆接口上接收的IP数据包的有效性,并允许CMTS做出是否转发这些数据包的明智决策。
以下流程图显示了在允许通过CMTS之前,电缆接口上收到的IP数据包必须经过的额外处理。
流程图1
流程图以数据包开始,数据包由CMTS上的上游端口接收,并以数据包被允许继续进一步处理或数据包被丢弃而结束。
我们将处理的第一个拒绝服务场景是IP地址重复的情况。假设客户A已连接到其服务提供商,并且已为其PC获取有效的DHCP租约。客户A获得的IP地址称为X。
在A获得DHCP租用之后,客户B决定为其PC配置一个静态IP地址,该IP地址恰好与客户A的设备当前使用的地址相同。有关IP地址X的CPE数据库信息会根据最后代表X发送ARP请求的CPE设备而变化。
在不受保护的DOCSIS网络中,客户B可能只需代表X向CMTS或下一跳路由器发送ARP请求,就能说服下一跳路由器(在大多数情况下,是CMTS)他有权使用IP地址X。这将阻止来自服务提供商的流量转发到客户A。
通过启用电缆源验证,CMTS将能够看到IP地址X的IP和ARP数据包来自错误的电缆调制解调器,因此,这些数据包将被丢弃,请参阅流程图2。这包括源地址为X的所有IP数据包和代表X的ARP请求。CMTS日志将显示一条消息,如下所示:
%UBR7200-3-BADIPSOURCE:接口Cable3/0,来自无效源的IP数据包。IP=192.168.1.10,MAC=0001.422c.54d0,预期SID=10,实际SID=11
流程图2
使用此信息,可以识别两个客户端,并禁用带有连接的重复IP地址的电缆调制解调器。
另一种情况是用户将尚未使用的IP地址静态分配给其PC,该IP地址属于合法CPE地址范围。此方案不会对网络中的任何人造成任何服务中断。假设客户B为其PC分配了地址Y。
可能出现的下一个问题是客户C可能将其工作站连接到服务提供商的网络,并获得IP地址Y的DHCP租约。CPE数据库会暂时将IP地址Y标记为属于客户C的电缆调制解调器后面。但是,可能不久之后客户B就会发送相应的ARP流量序列,让下一跳相信他是IP地址Y的合法所有者,从而导致客户C的服务中断。
同样地,第二个问题也可以通过打开cable source-verify来解决。当cable source-verify打开时,通过从DHCP事务中收集详细信息生成的CPE数据库条目不能被其他类型的IP流量取代。只有该IP地址的另一个DHCP事务或该IP地址的CMTS上的ARP条目可以取代该条目。这可以确保如果最终用户成功获取了给定IP地址的DHCP租用,该客户将不必担心CMTS变得混乱并且认为其IP地址属于其他用户。
使用cable source-verify dhcp可以解决第一个阻止用户使用尚未使用的IP地址的问题。通过在此命令末尾添加dhcp参数,CMTS可以通过向DHCP服务器发出一种称为LEASEQUERY的特殊DHCP消息来检查它所侦听的每个新的源IP地址的有效性。请参阅流程图3。
流程图3
对于给定CPE IP地址,LEASEQUERY消息会询问相应的MAC地址和电缆调制解调器是什么。
在这种情况下,如果客户B使用静态地址Y将其工作站连接到有线网络,CMTS将向DHCP服务器发送LEASEQUERY,以验证地址Y是否已租给客户B的PC。DHCP服务器能够通知CMTS,没有为IP地址Y授予租用,因此将拒绝客户B访问。
用户可能在其电缆调制解调器后配置了静态IP地址的工作站,这些地址可能与服务提供商的当前网络编号不冲突,但将来可能会出现问题。因此,使用电缆源验证,CMTS能够过滤出来自源IP地址的数据包,这些地址不在CMTS的电缆接口上配置的范围之内。
注意:为了使其正常工作,您还需要配置ip verify unicast reverse-path命令以防止伪造IP源地址。请参阅电缆命令:电缆s以了解详细信息。
某些客户可能将路由器用作CPE设备,并安排服务提供商将流量路由到此路由器。如果CMTS收到来自源IP地址为Z的CPE路由器的IP流量,则如果CMTS具有通过该CPE设备到达网络Z所属的路由,cable source-verify将允许此数据包通过。请参阅流程图3。
现在请考虑以下示例:
在CMTS上,我们有以下配置:
interface cable 3/0 ip verify unicast reverse-path ip address 10.1.1.1 255.255.255.0 ip address 24.1.1.1 255.255.255.0 secondary cable source-verify ! ip route 24.2.2.0 255.255.255.0 24.1.1.2 Note: This configuration shows only what is relevant for this example
假设源IP地址为172.16.1.10的数据包从电缆调制解调器24.2.2.10到达CMTS,CMTS会看到24.2.2.10没有驻留在CPE数据库show int cable x/y modem 0中,但是ip verify unicast reverse-path启用单播反向路径转发(单播RPF),该路径检查接口上收到的每个数据包,以验证数据包的源IP地址是否出现在该接口的路由表中。cable source-verify检查以查看24.2.2.10的下一跳是什么。在以上配置中,我们有ip route 24.2.2.0 255.255.255.0 24.1.1.2,这意味着下一跳是24.1.1.2。现在假设24.1.1.2是CPE数据库中的有效条目,则CMTS认为数据包正常,因此将按照流程图4处理数据包。
流程图4
配置cable source-verify只需将cable source-verify命令添加到要在其上激活该功能的电缆接口。如果使用电缆接口捆绑,则需要将cable source-verify添加到主接口的配置。
如何配置cable source-verify dhcp
注意: cable source-verify在Cisco IOS软件版本12.0(7)T中首次引入,在Cisco IOS软件版本12.0SC、12.1EC和12.1T中受支持。
配置cable source-verify dhcp需要执行几个步骤。
确保DHCP服务器支持特殊的DHCP LEASEQUERY消息。
为了使用cable source-verify dhcp功能,您的DHCP服务器必须按照draft-ietf-dhcp-leasequery-XX.txt的规定应答消息。Cisco Network Registrar 3.5及更高版本能够回答此消息。
确保DHCP服务器支持中继代理信息选项处理。请参阅中继代理部分。
DHCP服务器必须支持的另一个功能是DHCP中继信息选项处理。这也称为选项82处理。DHCP中继信息选项(RFC 3046)中介绍了此选项。 Cisco Network Registrar 3.5及更高版本支持中继代理信息选项处理,但是必须通过Cisco Network Registrar命令行实用程序nrcmd使用以下命令序列激活该选项:
nrcmd -U admin -P changeme -C 127.0.0.1 dhcp enable save-relay-agent-data
nrcmd -U admin -P changeme -C 127.0.0.1 save
nrcmd -U admin -P changeme -C 127.0.0.1 dhcp reload
您可能需要替换相应的用户名、密码和服务器IP地址,以上显示默认值。或者,如果您在nrcmd提示符下,>nrcmd,只需键入以下内容:
dhcp enable save-relay-agent-data
保存
dhcp reload
在CMTS上打开DHCP中继信息选项处理。
CMTS必须使用中继代理信息选项标记来自电缆调制解调器和CPE的DHCP请求,以便cable source-verify dhcp生效。在运行Cisco IOS软件版本12.1EC、12.1T或更高版本的Cisco IOS的CMTS上,必须在全局配置模式下输入以下命令。
ip dhcp relay information option
如果您的CMTS运行的是Cisco IOS软件版本12.0SC系列Cisco IOS,则改用cable relay-agent-option cable interface命令。
请根据您运行的Cisco IOS版本谨慎使用适当的命令。如果您更改了Cisco IOS系列,请确保更新您的配置。
当CMTS中继DHCP数据包时,relay information option命令会向中继的DHCP数据包添加一个名为Option 82的特殊选项或relay information选项。
选项82使用子选项Agent Circuit-ID填充,该子选项引用监听DHCP请求的CMTS上的物理接口。除此之外,另一个子选项Agent Remote ID中会填入DHCP请求从收到或经过的电缆调制解调器的6字节MAC地址。
例如,如果MAC地址为99:88:77:66:55:44的PC位于电缆调制解调器后面aa:bb:cc:dd:ee:ff发送DHCP请求,CMTS会将设置选项82的Agent Remote ID子选项的DHCP请求转发到电缆调制解调器的MAC地址aa:bb:cc:dd:ee:ff。
通过在CPE设备的DHCP请求中包含中继信息选项,DHCP服务器能够存储有关哪个CPE属于哪一个电缆调制解调器后的信息。当CMTS上配置了cable source-verify dhcp时,这一点尤其有用,因为DHCP服务器不仅能够可靠地通知CMTS特定客户端应该具有哪个MAC地址,而且能够告知特定客户端要连接到哪个电缆调制解调器客户端。
在相应的电缆接口下启用cable source-verify dhcp命令。
最后一步是在您要激活该功能的电缆接口下输入cable source-verify dhcp命令。如果CMTS使用电缆接口捆绑,则必须在捆绑的主接口下输入命令。
使用cable source-verify命令套件,服务提供商可以保护有线网络,防止拥有未授权IP地址的用户使用网络。
Cable source-verify命令本身就是实施IP地址安全的一个简单有效的方法。虽然它并不涵盖所有场景,但至少可以确保拥有分配IP地址使用权的客户不会因其IP地址被他人使用而遇到任何中断。
在本文档所述的最简单形式中,未通过DHCP配置的CPE设备无法获得网络访问。这是保护IP地址空间和提高有线数据服务稳定性和可靠性的最佳方法。 但是,多个具有需要其使用静态地址的商业服务的服务操作员(MSO)想要对cable source-verify dhcp命令实施严格的安全性。
Cisco Network Registrar 5.5版具有响应“保留”地址的租用查询的新功能,即使未通过DHCP获取IP地址。 DHCP服务器在DHCPLEASEQUERY响应中包含租用保留数据。在Network Registrar的早期版本中,DHCPLEASEQUERY响应仅可用于存储MAC地址的租用或先前租用客户端。例如,Cisco uBR中继代理会丢弃没有MAC地址和租用时间的DHCPLEASEQUERY数据报(dhcp-lease-time选项)。
对于DHCPLEASEQUERY响应中的保留租约,Network Registrar将返回一年的默认租用时间(31536000秒)。如果地址实际上已租用,Network Registrar将返回其剩余租用时间。