瞻博网络 - eBGP 更改通告路由上的下一跳

网络工程 路由 bgp 杜松 瞻博网络
2021-07-07 16:13:48

无法向 ebgp 对等体发布路由并修改下一跳地址。在接收路由器上,这可以通过配置匹配社区并将下一跳设置为正确地址的导入策略来解决;然而,好奇我在忽视什么。

root@juniper.mx5# show logical-systems arouter protocols bgp       
accept-remote-nexthop;
local-address 10.10.200.46;
group external-65534 {
    traceoptions {
        file arouter-bgp-update;
        flag update;
        flag route;
        flag packets;
    }
    description root-ls;
    export internal-rtbh;
    peer-as 65534;
    neighbor 10.10.200.45;
}

group external-65422 {
    description arouter-ls;
    accept-remote-nexthop;
    local-address 10.10.200.45;
    peer-as 65422;
    neighbor 10.10.200.46;
}

root@juniper.mx5# show logical-systems arouter routing-options static | find 172.16.22.100 
route 172.16.22.100/32 {
    discard;
    tag 65422;
}


root@juniper.mx5# show logical-systems arouter policy-options policy-statement internal-rtbh 
from {
    protocol static;
    tag 65422;
}
then {
    local-preference 400;
    origin igp;
    community add no-export;
    next-hop 192.0.2.13;
    accept;
}


root@juniper.mx5# run show route logical-system arouter advertising-protocol bgp 10.10.200.45 extensive 

inet.0: 26 destinations, 26 routes (26 active, 0 holddown, 0 hidden)
* 172.16.22.100/32 (1 entry, 1 announced)
 BGP group external-65534 type External
     Nexthop: Self
     Flags: Nexthop Change
     AS path: [65422] I
     Communities: no-export


root@juniper.mx5# run show route logical-system brouter receive-protocol bgp 10.10.200.46 extensive 

inet.0: 40 destinations, 40 routes (40 active, 0 holddown, 0 hidden)
* 172.16.22.100/32 (1 entry, 1 announced)
     Accepted
     Nexthop: 10.10.200.46
     AS path: 65422 I
     Communities: no-export
1个回答

eBGP 的工作方式是它始终将下一跳设置为发送路由器的直接连接地址(多跳会话或原始下一跳在同一子网中时除外)。正如您在输出中看到的,路由器正在发送带有 的路由Nexthop: Self,而不是您配置的下一跳。您可以在BGP RFC4271 中找到下一跳生成的决策树

作为解决方法,您可以更改会话以使用 eBGP 多跳,它有一个no-nexthop-change 选项

set protocols bgp group external-65534 multihop no-nexthop-change

使用eBGP 多跳还有其他缺点,例如没有快速外部故障转移。

通常,您只需保持下一跳不变并设置 BGP 社区。然后,接收器将通过匹配社区来设置正确的下一跳。这就是eBGP 对等体之间远程触发黑洞 (RTBH) 的工作原理。