BGP(border gateway protocol)边界网关协议
1.BGP的工作范围
AS(自治系统)
由同一个管理结构管理,使用统一的选路策略的一组路由器的集合
IGP:自治系统之内的路由协议
rip, ospf, isis
EGP:自治系统之间的路由协议
bgp
2.BGP的特点
BGP是一种边界网关协议,用来在不同的AS之间传递路由信息,是一种增强的
距离矢量路由协议。
1.可靠传输
2.丰富的Metric度量方法
3.避免环路
支持CIDR(无类别域间路由)
增量更新
丰富的路由过滤和路由选路
为路由附带属性信息
3.BGP的消息类型
五种报文(全都是建立在tcp之上的,目的端口号179)
1.OPEN
用来在对等体之间建立邻居关系
报文字段
marker:
length:
type:
version:
my-as:
hold time:
BGP-id(router-id):
options-length:
options parameters:
2.KEEPALIVE
周期的发送,用来维护对等体之间的邻居关系的
报文字段(只有头部信息)
marker:
type:
length:
3.UPDATE
在对等体之间用来传递路由信息的(包括可达和不可达的信息)
报文字段
marker:
length:
type:
withdrawn routes length:不可达路由信息的长度
withdrawn routers:不可达路由信息
total path attributes length:路由属性长度
path attributes:路有属性
network layer reachability information:网络层可达信息
4.NOTIFICATION
当BGP speaker检测到错误信息的时候,就发送改信息给对等体
报文字段
marker:
length:
type:
error code:
error subcode:
date:
5.ROUTE-FRESH
通知对等体自己支持路由刷新能力
报文字段
marker:
length:
type:
状态机
1.idle(在没有连接的时候就处于idel)
2.connect(尝试进行tcp连接)
3.active(重新进行tcp连接,如果重连计时器超时,就会再进行tcp连接)
4.open-sent(tcp连接成功,会进入此状态,已经发送了open报文)
5.open-confim(接受到对等体的open报文,keepalive计时器超时)
6.establish(邻居关系建立成功)
解释:4.5.6一旦发生错误,就会返回到idle状态
BGP数据库
IP-RIB(ip路由表)
BGP-RIB(bgp路由表)
bgp路由的通告原则
通告原则一
bgp会把自己产生的路由信息通告给对等体
bgp只会把自己最优的路由信息通告给对等体
bgp只会把最优的路由给自己使用
通告原则二
bgp-speaker从ebgp获得的路由会向其他所有的bgp对等体通告(包括ebgp和ibgp)
通告原则三
bgp-speaker从ibgp获得的路由不会再传递给其他的ibgp邻居(ibgp水平分割)
通告原则四
bgp-speaker从ibgp学习到的路由是否通告给ebgp对等体要依据bgp和igp的同步情况
(华为路由器默认是不同步的,而且不能修改)
bgp的通告
bgp的通告好ospf不一样,主要是bgp通告的是路由,而不是地址,但是ospf通告的是地址
1.network
2.import
bgp的属性分类
公认
公认必遵:路由器都可以识别,必须携带
公认任意:路由器都可以识别,但是可以不携带
可选
可选过渡:路由器可选择是否携带,不识别可以传递
可选非过渡:路由器可选择是否携带,不识别不能够被传递
bgp的路径属性
1.origin(源属性)-->公认必遵
i---igp(network宣告进去的)
e---egp(egp学习到的)
?---incomplete(除了上面两种的)
默认是不会被任何路由器修改的
2.AS_PATH属性(AS路径属性)-->公认必遵
每经过一个AS,都会打上一个AS属性,可以用来防止环路
这也是为什么bgp是一个增强型的距离矢量协议
1.防止环路
2.可以预先规划AS_PATH,预先的规划流量
3.community(团体属性)-->可选过渡属性
团体属性是一组具有相同性质的目的地址属性
保留的团体属性
公认的团体属性
no-export:在本as内进行传递
no-advertise:不进行通告
no-export-subconfed
私有的团体属性
会对一个团体进行统一的标记,以方便之后对此进行统一的策略
4.MED属性(metric属性)
对入方向的路由修改med,以选择路由,必须是同一个AS系统
5.local preference(本地优先级属性)
对出方向的路由修改local preference,以选择路由,优先级越大,越优选
6.Next-hop-->公认必遵
从ebgp学习到的下一跳传递给ibgp的时候不会更改,因此需要进行引入,或者下一跳更改
从ibgp学习到的下一跳地址给ebgp的时候下一跳地址会进行更改
bgp的路由汇聚
1.自动聚合
自动聚合只对import引入的路由进行聚合,对于network宣告的路由不进行聚合
会自动的聚合成主类路由,并且会抑制明细路由
2.手动聚合
对所有的路由都可以进行聚合,会继承原有的origin属性,但是不会继承原有的as_path属性,
要通过as-set加上明细所有的as-path属性,也不会抑制明细路由
路由策略
1.origin-policy
会抑制部分路由信息,并且当路由消失的时候也会使得聚合路由消失
2.suppress-policy
只会抑制部分路由信息
3.attribute-policy
属性策略,会给聚合路由添加上适合的属性信息