BGP主要作用:实现AS和AS之间的路由传递和路径选择
BGP基于TCP封装,端口号是179;可靠传输,单播。
AS:自治系统
AS号:16bit(0-65535,64512-65534为私有AS号)和32bit(私有AS号从4.2亿以后)
对等体(邻居)关系分为两种:
EBGP:AS路由器之间建立,优先级255
IBGP:AS内部路由器之间建立
建立BGP邻居的前提:首先要TCP可达.
BGP路由表:最优的路由才会传递给BGP邻居,并且写入到自己的IP路由表中。
下一跳不改变原则:从EBGP邻居收到的路由传给IBGP邻居时候下一跳不改变
水平分割原则:从IBGP邻居收到的路由,不会再传递给其他IBGP邻居
接口IP建立邻居配置:
peer 对端接口IP as-number x
改变下一跳配置:
peer x.x.x.x next-hop-local
用loopback接口建立邻居时候:
peer x.x.x.x as-number x
peer x.x.x.x connect-interface LoopBack x
1.BGP报文类型:
- open消息:协商参数
My AS:自己的AS号 --- 必须与本地指定邻居的AS相同
Hoed time :180 坚持时间 (按照最小协商)
BGP identifier: 必须唯一
- keepalive消息:保活消息 --- 维护BGP邻居关系 周期发送:60s/180s
- notification消息:错误消息 --- 通告参数协商错误
- update消息:更新消息 --- 通告路(NLRI 网络层可达信息)由和属性
- route-refresh消息:刷新消息 --- 通知其他路由器发送update
2.BGP状态机:
- Idle:准备TCP连接
- Connect:开始TCP连接
- Active:TCP连接失败,反复尝试TCP连接
- OpenSent:TCP连接成功,进入OpenSent状态;开始发送Open包
- OpenConfirm::参数协商成功,进入OpenConfirm状态;开始发送Keepalive包。
参数协商失败,发送notification消息,回到Idle状态
6. Established:收到对方发来的Keepalive包,进入Established状态,开始发送update
3.路径属性(路由属性)
- 公认必遵
Origin:起源:
作用:标识该路由怎么来的
取值:i(network得到的)、e(EGP学到的)、?(引入的路由)i>e>?
AS_Path:AS路径:
作用:解决AS之间的环路,路由每经过一个AS,就会加上该AS的编号, 当路由器收到的路由发现AS-Path中有自己的AS号,就不会接收。
路由选路:AS_Path越短,路径越优
Next-hop:下一跳
- 公认任意
Local_Preference:本地优先级
Atomic_aggregate:原子聚合
- 可选过渡
Aggregator:聚合者
Community:团体
- 可选非过渡
MED:多出口鉴别器
Cluster-List:簇列表
Originator-ID:起始者ID
公认属性:所有BGP路由器都必须能够识别的属性
公认属性分为两类:
- 公认必遵:必须包括在每个Update消息里
- 公认任意:可能包括在某些Update消息里
可选属性:不需要都被BGP路由器所识别
可选属性可以分为两类:
- 可选过渡:BGP设备不识别此类属性依然会接受该类属性,并通告给其他对等体。
- 可选非过渡:BGP设备不识别此类属性依然会接受该类属性,且不会通告给其他对等体。