我正在与瞻博网络操作系统路由器建立 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 作为目标社区?
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)