Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

路由协议认证

您可以为许多路由协议(包括 BGP、IS-IS、OSPF、RIP 和 RSVP)配置路由协议消息的身份验证方法和密码。为防止交换未经验证或伪造的数据包,路由器必须确保它们与可信对等方形成路由协议关系(对等关系或相邻关系)。其中一种方法是验证路由协议消息。相邻路由器使用密码验证协议从路由器或路由器接口发送的数据包的真实性。

本主题提供路由协议验证的高级概述和一些基本示例。有关为特定路由协议配置身份验证的详细信息,请参阅该协议的用户指南。

路由协议的身份验证方法

某些路由协议(BGP、IS-IS、OSPF、RIP 和 RSVP)使您能够配置身份验证方法和密码。邻接路由器使用密码验证协议从路由器或路由器接口发送的数据包的真实性。支持以下身份验证方法:

  • 简单身份验证(IS-IS、OSPF 和 RIP)— 使用简单的文本密码。接收路由器使用认证密钥(密码)来验证数据包。由于密码包含在传输的数据包中,因此此身份验证方法相对不安全。建议您 避免 使用此身份验证方法。

  • MD5 和 HMAC-MD5(BGP、IS-IS、OSPF、RIP 和 RSVP)— MD5 会创建传输数据包中包含的编码校验和。将 HMAC 身份验证与 MD5 相结合的 HMAC-MD5 增加了迭代加密散列功能的使用。使用这两种类型的身份验证,接收路由器将使用认证密钥(密码)来验证数据包。HMAC-MD5 身份验证在 RFC 2104 HMAC 中定义:用于消息认证的密钥散列。

通常,身份验证密码是包含一些最大字母和数字的文本字符串。密码可以包含任何 ASCII 字符。如果在密码中包含空格,请用引号 (“ ”) 将所有字符括起来。

Junos-FIPS 具有特殊密码要求。FIPS 密码长度必须为 10 到 20 个字符。密码必须至少使用五个定义字符集中的三个(大写字母、小写字母、数字、标点符号和其他特殊字符)。如果路由器上安装了 Junos-FIPS,则除非密码符合此标准,否则您无法配置密码。

示例:配置 BGP 和 IS-IS 路由协议的身份验证密钥

路由器的主要任务是使用其路由表和转发表将用户流量转发至其目标。攻击者可将伪造的路由协议数据包发送至路由器,意图更改或损坏其路由表或其他数据库的内容,进而降低路由器和网络的功能。为了防止此类攻击,路由器必须确保它们与可信对等方形成路由协议关系(对等关系或相邻关系)。其中一种方法是验证路由协议消息。在配置路由协议时,强烈建议使用身份验证。

Junos OS 支持用于 BGP、IS-IS、OSPF、RIP 和 RSVP 的 HMAC-MD5 身份验证。HMAC-MD5 使用密钥与传输到计算散列的数据相结合。计算散列随数据一起传输。接收方使用匹配密钥重新计算和验证消息散列。如果攻击者伪造或修改了该消息,则哈希将不匹配,并且数据将被丢弃。

在以下示例中,我们将 BGP 配置为外部网关协议 (EGP) 和 IS-IS 作为内部网关协议 (IGP)。如果使用 OSPF,请将其配置为与所示的 IS-IS 配置类似。

配置 BGP

以下示例显示不同 BGP 对等组的单个身份验证密钥的配置。您还可以在邻接方或路由实例级别或所有 BGP 会话上配置 BGP 身份验证。与任何安全配置一样,粒度(在某种程度上,安全程度)与维护系统所需的管理量之间存在取舍。

此示例还配置了路由协议事件和错误的多个跟踪选项,这些选项可以很好地指示对路由协议的攻击。这些事件包括协议身份验证故障,可能指向攻击者。攻击者可能会向路由器发送欺骗或以其他方式格式错误的路由数据包,试图诱发特定行为。

配置 IS-IS

尽管 Junos OS 支持所有 IGP 的身份验证,但某些 IGP 本质上比其他 IGP 更安全。大多数服务提供商使用 OSPF 或 IS-IS 来快速实现内部融合和可扩展性,并使用 MPLS 的流量工程功能。由于 IS-IS 不在网络层运行,因此欺骗比 OSPF 更加困难。OSPF 封装在 IP 中,因此会遭到远程欺骗和拒绝服务 (DoS) 攻击。

以下示例配置 IS-IS 的身份验证。它还配置了路由协议事件和错误的多个跟踪选项,这些选项可以很好地指示对路由协议的攻击。这些事件包括协议身份验证故障,可能指向攻击者。攻击者可能会向路由器发送欺骗或以其他方式格式错误的路由数据包,试图诱发特定行为。

配置路由协议的身份验证密钥更新机制

您可以为 BGP、LDP 和 IS-IS 路由协议配置身份验证密钥更新机制。此机制允许您更新身份验证密钥,而不会中断相关路由和信号协议(如 OSPF 和 RSVP)。

要配置此功能,请在层次结构级别中[edit security]包含authentication-key-chains语句。要应用密钥链,必须在协议的相应层次结构级别配置密钥链标识符和密钥链算法。

以下部分提供有关为路由协议配置身份验证密钥更新的更多信息。有关为特定路由协议配置身份验证密钥更新的详细信息,请参阅该协议的用户指南。

配置身份验证密钥更新

要配置身份验证密钥更新机制,请在层次结构级别中[edit security authentication-key-chains]包含key-chain语句,然后指定key创建包含多个认证密钥的密钥链的选项。

key-chain—为密钥链机制分配名称。您在适当的层次结构级别参考此名称,以便协议使用以下选项关联唯一身份验证 key-chain 属性:

  • algorithm—IS-IS 的身份验证算法。

  • key—在密钥链中唯一标识每个密钥的整数值。范围为 0 到 63。

  • options—(仅限 IS-IS)协议传输编码格式,用于对路由协议数据包中的消息认证代码进行编码。

  • secret—加密文本或纯文本格式的密码。即使输入纯文本格式的秘密数据,密钥也始终以加密格式显示。

  • start-time—开始时间进行 UTC 中指定的身份验证密钥传输。开始时间必须在密钥链内独一无二。

配置 BGP 和 LDP 以进行身份验证密钥更新

要配置 BGP 和 LDP 路由协议的身份验证密钥更新机制,请将语句包含 authentication-key-chain 在层次结构级别中 [edit protocols (bgp | ldp)] 。包括该语句将 authentication-key-chain 每个路由协议与 [edit security authentication-key-chains] 认证密钥相关联。您还必须配置语 authentication-algorithm 句并指定算法。例如:

注:

为 BGP 配置认证密钥更新机制时,不能使用认证密钥或密钥链提交 0.0.0.0/allow 语句。如果尝试此操作,CLI 将发出警告,并且提交失败。