XCIE-HUAWEI-超级完整的BGP-6-路由选路(三)+团体属性+BGP选路总结

优选来自EBGP的路由(EBGP>IBGP)

这个其实没什么好演示的了,也没得改,了解就行了,如果有同一条路由的情况下
其他属性的,前面的没有比出来,那么到这条的时候,优选EBGP的路由

选择AS内部IGP的metric最小的路由(仅适用于IBGP)

其实这个跟MED那个差不多,都是基于看自己的COST加表到BGP的

环境

从IBGP邻居学到的路由 转发 ibgp学到的路由会发给ebgp嘛_网络

从IBGP邻居学到的路由 转发 ibgp学到的路由会发给ebgp嘛_网络_02


成功建立IBGP邻居

在R1和R3上同时network192.168.1.0

从IBGP邻居学到的路由 转发 ibgp学到的路由会发给ebgp嘛_华为_03

观察R1的BGP表

从IBGP邻居学到的路由 转发 ibgp学到的路由会发给ebgp嘛_IP_04


起源属性,med,本地优先级什么的都一样,为什么选择了2.2.2.2的R2呢?


来看原因

[R1-bgp]display bgp rou	
[R1-bgp]display bgp routing-table 192.168.1.0

 BGP local router ID : 12.1.1.2
 Local AS number : 1
 Paths:   2 available, 1 best, 1 select
 BGP routing table entry information of 192.168.1.0/24:
 From: 2.2.2.2 (12.1.1.1)
 Route Duration: 00h01m10s  
 Relay IP Nexthop: 12.1.1.1
 Relay IP Out-Interface: GigabitEthernet0/0/0
 Original nexthop: 2.2.2.2
 Qos information : 0x0
 AS-path Nil, origin igp, MED 0, localpref 100, pref-val 0, valid, internal, bes
t, select, active, pre 255, IGP cost 1
 Not advertised to any peer yet

 BGP routing table entry information of 192.168.1.0/24:
 From: 3.3.3.3 (23.1.1.2)
 Route Duration: 00h01m18s  
 Relay IP Nexthop: 23.1.1.2
 Relay IP Out-Interface: GigabitEthernet0/0/1
 Original nexthop: 3.3.3.3
 Qos information : 0x0
 AS-path Nil, origin igp, MED 0, localpref 100, pref-val 0, valid, internal, pre
 255, IGP cost 1, not preferred for router ID
 Not advertised to any peer yet

[R1-bgp]
通过下面的原因可以看见,他输在RID
前面的文章有解释过,From后面的第一个是更新源(Peer)
后面括号的则是Route-ID
对比AS内部的IGP的Metric最小的路由
但是默认下都是一样的
为什么呢?
因为跑的是ospf作为底层,他们也是直连,所以他们的cost自然是一样的,不信看路由表

从IBGP邻居学到的路由 转发 ibgp学到的路由会发给ebgp嘛_华为_05


现在他选择的是2.2.2.2,我现在改动下去往2.2.2.2的ospf的cost,让路由表选择走r3,然后再来看bgp表

从IBGP邻居学到的路由 转发 ibgp学到的路由会发给ebgp嘛_服务器_06


再来看BGP表

从IBGP邻居学到的路由 转发 ibgp学到的路由会发给ebgp嘛_华为_07


这里提示的是,他输在cost值

BGP默认不负载均衡,可以手动开启负载均衡

我先把旧的删了先

从IBGP邻居学到的路由 转发 ibgp学到的路由会发给ebgp嘛_服务器_08

[R1-bgp]maximum ?
  load-balancing  Forward packets over multiple paths
[R1-bgp]maximum l	
[R1-bgp]maximum load-balancing ?
  INTEGER<1-4>  Specify maximum equal cost routes
  ebgp          EBGP routes as equal cost route
  ibgp          IBGP routes as equal cost route
[R1-bgp]maximum load-balancing i	
[R1-bgp]maximum load-balancing ibgp ?
  INTEGER<1-4>  Specify maximum equal cost routes
[R1-bgp]maximum load-balancing 4


maximu load-balancing 手动负载均衡
可以选择IBGP或EBGP或者同时选择
最大可以支持4条路由同时负载均衡

从IBGP邻居学到的路由 转发 ibgp学到的路由会发给ebgp嘛_IP_09

cluster_list 和orginator的先不讲(这两个是RR里面的)

router_id选最小的,最后一条是选IP最小的

IP和RID都不可能被修改(RID是看你宣告的时候或者手动修改的)

问题来了,为什么rid可以冲突呢?场景是怎么样的呢
简单,双线呢?双线都配置IP都走BGP,但是不配置链路聚合,那不就是有两条路径同一个AS同一个RID了嘛

到团体属性了(可以理解为BGP版本的NAT)

1.用于限制BGP路由传播的范围
2.用于对BGP路由进行标记(类似TAG)

团体属性;用于限制BGP路由的传播范围用于对BGP路由进行标记,类似于IGP的TAG值(BGP的团体可以标记多个,IGP的TAG只能有一个)
分类
公认团体属性:作用。用来限制BGP的传播范围
Internet:设备收到具有此属性的路由后,,可以向任何BGP对等体发送该路由(遵守选路原则)(所有BGP路由都会默认携带这个团体)
No Advertise: 设备收到具有此属性的路由后,将不向任何BGP对等体发送该路由
No_Export: 设备收到具有此属性的路由后,将不向AS外发送该路由
No_Export Subconfed; 设备收到具有此属性的路由后,将不向AS外发送该路由,也不向AS内其他子AS发布此路由
还是那句话
还是用route-policy来玩

从IBGP邻居学到的路由 转发 ibgp学到的路由会发给ebgp嘛_华为_10

先记两个命令

display bgp routing-table peer IP  advertised-routes /查看我给这个IP发哦是那个什么BGP路由
display bgp routing-table peer IP received-routes /查看从这个邻居收到了什么BGP路由

internet就不讲了,默认属性,全部都会默认携带的

示例No-Advertise

从IBGP邻居学到的路由 转发 ibgp学到的路由会发给ebgp嘛_服务器_11

首先使用前缀列表抓出来,然后route-policy里面添加这个属性,然后到bgp里面去调用

从IBGP邻居学到的路由 转发 ibgp学到的路由会发给ebgp嘛_服务器_12


添加了之后,从R1上看,没有了来自R2发送的路由了,只有R3的

然后再去R1上验证

从IBGP邻居学到的路由 转发 ibgp学到的路由会发给ebgp嘛_服务器_13


什么都没发出去

然后取消了这个策略再来看

从IBGP邻居学到的路由 转发 ibgp学到的路由会发给ebgp嘛_华为_14


验证成功,策略取消之后一切恢复正常

No_Export-(说白了就是不给EBGP邻居发路由,只给IBGP发)

环境

从IBGP邻居学到的路由 转发 ibgp学到的路由会发给ebgp嘛_IP_15

下方加上一个设备,作为EBGP,然后在R2上宣告路由并且加上No_EXPORT属性,对比R1和R4的情况

从IBGP邻居学到的路由 转发 ibgp学到的路由会发给ebgp嘛_网络_16


R2的懒得贴了

少了一个ebgp改跳数255,我写上去了,懒得截图了

建立邻居

从IBGP邻居学到的路由 转发 ibgp学到的路由会发给ebgp嘛_华为_17


宣告路由

从IBGP邻居学到的路由 转发 ibgp学到的路由会发给ebgp嘛_网络_18


添加策略后然后再看IBGP和EBGP的BGP表

R2

[R2]ip ip	
[R2]ip ip-prefix abc p	
[R2]ip ip-prefix abc permit 222.1.1.0 24
[R2]rou	
[R2]route-	
[R2]route-policy-change
[R2]route-policy abc pe	
[R2]route-policy abc permit n	
[R2]route-policy abc permit node 10
Info: New Sequence of this List.
[R2-route-policy]if	
[R2-route-policy]if-match  ip	
[R2-route-policy]if-match ip	
[R2-route-policy]if-match ip-prefix abc
[R2-route-policy]app com	
[R2-route-policy]app comm-filter
[R2-route-policy]app community no-	
[R2-route-policy]app community no-advertise
[R2-route-policy]app community no-export
[R2-route-policy]q
[R2]bgp 1
[R2-bgp]undo net 222.1.1.0
[R2-bgp]net 222.1.1.0 route-policy abc
[R2-bgp]

从IBGP邻居学到的路由 转发 ibgp学到的路由会发给ebgp嘛_服务器_19


在R1(IGBP)上,一样正常,在R4(EBGP上)已经消失了

默认情况下,团体属性不会自动发给邻居
因为这个团体属性不是公认必遵,所以团体属性你得手动推过去
在始发的设备输入
BGP下
开启团体属性通告-peer IP advertise-community

剩下的No_advertise属性是完全不对外发了,基本上用不到,所以也不展示了

No_Exoport_subconfed 这个是给BGP联盟用的,简单的说,也是什么都不能发

团体属性有分有序,无序,那个东东不是很想写了,还有聚合的,as-set的属性之类的

总结华为BGP路由选路


前面两篇加上这一篇

1.丢弃下一跳不可达的路由(Next-nop)
2.选用协议优选值最高的(prefence_value最高的路由,华为私有,仅本地有效)使用route-policy修改
3.优选本地优先级最高的路由,默认值100,越高越好,使用route-policy修改
4.优选手动聚合-自动聚合-network-import-从邻居学到的路由
5.优选AS—path短的路由(IBGP不生效)使用route-policy修改。需要注意的是只能修改自己的,否则可能引起环路以及其他问题
6.起源属性IGP>EGP>Incomplete    最后一个是引入的意思,在bgp表里面显示的是? 使用route-policy修改
7.对于来自同一个AS的路由,选择MED小的(ebgp不生效,但是会传递)
8.优选cluster_list最短的路由(RR环境,以后再讲)
9.优选Orginator——ID最小的路由(RR环境,以后再讲)
10.优选Router——ID最小的路由(环境:两个设备直连但是不做链路聚合,同一个AS,同一个RID)
11.选择IP地址最小的路由