BGP协议特性
1.BGP是自治系统外部的路由协议 用来在AS之间传递路由信息
2.路径矢量路由协议 从设计上避免了环路的发生
3.由tcp协议承载 端口号为179
5.支持CIDR和路由聚合
6.支持路由附带很多属性
7.路由过滤和路由策略
BGP的阐述
发送BGP消息的路由器成为BGP发言者(spoke)
相互交换消息的BGP发言者之间互称为BGP对等体(peer)
处于不同AS的BGP对等体为EBGP对等体 通常情况下EBGP对等体是物理直连的
BGP发言者从EBGP对等体获得的路由会向它所有的bGP对等体通告(包括EBGP和IBGP)
处于同一个AS的BGP对等体为IBGP对等体
从IBGP获得的路由不向它的IBGP对等体发布
从IBGP获得的路由是否发布给他的EBGP对等体与BGP是否同步相关(BGP同步指的的是IGP和IBGP之间的同步 开启同步后 只有在IGP也知道IBGP路由时 才会被通告给ebgp对等体)
BGP会话是基于TCP的点到点的单播连接
BGP的报文
open报文:是tcp连接之后建立后发送的第一个报文,用于建立BGP对等体之间的连接关系 对等体建立成功之后 keepalive报文确认并保持连接的有效性 。确认后 才会发送notification keepalive route-refresh update报文的交换
keepalive:BGP会周期的发送keepalive报文 用来保持连接的有效性
update:用于对等体交换路由信息 可以发布多条属性一样的可达路由信息 也可以撤销多条不可达路由信息。
notification:当BGP检测到错误状态的时候 就向对等体发出这个报文 用于中断连接
route-refresh:用来请求对等体重新发送所有的可达路由信息
BGP状态机
IDLE状态下 BGP拒绝任何进入的连接请求 是BGP的初始状态
Connect状态下 BGP等待tcp连接的建立完成之后在决定后续操作
active状态:尝试进行tcp连接
open—sent状态下,BGP等待对等体的open报文
open—confirm状态下 BGP等待的是keepalive或者notification的报文
establish状态下 交换keepalive update notification route-refresh报文
BGP路由属性的分类
公认必遵属性:origin属性 AS-path属性 next-hop属性
公认可选属性:local-pref属性 atomic-aggregate属性
可选传递:community属性 aggregate属性
可选不传递:med属性 cluster-list属性 originator-id属性
BGP公认必遵属性
AS-path属性:公认必遵 是路由到达一个目的地所经过的一系列自治系统号码的有序列表
当BGP将一条路由通告到其他AS时 便会把自己的AS号添加在AS-path列表的最前面
NEXT-hop属性:公认必遵属性 为BGP发言者指示去往目的地的吓一跳
orgin:定义路由信息的来源 标记这条路由怎么变成bgp的路由的
三种类型
igp:表示路由信息产生于AS内部 一般是聚合路由或者通告NETwork命令引入的路由
egp:路由信息通告egp协议引入的
incomplete:路由信息是通过其他方式的来的 一般是通过import引入的igp路由或者静态路由
在其他选路因素相同的情况下 bgp会比较origin属性来确认到达相同目的地的最佳路由
igp>egp>incomplete
BGP公认可选属性
local-pref:用于as内ibgp邻居选择离开本AS时的最佳路由 它表明BGp路由器的优先级
仅在IBGP对等体之间交换 不传递或通告给其他EBGP对等体
BGP可选不传递属性
med:当一个AS有多个入口点时 用于判断流量进入as时最有路径
仅在相邻两个as之间传递 收到这个属性的as一方不会再将其通告给任何其他第三方as
preferred-value属性*
是私有的BGP属性 为从对等体接收的路由分配首选值 从而影响选路
只在本地有效 不随路由信息传播
BGP路由处理流程
BGP路由选路
1.首先丢弃下一跳(next—hop)不可达的路由
2.优选preferred-value值最大的路由
3.优选本地优先级(local-pref)最高的路由
4.优选聚合路由
5.优选AS路径(as-path)最短的路由
6.依次选择origin属性为igp egp incomplete的路由
7.优选med值最低的路由
8.依次选择从EBGp 联盟 IBGP学来的路由
9.优选下一跳跳读量值最低的路由
10.优选CLUster_list长度最短的路由
11.优选originator——id最小的路由
12.优选router ID最小的路由器发布的路由
13优选地址最小的对等体发布的路由
BGp路由的发布策略
1.只将最优路由发布给对等体
2.只把自己使用的路由发布给对等体
3.从EBGP获得的路由会向它所有bgp对等体发布
4.从IBGP获取的路由不向它的IBGP对等体发布
5.从IBGP获得的路由发布给它的EBGP对等体
关闭BGP同步的情况下 IBGP路由被直接发布
开启BGP同步的话 该IBGP只有在IGP也发布了这条路由时 才会被发布给RBGP对等体
6.BGP连接以但建立 BGP发言者 将把自己所有的BGP路由发布给新的对等体