BGP总结(边界网关协议)
BGP是一个路径矢量路由协议。 BGP主要是在AS和AS之间传递的路由协议。
BGP消息类型: 1.OPEN 是主要用来建立邻居的 2.KEEPALIVE 是用来保持邻居关系用的。都是单播。 3.UPDATE :路由更新 4.NOTIFICATION是一个通知消息。发生错误时就会发NOTIFICATION消息。
EBGP:两个自治系统之间的邻居就是EBGP邻居。 IBGP:在一个AS内部就是IBGP邻居。
BGP的状态机制
1、 idle状态:初始状态,不接受任何BGP的连接,等待start事件的产生,start事件产生后,系统开启connectRetry定时器。
2、 connect状态:连接状态,系统等待TCP连接建立完成,如果建立成功后,系统拆除connectRetry定时器,并发送open消息,此时进入open-sent状态。
3、 Active状态:活跃状态,。如果有start事件的产生,但是TCP连接并没有建立成功,此时系统进入Active状态。
4、 Open-sent:open消息发送状态,表示已经发送open消息,等待对等体的open消息。
5、 Open-confirm:open消息确认状态。收到对等体的open消息已经发送确认消息,等待对等体对自己的open消息确认的keepalive消息。
6、 Established:连接已建立,此时对等体可以发送update消息报文进行路由的更新了.
通告BGP路由的方法
BGP路由是通过BGP命令通告而成的,而通告BGP路由的方法有两种:network和Import。
(1)network方式:
使用network命令可以将当前设备路由表中的路由(非BGP)发布到BGP路由表中并通告给邻居,和OSPF中使用network命令的方式大同小异,只不过在BGP宣告时,只需要宣告网段+掩码数即可,如:network 12.12.0.0 16。
(2)Import方式:
使用Import命令可以将该路由器学到的路由信息重分发到BGP路由表中,是BGP宣告路由的一种方式,可以引入BGP的路由包括:直连路由、静态路由及动态路由协议学到的路由。其命令格式与在RIP中重分发OSPF差不多。 EBGP多跳 这个好理解,由于默认BGP中EBGP邻居之间的TTL值为1,(TTL,数据包的生命周期值,每经过一个路由器该值会-1,当该值为0后,数据包将会被丢弃)。若EBGP对等体非直连(通信时需要经过一个以上的路由器,TTL值就不够用了),TTL值限制会使非直连的对等体无法正常建立邻居关系,所以需要用EBGP多跳的命令来解决非直连的邻居关系。
优先级:
IGP:优先级最高,路由在起始AS的内部,使用network命令通过BGP通告路由时通常属于这种情况。在BGP表中,IGP源头用i表示
EGP:优先级次之,说明路由是通过EGP获悉的,在BGP表中用e表示。
1.路由不优问题;
原因:1.下一跳不可达 2.IBGP同步
下一跳属性规则: 1.network 引入 默认next-hop 属性为0.0.0.0 2.IBGP或者EBGP邻居学习到的路由,下一跳默认为对方的更新源地址(即建立TCP三次握手的对方IP地址) 3.IBGP学习路由传递给EBGP邻居时,下一跳为EBGP邻居建立的更新源地址(EBGP邻居路由传递给EBGP邻居时也一样) 4.EBGP学习路由传递给IBGP邻居时,下一跳不发生改变 4.EBGP学习路由传递给IBGP邻居时,下一跳不发生改变
BGP 路由惩罚
特点: 1.被惩罚的路由不能参与选路,不能加入本地的IP路由表,不能传递 2.路由惩罚仅仅针对EBGP邻居学习的路由,并且针对的是某一个邻居传递的路由 并非路由条目本身 惩罚值:路由条目每翻滚一次,惩罚值增加1000,路由属性每翻滚一次惩罚值增 加500, 1000 500 是硬件编码的,不能修改 惩罚门限:超过了惩罚门限开启进行路由惩罚,默认值为2000 重用门限:当惩罚值低于该值,重新使用该路由信息,默认为750 半衰期:默认为15分钟
增加BGP协议的安全性: 1.BGP路由认证:BGP的路由认证信息存在于TCP数据结构中,密码信息使用MD5 方式 2.限制BGP邻居的TTL值 启用BGP协议路由认证:
|