使用 4 字节社区 ASN 更新 mp_reach_nlri bgp?

网络工程 bgp 瞻博网络
2021-07-11 03:09:18

我正在与瞻博网络操作系统路由器建立 BGP 对等互连。开始连接时,我的系统会通告 4 字节 ASN 功能,它被瞻博网络路由器接受: Jul 28 00:33:00.664202 BGP RECV 4 Byte AS-Path capability (65), as_num 55002 Jul 28 00:33:00.664217 bgp_parse_4byte_aspath_cap():273 AS4-Peer (RECV): 4 byte AS capability received, AS 55002 Jul 28 00:33:00.664296 bgp_4byte_aspath_add_cap():199 AS4-Peer 10.17.206.131 (Internal AS 55002)(SEND): 4 byte AS capability added, AS 55002

Juniper 路由器发回该 4 字节 ASN 功能: Jul 28 00:33:00.664405 BGP SEND 4 Byte AS-Path capability (65), as_num 55002

所以我认为可以肯定地说,这两个对等体已经建立了 4 字节 ASN 支持。

稍后,我们尝试发送包含 mp_reach_nlri 属性的 BGP UPDATE 消息。如果我们发送带有 2-octet AS/4-octet AN Extended Community 属性(即类型 0x00,Transitive 2-Octet AS-Specific)的 BGP UPDATE 消息,Juniper 路由器很乐意接受。如果我们发送带有 4-octet AS/2-octet AN Extended Community 属性(即类型 0x00,Transitive 4-octet AS-Specific)的 BGP UPDATE 消息,Juniper 路由器会抱怨并拒绝它,因为“因缺少一个有效的目标社区”。 bgp_rcv_nlri: 64999:0:193.193.193.193/96 rejected due to the lack of a valid target community

看看下面的两个 pcap 屏幕截图。两个对等点之间的唯一通信区别是这个问题:mp_reach_nlri 数据包中的 4 字节 AS,与 mp_reach_nlri 数据包中的 2 字节 AS。第一张图片有效,第二张无效。

任何线索为什么会这样?我们如何才能成功发送一个 mp_reach_nlri 路径属性,其中一个 4 字节的 AS 作为目标社区?

工作pcap


非工作 pcap

Junos 版本信息: Model: mx960 Junos: 15.1R7.8 JUNOS OS Kernel 64-bit [20180310.ba55661_builder_stable_10]

我的路由器:专有;尝试为这个 BGP 对等会话制作我们自己的数据包

Junos 显示 bgp 邻居: Peer: 10.17.206.131+37333 AS 55002 Local: 10.17.205.45+179 AS 55002 Type: Internal State: Established Flags: <Sync RSync> Peer supports 4 byte AS extension (peer-as 55002)

1个回答

您的问题与瞻博网络如何支持 4 字节 ASN 或扩展社区无关。rejected due to the lack of a valid target community日志消息仅仅是告诉你,你没有与你指定的目标配置路由实例。

您说在两次数据包捕获之间唯一改变的是将路由目标设置为使用 4 字节 ASN。这意味着,您没有更改路由实例目标以匹配。

我做了一些基本的实验室测试来验证(使用你的例子)。

2 字节 ASN 示例

如您所见,这如您所愿。

R1:

set routing-instances VRF-A vrf-target target:55002:666

R2:

set routing-instances VRF-B vrf-target target:55002:666

R1:

Dec 30 04:31:30.051381 bgp_rcv_nlri: 55002:1111:202.202.202.0/88

root# run show route table VRF-A.inet.0 202.202.202.0/24

VRF-A.inet.0: 5 destinations, 5 routes (5 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

202.202.202.0/24   *[BGP/170] 00:01:06, localpref 100, from 2.2.2.2
                      AS path: 2222 I, validation-state: unverified
                    > to 5.5.5.1 via ge-0/0/0.0, Push 16

4 字节 ASN 示例

现在,我让 R2 使用 4 字节 ASN 发送路由目标。

R1:

set routing-instances VRF-A vrf-target target:55002:666

R2:

set routing-instances VRF-B vrf-target target:55002L:666

R1:

我们看到与您看到的相同的错误消息,因为在使用新路由目标的设备上没有配置路由实例。

Dec 30 04:35:35.879678 bgp_rcv_nlri: 55002:1111:202.202.202.0/88 rejected due to the lack of a valid target community

此外,VRF 的路由表中也没有路由。

[edit]
root# run show route table VRF-A.inet.0 202.202.202.0/24

[edit]
root#

现在,为了更好地衡量,让我们将 R1 更改为也使用 4 字节 ASN 目标。

R1:

set routing-instances VRF-A vrf-target target:55002L:666

Dec 30 04:41:08.515333 bgp_rcv_nlri: 55002:1111:202.202.202.0/88

root# run show route table VRF-A.inet.0 202.202.202.0/24

VRF-A.inet.0: 5 destinations, 5 routes (5 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

202.202.202.0/24   *[BGP/170] 00:00:56, localpref 100, from 2.2.2.2
                      AS path: 2222 I, validation-state: unverified
                    > to 5.5.5.1 via ge-0/0/0.0, Push 16