在SR的实践中,通常使用bgp-ls进行拓扑收集。过程是某台路由器先将本地的IGP拓扑导入BGP,然后在路由器和采集器之间建立BGP-LinkState协议族的bgp邻居,路由器通过bgp更新消息将node、link、prefix等信息发送给采集器。
下面以juniper路由器为例,odl做采集器,pathman-sr做展示。
1、路由器配置:
set policy-options policy-statement NLRI-TO-BGP-LS term 1 from family traffic-engineering
set policy-options policy-statement NLRI-TO-BGP-LS term 1 then accept
set policy-options policy-statement TED-TO-NLRI term LEVEL-2 from protocol isis
set policy-options policy-statement TED-TO-NLRI term LEVEL-2 from level 2
set policy-options policy-statement TED-TO-NLRI term LEVEL-2 then accept
set protocols bgp group to_controller family traffic-engineering unicast // 配置BGP-TE地址族,发布和学习BGP-TE NLRI
set protocols bgp group to_controller export NLRI-TO-BGP-LS // 一个导出策略,该策略选择要重新分发到BGP中的路由
set protocols bgp group to_controller peer-as 21859
set protocols bgp group to_controller local-as 21859
set protocols bgp group to_controller neighbor 192.168.100.1
set protocols mpls traffic-engineering database import igp-topology bgp-link-state // 将IGP拓扑信息从lsdist.0导入到BGP-LS中
set protocols mpls traffic-engineering database import policy TED-TO-NLRI // 将IGP拓扑信息从lsdist.0导入到BGP-LS中