一、BGP:边界网关协议
BGP是运行于TCP上的一种自治系统的路由协议,基于TCP179端口工作,无类别的EGP协议,用于AS之间的路由传递,同时在AS级别上可实施策略决策。
AS长16位,共65535个,其中1—64511为公有,64512—65535为私有

二、BGP的特性
1)无类别路径矢量------以一个AS为一跳
2)是一种较为稳定的协议(收敛速度慢)
3)使用单播更新来发送所有信息,基于tcp179端口工作
4)触发、增量更新------仅触发,无周期
5)具有丰富的属性来进行选路
6)可以在进项和出项对流量实施强大的策略
7)默认不被用于负载均衡------通过各种选路规则只产生一条最佳路径
8)支持认证和聚合
9)一般用于大型网络

三 、BGP的4种包
Open------携带hold time和RID用于邻居关系的建立,正常情况下仅发送一次

Keeplive ------hello time 60s,hold time 180s ,用于保活tcp会话

Update------用于更新消息,包含 目标网络号和属性

Notification------检测到错误时,发送通告消息

四、BGP的状态----6种数据状态
当建立一个BGP通讯时有以下几个状态:

idle(闲置状态):路由器查找路由表看有没有到达目标网络的路由存在;

connect(连接状态):路由器查找路由并完成tcp的三次握手,主动发起tcp
会话的一方为active,被动响应tcp建立的一方为connect;

actice(活跃状态):BGP试图发起TCP连接来获得对等体;

open sent(已发送消息):BGP会话等待对等体发送open消息并检测参数;

open confirm(确认消息):BGP等待keepalive或通知信息来确定会话;

established(连接已建立):对等体建立邻居开始路由。

五、BGP的工作过程
BGP建立的条件:
1、双方建立邻居关系的IP地址是可以路由的
2、指定正确的AS
3、BGP认证一致
4、BGP之间的RID必须不一致
5、EGBP非直连建邻,关闭直连检测(修改EBGP多条)

过程:
1、先和邻居进行Tc的三次握手,建立端到端的虚链路;
2、使用open报文建立邻居关系;open报文携带RID,邻居间RID要唯一;
3、使用update进行路由条目的共享,在接收到邻居的路由条目后,本地生 成BGP表------本地发出及接收到的所有路由信息;
4、之后将BGP表中的最优路径(依赖属性选择)加载到路由表中;
5、收敛完成,仅keeplive周期保活即可;
6、结构突变,新增或断开均使用update包告知即可;
7、若出现故障,将使用notification进行报告。
注:BGP由tcp保证其可靠性,数据包均在tcp会话中进行

六、邻居关系
1、Ebgp邻居关系:不通AS之间的路由器建立的BGP邻居关系;通过该邻居学习到的路由条目管理距离为20 ;
2、ibgp邻居关系:同一个AS内路由器建立的BGP邻居关系;通过该邻居学习到的路由条目管理距离为200 。

七、BGP的路由黑洞
由于BGP可以非直连建邻,故可能出现控制层面可达,数据层面不可达的现 象------路由条目穿越网络中间未启用BGP的路由器。

解决方法:
1、物理链路全连
2、邻居关系全连
3、将BGP路由重发布到IGP中
4、MPLS------多协议标签交换(最佳)

八、BGP的防环机制
1、EBGP的防环
利用AS-PASH属性,路由条目在传递的 过程中,将记录所经过的AS号,BGP协议拒绝接受携带本地AS号的BGP路由;类似水平分割。
2、IBGP 的防环机制
1)、IBGP不中转路由,从一个IBGP邻居处学习到的路由条目不得传递给下 一个IBGP邻居;但是,可以使用联邦和反射器来打破这个规则。
2)、Next-hop下一跳属性
3)、起源ID属性,解决反射器产生的环路,不接收与自己起源ID相同的路由。
4)、cluster-list属性,解决反射器产生的环路;反射出去的不在反射给自己。
5)、联邦AS序列号(在一个大的AS内,不同EBGP联邦之间的防环)

九、BGP路由反射器
在一个AS内,其中一台路由器作为路由反射器RR(RouteReflector),其它路由器做为客户机(Client)。客户机与路由反射器之间建立IBGP连接。路由反射器和它的客户机组成一个集群(Cluster)。路由反射器在客户机之间传递(反射)路由信息,而客户机之间不需要建立BGP连接。
既不是反射器也不是客户机的BGP路由器被称为非客户机(Non-Client)。非客户机与路由反射器之间,以及所有的非客户机之间仍然必须建立全连接关系。
路由器反射器(RR)的反射规则:
1、将邻居分为客户端和非客户端
2、将客户端传递的路由反射给所有的客户端和非客户端
3、将非客户端传递的路由反射给其他的客户端,不能传递给其他的非客户端

BGP路由反射器的防环机制
1、originator_ID属性
2、Cluster_list属性

十、BGP的三张表
1、BGP邻居表
BGP对等体即BGP邻居,交换路径信息,与rip类似;可以直连也可以非直连;邻居关系建立在tcp连接之上。
2、BGP转发表
列出了到达邻居的所有路径,能包含多条路径到达目标网路,*标示可用,r标示不装载,s标示抑制,>标示可以加表可以传递。
3、路由表
列出了到达目标网络的最佳路径。

十一、什么时间使用GBP
1、数据包穿过AS到达另外一个AS
2、连接多个运营商
3、最进入和离开AS的流量进行策略控制