BGP的宣告、BGP的属性详解、专治各种BGP的属性选路问题
BGP的宣告、BGP的属性详解、专治各种BGP的属性选路问题
南兮雨朦胧 2019-08-02 17:50:45 2456 收藏 18
版权
文章目录
一、BGP的宣告
二、BGP的属性
三、属性详情
1、Weihgt
2、Origin:标识该路由如何得到的
3、AS path
4、next-hop
5、local-pref
6、MED
7、Atomic_aggregate
8、Aggregator
9、Community
社团属性的四个子属性
10、Originator_id
11、Cluster_list
一、BGP的宣告
BGP的最终目标是完成本AS的全部或者某些路由的转发,而实质就是将原有的路由条目宣告出去,所以应该满足以下条件:
1、被宣告的路由必须在路由表中;
2、被宣告的路由必须和路由表中的前缀和掩码一致;
3、EBGP邻居建邻一般使用直连建邻,如果使用非直连建邻需要修改跳数,默认为1(不修改则无法建邻),直连一般指的是接口两端,如果采用环回建邻,必须修改跳数;
正常建邻:
全局下:router bgp 1 //启动BGP协议,加上AS号
neighbor 10.2.2.2 remote-as 2 //指定对方成为邻居,加上对方AS号;
R1(config)# neighbor 10.1.1.1 ebgp-multihop //修改跳数(不加则为255);
二、BGP的属性
BGP最重要的是属性,可以完成选路、防环、标记等工作,IGP协议的度量在AS之间无法选择正确的最佳路径;
属性分为四类:
1.公认必尊 --必须传递必须识别
所有 BGP 路由器必须识别遵守的原则有 origin,as_path ,next_hop
2.公认可尊–必须识别
所有路由器都能识别但是不一定要遵守,local_pref,atomic_aggregate
3.可选传递–打开传递
不是所有 BGP 路由器都能识别,但是所有 BGP 都能传递,aggregator 和 community
4.可选非传递–打开不传递
不是所有路由器都被识别,不能识别的 BGP 路由器就丢弃它,MED,originator_id 和 cluster_id,weight
三、属性详情
1、Weihgt
cisco 私有属性,对于离开 AS 的路由在路由器选择那一条最优,本台路由器产生为 32768,学习 的为 0,越大越优,适用于一台路由去 往别的 AS 有多个出口。
Router bgp 1
Neighbor 10.1.1.1 weight 1//修改该邻居所有传递过来的路由weight为1
精确修改用prefix-list和route-map组合:只针对某一条路由条目,只能用in方向调用;
Weight值的修改只能影响本路由器,不能影响其他路由器,意味着AS如果只有一个出口weight选路是适用的,但是有多个出口的情况下weight不够适用;
2、Origin:标识该路由如何得到的
起源属性,0 表示宣告(i表示),1 表示 EGP 学到(E表示),3 表示其他手段得到(重发布表示?),越低越好 ;
该属性可以选路但是一般不用于选路;
3、AS path
记录一条路由在传输过程中经历了那些 AS(不算自己的AS),最近经过的AS排在前面,一个AS路由器拒绝接受携带本AS号的路由条目,可用来防环,也可以用来选路,AS-path越短越好;
一般在选路当中添加AS会重复添加已经历的AS,一般不会添加未经过的AS,适用于任何邻居之间,in和out都行:
Neighbor x.x.x.x allow as-in 允许和具有自己相同的 AS 的路由进入本 AS,有条件的打破环路,本路由器使用;
Neighbor x.x.x.x as-override 把具有和其他 AS 相同 AS 号的路由放入这个 AS ,邻居路由器使用;
4、next-hop
到达下一跳路由器的IP地址,IBGP之间不变,EBGP之间传递路由next-hop为0.0.0.0的时候会修改为更新源地址,下一跳为0的优于其他路径;
通告路由器和接受路由器不在一个 AS,next_hop 为通告路由器的更新地址 ;
通告路由器和接受路由器在一个 AS 内,next_hop 为通告邻居的更新地址 ;
通告路由器和接受路由器在一个 AS 内且为邻居关系更新地址为不同 AS,则为外部更新地址;
定制也由route-map完成;
5、local-pref
local-pref与weight一样也是选路属性;
不能在ebgp邻居之间传递,数值越大越优先(默认100),常用于当本AS有多个路由器出口时,选择拥有local值大的路由器为出接口路由器,也可以是到达一个网段有多个出口路径时,选择local-pref值大的路径;
1、修改路由器的默认local-pref值,该路由器通告给ibgp邻居的路由都会携带修改后的local-pref值;
2、通过route-map修改某一条路由的local-pref值,EBGP只能在in方向调用,ibgp可以是in和out方向;
6、MED
选路属性,本质就是metric,默认为0,一般只能用于自同一个AS发出的不同路径MED值比较,两个不同AS比较MED没有意义;
用于选择流入 AS 的入口路由器,只可以在两个 AS 之间传递,不能传递给其他AS,越低越好(只能在一个AS内比较) ,一般用于影响对方AS,如果在本AS使用和local-pref等同(注意MED不能再路由器上修改默认值)。
修改:
Bgp always-compare-med //开启比较不同AS的MED
7、Atomic_aggregate
用来警告下游路由器路由聚合后产生的路由路径丢失。
BGP 支持向 BGP 邻居传递重叠路由可以选择多种方式
as-set会使该属性消失
8、Aggregator
用来通告汇总路由的汇聚路由器 BGP_ID(cisco私有),方便寻找汇总者 ;
9、Community
社团属性,为了更好的标识bgp路由,标识格式为x:y;
传递社团属性必须开启传递功能:
router bgp 2
neighbor 10.1.1.1 send-community both/standard/extended //开启团体属性
团体值的设置不能再EBGP之间(ibgp之间可以),它的传递可以在IBGP之间也可以在EBGP之间:
Ip bgp-community new-format //开启扩展格式匹配
Show ip bgp 10.1.1.1 //查看路由详情可以查看到团体值 ;
Show ip bgp community //查看具所有具有团体值的路由;
Show ip bgp community 111//查看某团体值的所有路由;
专用community匹配工具:
ip community-list xx
ip community-list expanded k permit 111
之后用route-map调用即可;
社团属性的四个子属性
1.internet 默认属性,可以给任何 bgp 发送//不对携带团体值的路由做任何限制。
2.no_export 只能在一个 AS 内传递,可以在联盟内传递,该属性就是限制携带团体值的路由传递给EBGP邻居,联盟的ebgp邻居除外。
3.no_advertise 不在 IBGP 邻居间传递,禁止传递给任何邻居。
4.local-as 不向任何 EBGP 邻居发送包括联盟的 EBGP 邻居 。
标准和扩展 community
标准是普通路由可以设置的团体公有和私有
扩展是 mpls 中的 vrf 路由传递定义的
10、Originator_id
用于路由反射使用,是路由发起者产生的一个 32 比特的值,该值是本地路由发起者的 RID,如果路由发起者从属性上看到 自己的 RID,说明有环路就忽略该跳路由;
11、Cluster_list
路由反射器使用,是路由进过反射器簇 ID 的一个序号。如果反射器在属性里看到自己的簇 ID就说明有环路,忽略
簇 ID 列表:记录了所有反射器的 RID ;
RR反射器:客户端把路由交给服务器,服务器可以反射给所有设备,可以解决BGP的路由黑洞;
反射器优点:减少建邻居数量,不必全连;
缺点:因为BGP只传递最优路径,反射器下游路由器丧失了对反射前路由的最优路径选择权。
————————————————
版权声明:本文为CSDN博主「南兮雨朦胧」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_44027899/article/details/98209612