面试之BGP属性详解

僤鯓⒐⒋嵵緔 提交于 2019-11-27 16:07:17

首先,因为BGP管理的路由信息非常庞大,而且每个as情况不一致,其必然需要丰富的属性来灵活的进行选路,从而他创造出了11条属性(一条思科私有),来完成自己的使命。
根据其主要作用,将其可大致分为5个方向:3个选路、3个防环、2个反射、2个汇总、1个团体。
一、3个选路(weight、local、med)
首先为什么要有三个选路属性?因为三个属性各司其职,作用均不相同。
1、weight:
为思科私有属性,只作用于自己,不可传递给其他人;适用于一个路由器在多条路径下的选路,无视邻居属性。
2、local:
与weight相比,最大的优点为公有且可作用于AS内其他路由器,用于本AS选择离开AS的出口路由器。
3、med:
与weight和local相比,最大的区别在于,可以作用于出口、影响其他AS,如果在本AS使用,和local差别不大;值得注意的是,med属性只能在两个as之间传递,不能传递给第三个as。
二、3个防环(origin、as_path、next_hop)
作为一个路由协议,能广泛使用的前提必然是自身不会出环,如果路由协议本身都会出环,那么该协议也就没有存在的必要。所以BGP协议利用3个公认必尊属性,牢牢守护住这一命脉。
1、origin:
起源属性,标识该路由的来源方式,i表示自己产生的、E表示EGP学到的、?表示其他手段得到的(重发布);优先顺序为i>E>?
这一属性,实为路由协议之间的较量,在自己内部传递是不会改变属性的;通过这一属性,来保证从自己发出的路由,经过其他协议处理之后,不会再流传给自己,从而防环。
2、as_path:
将经过的AS统统记下来,写进货日记,最近进货的排前面,而拒绝再购买自己进货日记里已经记载的货物(一个AS的路由器拒绝接受携带自己AS号的路由);
当然该属性也可以用来选路,AS-path短的优先。
3、next_hop:
IBGP之间传递路由不会更新next-hop(只有next-hop为0.0.0.0的情况才会更新);EBGP之间传递路由会更新next-hop为自己的更新源地址
自己为0,保证从自己发出去的不再回来。
三、2个反射防环(originator-id、cluster-list)
因为BGP自己的原因,在ibgp之内传递路由时,不能中转;所以若想全网互通,则必须做全互联,而全互联工程量太大且复杂,所以有了反射器,使得路由可以中转。应注意,非客户端之间不能相互反射。但在反射之后,就违背了BGP设计之初防环的作用,所以又诞生了两个反射防环属性。
1、originator-id:
反射服务器收到路由后,将起源者的rid标记,后面的路由器看到自己的rid,不收,从而起到防环的作用。
originator-id 只能标记一个路由器,若途经多个反射器,则无能为力,可能导致反射器之间出环。所以出现了cluster-list。
2、cluster-list:
反射服务器反射出去的路由,会生成列表,加入自己的rid,沿途反射的均加入自己的rid,等收到后,若列表中有自己的rid,则忽略,达到防环的目的。
四、2个汇总(Atomic-aggregate、aggregator)
由于路由协议庞大且复杂,那么避免不了需要对一些路由进行汇总,汇总本身就是消灭一些路由、产生一些路由,而在这个过程中必然会丢失很多属性。那么BGP就产生了2个汇总属性。
1、Atomic-aggregate:
通过添加某些选项,来达到弥补丢失一些属性的作用。
加As-set,继承明细as属性,防环
加summary only 只显示汇总
加advertise-map 显示某些属性
加attribute-map 为聚合后的添加某些属性
而在其他路由器得到汇总路由之后,有可能需要知道是谁产生的汇总,产生了寻找的需求,那么就产生了aggregator属性。
2、aggregator:
通告汇总路由的汇聚路由器BGP-ID ,寻找汇总者方便
五、团体属性 community
团体属性主要有两大作用:1、为了可读性好 2、规定和谁玩
1、可读性好:
利用正则表达式 X:Y 形式来标识,使得可读性大大提高。
2、规定和谁玩:
利用四条子属性来规定和谁玩的问题。
①Internet 默认属性,可以给任何bgp发送,不对携带团体值的路由做任何限制
②no-export 只能在一个as之内传递,可以在联盟内传递,该属性就是限制携带团体值的路由传递给ebgp邻居,联盟ebgp除外
③ no-advertise 不在ibgp,ebgp邻居间传递,禁止传递给其他邻居
④local-as 不向任何ebgp邻居发送,包括联盟的ebgp邻居

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!