BGP:边界网关路由协议
协议使用范围:AS之间使用,携带掩码
协议类型:路径矢量型路由协议
封装:基于TCP封装,端口号179,保证了可靠性,但是丧失了邻居的自动发现,只能单播建邻,但可以非直连建立邻居

BGP的特点
1、BGP版本:V1 V2 V3 V4(只传递IPV4) V4+MP-BGP(支持多种协议)
2、BGP一般用于大型网络
3、BGP的更新方式:触发更新,原因:更新量非常大
4、BGP存在大量属性,由于BGP协议无算法、更新量大,不能选出最优路径,那就必须通过手工来指定,指定也需要合理的来指定,那就需要大量的属性来决定;
5、BGP使用open报文建立邻居,使用keepalive报文维持邻居的关系
6、keepalive周期间隔时间60s hold时间为180s
7、BGP支持路由认证
8、BGP支持聚合
9、BGP非常消耗路由器资源,之所以Bgp的最小使用单位是一个路由器,所以每个路由只能使用一个bgp的进程
10、Bgp使用as号作为识别不同as路由的标识,该as号需要具有唯一性;As号的范围1-65535 可以使用扩展32位 65536-4294967395(解决as不够用的情况)公有as1—64511,私有as64512----65535

BGP两种邻居关系
IBGP邻居关系-----相同as的路由器建立邻居的关系
EBGP邻居关系----不同的as的路由器建立邻居的关系

建立邻居的消息包
open------用于邻居的建立与发现类似于hello包(里边带有一些参数用于建邻的时候做对比:比如高版本会协商低版本、识别as号建立什么样的邻居
keepalice------保活,维持邻居的关系
update-----用于更新,通告路由
natification----BGP出错报文
状态机
down状态:不发任何数据包

idle状态:配置了neighbor或邻居重置,BGP初始化所有资源打开connectretry计时器,初始化邻居的连接,进行三次握手,监听邻居的初始化消息并将状态转到connect状态,为了防止邻居建立的摆动,connectretry计时器会出现成倍的增加,下一次是前一次的2倍120,再下一次240

connect:在次状态下,tcp同步成功,计时器清零完成发送和接收open报文(比对里边的信息);
同步不成功:BGP继续监听邻居发出的连接,重置计时器转移到actice状态
计时器超时,计时器重新开始,再次试图与邻居建立tcp连接,BGP保持在connect状态,出现其他事件转入idle状态
actice状态:再次尝试与邻居建立关系
如果成功,计时器清零,完成初始化,进入connect发送open消息,hold时间为4min;
如果在actice状态,计时器超时回到connect状态并重置计时器
如果与一个未知地址建立tcp连接,同时计时器重置,连接拒绝并保持在actice状态
任何事件都会导致回到idle
open send状态:open报文已经发送,在等待邻居回复open报文
收到open消息,出现差错将给邻居发送一个报错报文,并重置为idle
收到open消息,将发送keepalive给邻居,建立邻居关系并置为open confire状态
收到tcp断开消息,则断开bgp连接,重置计时器,状态置为actice
open confire:等待keepalive消息或notification消息
收到keepalive报文进入establish状态
收到notification断开tcp连接置为idlle
如果hold超时,检测到一个差错或者stop事件,bgp将会给邻居发送一个notification报错,断开tcp连接,重置为dile状态

established:邻居以完全建立,可以交换update、keepalive、notification消息,收到notification断开tcp进入idle

哪些情况会导致邻居建立失败:
1、neighbor:10.1.1.1
代表向该地址发送tcp端口为179的数据,并且自己需要在发送出的地址上打开tcp179的监听,该配置可以指定源地址也可以不指定源地址,不指定就是出接口地址(意味着得打开该接口关于tcp179的监听)
互指邻居,并且打开179端口监听(本端指的地址需要时对反的源地址,对方指的地址需要时本端的源地址)
2、neighber 10.1.1.1 remote-as xx
对端邻居的as号必须和本端的as号不一致
3、建邻双方保证tcp179能够发送,不丢失,不被拦截

邻居间传递的路由只能是带>的路由,不带不传递
EBGP邻居关系路由传递:只要不违背环路原则或人工策略EBGP邻居传递无限制(前提必须优)EBGP之间传递将会修改下一跳为自己的更新源地址

IBGP邻居关系路由传递:IBGP邻居之间不会中转路由【IBGP自己产生的路由(自己宣告的,自己重发布进来的)和EBGP邻居传递的都可以传递给他的IBGP邻居,但不可以在IBGP之间中转(也就不能传递到邻居的邻居)】

例如:R3收到a的路由的下一跳是1的更新源地址

BGP 故障 bgp 状态_路由表


IBGP之间传递不修改下一跳的好处:避免了环路,也不用再设计防环算法

IBGP之间传递不修改下一跳的坏处:IBGP之间路由传递必须直连建立邻居,导致IBGP邻居关系是一种全互联状态。

BGP的11条属性:
weight:只有cisco设备才有的属性,而且只能针对本路由器生效,传到其他设备就不生效(使用的情况,收到同一个as的两条路由并带有weight才会比较)
origin:起源者
as-path:用于EBGP防环,经过的路由器会记录as号
next-hop:下一跳
local-pref:本地优先级,不能传输到其他as
atomic-aggregate:用来通告聚合后的路由丢失
aggregator:用来通告汇总路由的聚合路由器
community:社团属性
med:metric
originator-id和cluster-list:在反射器的时候用来防环

公认必尊
所有BGP路由必须识别是遵守的原则:origin,as-path,next-hop
公认可尊
所有的BGP路由必须识别但是可以不遵守:local-pref,atomic-aggregate
可选传递
不是所有的bgp路由都能识别,但是所有bgp都能传递:aggregator和community
可选非传递
不是所有路由器都能被识别,不能识别的bgp路由器就丢弃,med originator-id cluster-id,weight

策略路由和路由策略的区别:
路由策略是根据一些规则,使用某种策略改变规则中影响路由发布、接收或路由选择的参数而改变路由发现的结果,最终改变的是路由表的内容。是在路由发现的时候产生作用。
策略路由是尽管当前存在最优路由,但是针对某些特别的主机(或应用、协议)不使用当前路由表中的转发路径而单独使用别的转发路径。在数据包转发的时候发生作用、不改变路由表中任何内容

优缺点:
通信的规则是先有路由才有转发。路由策略仅仅在路由发现的时候产生作用,路由表稳定后通常不会变化,这时路由策略没有应用就不会占用资源。而策略路由(转发策略)是在转发的时候发生作用,路由器在初始产生路由表后,基本工作量都在数据包转发上,如果策略路由(转发策略)过于复杂,就会导致一直占用大量的资源。
建议一般不用策略路由(PBR)