BGP学习笔记

BGP:
1、基本概念
一、基于TCP 179,基于TCP的好处:面向连接的,有确认机制可靠的
二、是一种用于AS之间路由传递和控制的协议(AS)
三、BGP报文:
open:协商创建邻居关系(版本,AS号,hold-time,router-id)
keepalive :周期60s发送,用来保活TCP连接
update :用来进行增量的路由更新
notification :差错报文,在任何阶段都有可能发送,一旦收到直接进入IDLE
route-refresh:向对等体发送路由更新请求
四、BGP状态机:idle connect active opensent openconfirm established
五、BGP邻居关系:IBGP,EBGP
2、路由更新规则
一、只将最优路由通告给对等体
二、从EBGP邻居学来的会通告给全部邻居关系
三、从IBGP邻居学来的不会通告给IBGP邻居
四、从IBGP邻居学来的默认会通告给EBGP邻居
从IBGP邻居学到的路由在传给EBGP邻居时要根据IBGP和IGP同步的状况来决定
同步:要向EBGP更新一条来自IBGP邻居的路由,须要在BGP和IGP同时学到这条路由
(华为设备默认关闭同步而且不能开启)
3、BGP的属性——经过更改BGP路由属性控制路由的传递
一、next-hop:公认必遵属性,必须携带在update中,不携带就会出错
当通告给对等体一条BGP路由时,对等体会将此路由下一跳置为对方和我创建邻居关系的地址
从EBGP邻居学来的路由在传给IBGP邻居的时候,不修改下一跳
从EBGP/IGBP学来的路由在传给EBGP邻居时,要修改下一跳为本身和对方创建邻居关系的地址
当要使用一条BGP路由时,下一跳必须可达;使用BGP路由时须要先递归IGP查找BGP路由的下一跳
能够在BGP路由器上使用peer X.X.X.X next-hop-local来强制修改下一跳属性,此命令用于将从EBGP邻居学来的路由传给IBGP邻居的时候使用。
二、origin:起源属性,公认必遵,BGP路由必须携带在update报文,若是不携带就会出错
用来标识此路由最初是以什么方式引入BGP的(network,import,egp)
若是是以network则标识为 i(igp)
若是是以egp则标识为 e(egp)
若是是以import则标识为 ?(incomplete)
I > e > ?
能够在整个BGP域内出入方向作修改
三、AS-path:公认必遵属性,必须携带在update中,不携带就会出错
用来标识路由在AS之间传递的时候通过了哪些AS,将通过的AS编号加入AS-path
(1)选路:优选AS-path短的BGP路由
(2)AS间防环:在从EBGP邻居收到一条路由时会对AS-path作检查,检查AS-path中有没有自身的AS号,若是有,则丢弃此路由,若是没有则继续使用。
能够在AS内,AS间经过修改AS-path的长度来影响选路,只能添加已经通过的AS编号
四、Local-Preference:公认任意属性,每一个厂商都支持,但能够不携带在update报文中
默认值为100,值越大越优先,只能在AS内部生效,不能传出AS
用来影响AS内部路由器如何访问其余AS的路由
只能在IBGP邻居的出入方向和EBGP邻居的入方向修改
五、MED(multi-exit-disc):多出口鉴别器,可选非过渡属性,能够选择性携带和识别,若是不识别,将不会传递该属性;用于告知邻居AS一条最好的路径进入本AS;本质是开销值
比较原则:越小越优先,默认为0;
默认只能比较来自一个AS的MED值,能够经过配置命令来比较来自不一样AS的MED;
能够影响邻居AS以及他的IBGP邻居,不能影响邻居AS的其余EBGP邻居
六、community:团体属性,可选过渡属性,能够选择性识别和携带,若是不识别,则会将此属性透传给其余设备;默认不传递给邻居,必须经过配置peer X.X.X.X advertise-community来将团体属性通告给邻居。
做用:用来限制路由的传递范围,使用公认团体属性限制
用来标识一类具备相同特征的路由,使用扩展团体属性标记
公认团体属性:internat:路由默认团体属性,具备此团体属性,会将路由传递给邻居
No-advertise:具备此团体属性,不会将路由传递给任何邻居
No-export:具备此团体属性,不会将路由传出AS
No-export-subconfed:在联盟中使用,不会传给其余联盟AS
扩展团体属性:AA:NN标识,AA通常用AS编号表示,NN表示AS内部的团体编号
4、选路原则——13条选路原则
一、比较prefrence-value,越大越优先,华为私有属性,只在本台路由器上生效
二、比较local-preference,越大越优先
三、本地始发:手工聚合>自动聚合>network>import>从邻居学到的
四、比较as-path,越短越优先
五、比较origin,i(network)>e(egp)>?(import)
六、比较MED值,越小越优先
七、EBGP邻居>IBGP邻居
八、优选BGP路由下一跳递归IGP路由开销值小的
九、若是前八条如出一辙,则能够实现负载分担
AS-PATH必须严格一致
默认BGP路由负载分担条目为1
十、比较cluster-list,越短越优先
十一、比较originator-id,越小越优先
十二、比较router-id,越小越优先
1三、比较对等体的IP地址,越小越优先
5、防环机制——AS内/AS间/特殊场景
一、AS内防环:从IBGP邻居学来的不会通告给IBGP邻居(IBGP水平分割)
问题:AS内某些路由器学不到BGP路由
解决方法:(1)AS内部IBGP全互连
二、AS间防环:使用AS-PATH防环
三、路由反射器:(Route-Reflector)
(1)角色:反射器,客户机,非客户机(都是在反射器上定义的)
(2)路由传递原则:
路由反射器打破了水平分割,非非不传
只反射最优路由
从客户机学来的路由会反射给客户机和非客户机
从非客户机学来的路由会反射给客户机
(3)如何在RR中规划IBGP:
客户机只须要和反射器创建IBGP邻居
非客户机须要和反射器创建IBGP邻居
非客户机和非客户机之间须要全互连IGBP
(4)防环机制:
簇内防环:使用originator-id防环,此属性是可选非过渡属性
在RR上反射路由时,若是此属性为空,
则会打上本AS始发路由器的router-id
其余路由器收到带有originator-id的路由,
会将此属性和本路由器router-id比较,
若是同样,则不接受,若是不同,则接受。
簇间防环:使用cluster-list防环,此属性是可选非过渡属性
当RR在反射路由时,会检查此路由有没有cluster-list
若是没有,则建立一个,并将自身的cluster-id写入
(Cluster-id默认是router-id,但能够修改)
其余RR在接收到反射的路由时,会检查此属性cluster-list
若其中包含自身的cluster-id,则忽略该路由
四、BGP联盟
(1)角色:成员AS(小AS),联盟AS(大AS)
(2)路由传递原则:联盟EBGP邻居,联盟IBGP邻居
从EBGP邻居学到的路由会传给联盟EBGP/联盟IBGP
从联盟EBGP邻居学到的路由会传给联盟EBGP/联盟IBGP/EBGP
联盟EBGP邻居之间传递路由时,下一跳不作修改
只传递最优路由
(3)配置原则:须要在BGP进程中指定联盟AS的AS号
须要在BGP进程中指定联盟EBGP邻居的AS号
(4)防环机制:使用联盟内有序AS防环
在路由通过联盟AS时,会建立一个(小括号),
并在小括号里面最前添加成员AS的AS编号
每通过一个成员AS,都会在最前面添加成员AS
在此路由出联盟AS时,会将小括号替换成联盟AS
中间成员AS在收到路由时,会检查AS-path中有没有自身as
若是有,则忽略该路由
6、BGP特性
一、路由聚合:自动聚合,手动聚合
(1)自动聚合
手动聚合
(2)路由聚合须要考虑的问题:
路由属性的继承问题:next-hop,自动/手动聚合至关于新引入一条路由,下一跳为本身
Origin,自动聚合起源属性为?(incomplet)
手动聚合起源属性继承明细路由中起源属性最劣的
As-path,自动聚合至关于新引入一条路由,AS-path没有继承
手动聚合中默认不继承明细的AS-path,
(可使用as-set参数让聚合路由的AS-path中使用{}携带明细路由的AS-path)
明细路由的通告问题:自动聚合的路由默认不通告明细路由
手动聚合的路由默认通告明细路由,可使用detail-suppressed抑制全部明细路由,ide

相关文章
相关标签/搜索