BGP 身份验证密钥链与身份验证密钥

网络工程 思科 bgp 瞻博网络 验证 bgp-ipv6
2021-07-08 01:29:12

我在今天使用的 Juniper 盒子上发现了一个整洁的小行为。

我们正在从 Cisco ASR 迁移到 MX,但我们所有配置了身份验证的 Internet 交换对等点都没有出现。我们在 MX480 上收到日志消息,暗示我们的本地身份验证未设置,即使设置了。(请参阅以下实验室配置)

group R01-DSN-PEERS {
    type external;
    authentication-algorithm md5;
    authentication-key-chain STUPID;
    neighbor 192.168.100.1 {
        peer-as 6996;
    }
}

key-chain STUPID {
    key 0 {
        secret "$9$uEns1crM8xbY45Qt0O1cS"; ## SECRET-DATA
        start-time "2015-1-1.01:01:00 +0000";
    }
}

在对面,我发现看起来像:

router bgp 6996
neighbor 192.168.100.0 password _secret_stuff_

注意:是的,对面的邻居配置正确,这只是给你一个想法 - 之前安装的 ASR 已经建立了对等点。

我们最终通过直接在邻居上设置身份验证来让它工作,没有钥匙链,见下文:

group R01-DSN-PEERS {
    type external;
    neighbor 192.168.100.1 {
        authentication-key "$9$041sISlWL7w2oTzpOBISy"; ## SECRET-DATA
        peer-as 6996;
    }
}

太好了,现在我们可以使用它了 - 我们对使用钥匙链没有任何特别的依恋。

我决定对此进行全面实验,并提取数据包捕获以查看 TCP/BGP 选项之间的差异。下面是我尝试过的每个场景(都是瞻博网络,我实验室里没有思科机器):

  1. 同行进入建立:

    • 两个对等体的 BGP 组上的 authentication-key-chain。
    • 两个对等体的 BGP 组上的身份验证算法。

当使用身份验证密钥链等时,数据包捕获没有给我我期望的 TCP 身份验证选项(如果需要,我可以提供完整的捕获):

上限 1

  1. 同行进入建立:

    • 两个路由器上组内 BGP 对等体上的身份验证密钥。

这是我期望使用 MD5 身份验证的结果:

上限 2

如您所见,MD5 在捕获中被显式调用。

现在正如我所提到的,我们不在乎是否使用钥匙串,当我确实不匹配配置时,这只是很好奇,(见下文) - 他们不会进入 ESTABLISHED 即使看起来他们应该:

  1. 对等点在 ACTIVE/CONNECT 之间摇摆不定

    • Peer 1:组内 BGP 对等体上的认证密钥。
    • Peer 2:组内BGP对等体上设置的authentication-key-chain。
    • Peer 2:组内BGP对等体上设置的认证算法。

总而言之,什么可以解释“相同”选项的捕获差异?如果有人需要澄清信息,请告诉我。

1个回答

好吧,我设法弄明白了这一点。

底线是:

  • 使用 authentication-key-chains 使用“TCP Enhanced Authentication Option”
  • 使用身份验证密钥使用“TCP MD5 签名选项”

来自https://datatracker.ietf.org/doc/html/draft-bonica-tcp-auth-06

12.4.  Backwards Compatibility

   On any particular TCP connection, use of the TCP Enhanced
   Authentication Option precludes use of the TCP MD5 Signature Option.

您根本无法混合使用两种不同的 TCP 选项。