华为实现BGP团体属性-【乾颐堂HCIE培训讲师安德】 BGP的团体属性community,将具有相同特征的路由归为一组,称为一个团体,通过在路由中携带团体属性标识路由所属的团体,更方便管理员对路由做出过滤和控制。团体没有物理上的边界,不同AS的路由可以具有同一个团体。接收到该路由的路由器可以通过比较团体属性值对路由作出适当的处理(比如决定是否发布该路由、在什么范围发布等),而不需要匹配复杂的过滤规则(如ACL),从而简化路由策略的应用和降低维护管理的难度。 团体属性是一种可选传递属性,需要针对邻居做peer x.x.x.x advertise-community 团体属性有四个字节,RFC1997规定前两个字节代表AS号码,后两个字节是管理层面自定义的标识符,如AS:NN 团体属性的分类: 1.众所周知的属性: internet,表示可以向任何对等体发送匹配的路由。缺省情况下,所有的路由都属于Internet团体 no-advertise,表示不向任何对等体发送匹配的路由。即收到具有此属性的路由后,不能发布给任何其他的BGP对等体。 no-export,表示不向AS外发送匹配的路由,但发布给其它子自治系统。即收到具有此属性的路由后,不能发布到本地AS之外。 no-export-subconfed,表示不向AS外发送匹配的路由,也不发布给其它子自治系统。即收到具有此属性的路由后,不能发布给任何其他的子自治系统。 2.自定义的属性 比如AS:NN(64512:100),这些属性值“束缚”了一系列的路由,可以使用团体属性列表匹配这些属性做出相应的路由控制和调整等操作 3.扩展的团体属性 在后续章节,我们会讨论BGP的扩展团体属性,比如MPLS VPN中使用的RT属性以及SoO属性等 4.5.1案例研究:no-advertise no-advertise,该参数表示不向任何对等体发送匹配的路由。即收到具有此属性的路由后,不能发布给任何其他的BGP对等体 1.实验需求 1)R1通告路由,但该路由不更新给任何邻居 2)R1通告自身的直连路由,向邻居R2发送团体属性no-davertise 2.拓扑和IP地址规划 图 团体属性示意图 3.实验步骤 1)基本的邻居关系已经建立 查看邻居状态: [R1]display bgp peer
BGP local router ID : 123.1.1.1
Local AS number : 100
Total number of peers : 2 Peers in established state : 2
Peer V AS MsgRcvd MsgSent OutQ Up/Down State PrefRcv
123.1.1.2 4 200 93 95 0 01:30:43 Established 1
123.1.1.3 4 200 93 95 0 01:30:43 Established 1
并且在R1生成两条明细路由,用以后续的测试
bgp 100
peer 123.1.1.2 as-number 200
peer 123.1.1.3 as-number 200
#
ipv4-family unicast
undo synchronization
network 11.1.1.1 255.255.255.255
network 11.1.1.2 255.255.255.255
peer 123.1.1.2 enable
peer 123.1.1.3 enable |
2)R1在生成路由时携带团体属性值 注意是在R1生成路由时就携带该属性 ip ip-prefix 10 index 10 permit 11.1.1.1 32
#
route-policy No-Advertise permit node 10
if-match ip-prefix 10 ---匹配到前缀列表“抓取”的路由,其实此处是否调用前缀列表并没有明显的意义,仅仅表明可以精确的调用路由而已
apply community no-advertise ---调整的策略为不公告给邻居
#
bgp 100
network 11.1.1.1 32 route-policy No-Advertise ---在生成路由时调用路由策略
|
验证前缀列表的情况和路由策略的匹配情况 [R1]display ip ip-prefix 10 Prefix-list 10 Permitted 3 Denied 0 index: 10 permit 11.1.1.1/32 [R1]display route-policy No-Advertise Route-policy : No-Advertise permit : 10 (matched counts: 5) Match clauses : if-match ip-prefix 10 Apply clauses : apply community no-advertise 最重要的验证具体的路由条目的属性 [R1]display bgp routing-table 11.1.1.1
BGP local router ID : 123.1.1.1
Local AS number : 100
Paths: 1 available, 1 best, 1 select
BGP routing table entry information of 11.1.1.1/32:
Network route.
From: 0.0.0.0 (0.0.0.0)
Route Duration: 00h05m16s
Direct Out-interface: InLoopBack0
Original nexthop: 127.0.0.1
Qos information : 0x0
Community:no-advertise ---已经携带了该团体属性
AS-path Nil, origin igp, MED 0, pref-val 0, valid, local, best, select, pre 0
Not advertised to any peer yet ---该路由没有通告给任何邻居 |
结论:当通告时携带该属性,那么此时该路由“天生”就不会更新给任何邻居,包括iBGP和eBGP邻居。查看R2的情况,也并未包含11.1.1.1的路由,如下所示 display bgp routing-table BGP Local router ID is 22.1.1.1 Status codes: * - valid, > - best, d - damped, h - history, i - internal, s - suppressed, S - Stale Origin : i - IGP, e - EGP, ? - incomplete Total Number of Routes: 4 Network NextHop MED LocPrf PrefVal Path/Ogn *> 11.1.1.2/32 123.1.1.1 0 0 100i * i 33.1.1.1 0 100 0 100i *> 44.1.1.1/32 0.0.0.0 1 0 i * i 33.1.1.1 1 100 0 i 3)针对邻居来应用团体属性值的情况 去掉路由策略的调用,此时,针对邻居R2来调用路由策略。注意此时读者要明确,由于是针对邻居来应用,同时route-policy调用了条件,即前缀列表,那么我们必须增加路由策略的NODE(大于10),该NODE的条件默认为any,此时才可以把路由更新给邻居 [R1]route-policy No-Advertise permit node 20 ---R1添加条件为any的策略
#
[R1]bgp 100
[R1-bgp]undo network 11.1.1.1 255.255.255.255 ---去掉之前的通告时携带的属性,在这里VRP或许可以更改一下,不必去掉整个network命令,而只是去掉route-policy
[R1-bgp] network 11.1.1.1 255.255.255.255 ---重新通告路由,否则没有路由产生
[R1-bgp]peer 123.1.1.2 route-policy No-Advertise export ---针对邻居来应用route-policy,而不是network时调用
[R1-bgp]peer 123.1.1.2 advertise-community ---必须针对邻居发送团体属性才能把团体属性更新给邻居 |
验证R2得到的明细路由的情况 dis bgp routing-table 11.1.1.1
BGP local router ID : 22.1.1.1
Local AS number : 200
Paths: 2 available, 1 best, 1 select
BGP routing table entry information of 11.1.1.1/32:
From: 123.1.1.1 (123.1.1.1)
Route Duration: 00h01m51s
Direct Out-interface: GigabitEthernet0/0/0
Original nexthop: 123.1.1.1
Qos information : 0x0
Community:no-advertise ---来自R1的路由条目由于携带了no-davertise属性,所以没有更新给任何的邻居
AS-path 100, origin igp, MED 0, pref-val 0, valid, external, best, select, active, pre 255
Not advertised to any peer yet
BGP routing table entry information of 11.1.1.1/32:
From: 33.1.1.1 (22.1.1.0)
Route Duration: 00h07m47s
Relay IP Nexthop: 24.1.1.4
Relay IP Out-Interface: GigabitEthernet0/0/1
Original nexthop: 33.1.1.1
Qos information : 0x0
AS-path 100, origin igp, MED 0, localpref 100, pref-val 0, valid, internal, pre 255, IGP cost 2, not preferred for peer type
Not advertised to any peer yet
|
结论:针对邻居来应用no-advertise参数时,需要向邻居通告团体属性命令,那么该邻居收到路由之后就不再把特定路由更新给它的邻居(就类似于一个黑洞,仅仅接收到了路由,而不在更新给其他邻居,),而无所谓是ebgp还是ibgp邻居 验证R4的情况 display bgp routing-table
BGP Local router ID is 34.1.1.4
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Total Number of Routes: 5
Network NextHop MED LocPrf PrefVal Path/Ogn
*>i 11.1.1.1/32 33.1.1.1 0 100 0 100i
*>i 11.1.1.2/32 33.1.1.1 0 100 0 100i
* i 22.1.1.1 0 100 0 100i
*>i 44.1.1.1/32 33.1.1.1 1 100 0 i
* i 22.1.1.1 1 100 0 i |
我们发现11.1.1.1的路由优选了R2,这是因为R2没有把路由更新给R4,所以R4只能选择R3作为下一跳
本文来自【乾颐堂HCIE培训讲师安德】提供 学习交流群:334977638
|