- 积分
- 35
- 鸿鹄币
- 个
- 好评度
- 点
- 精华
- 注册时间
- 2022-10-10
- 最后登录
- 1970-1-1
- 阅读权限
- 10
- 听众
- 收听
网络小学徒
|
BGP:AS边界网关协议(路径矢量路由协议)
动态路由协议
IGP:内部网关路由协议,运行在AS内的路由协议(默认15跳)
RIP:工作在4层,属于应用层协议,采用UDP进行封装,端口号520,距离矢量路由协议
OSPF:工作在网络层,封装在IP协议之上,协议号89,链路状态路由协议
ISIS:工作在数据链路层,采用IEEE802.3帧进行封装,链路状态路由协议
EGP:外部网关路由协议,通常是运行在AS间的路由协议
EGP:最老的外部网关路由协议,现在已经被淘汰
BGP:工作在4层,属于应用层协议,传输层采用TCP进行封装,端口号为179,增强型的距离矢量路由协议
AS:自治系统
由同一组织或管理机构,选用统一的选路策略的一组路由器的集合
不同的AS之间使用AS号来区分,
AS(AS number):2B,取值范围0-65535
公有:1-64511
私有:64512-65534
BGP概述:
作用:运行在AS与AS之间来传递路由信息,同时还携带丰富的属性,可以为BGP在对路由灵活的实现优选,过滤,控制
应用场景:超巨型的网络
特点:
1、路由承载能力超强
2、可靠性高(传输层使用TCP进行封装)
3、增强型的距离矢量路由协议(AS号,默认255跳)
4、稳定性高:增量更新,减轻BGP在链路上传输路由信息所占用的带宽
5、支持CIDR,路由聚合
6、无环路:AS内的,AS间的
7、路由属性丰富
8、拓展性好(BGP使用TLV进行信息的传递)
BGP触发式更新,非周期更新
基于TCP(端口号179)
只传递路由信息,不暴露拓扑信息
能够承载大批量的路由信息,支撑大规模网络
提供了丰富的路由策略,灵活的选路,指导对等体按策略发布路由
提供了路由聚合和路由衰减防止路由震荡
不支持邻居发现功能
BGP相关术语:
BGP speaker:BGP的发言者(允许了BGP协议的路由器)
BGP peer:BGP对等体(BGP邻居)
router-id:BGP网络中设备的唯一标识符,可以手工配置,也可以自动生成
BGP的邻居关系类型:
IBGP邻居关系:运行在同一AS内的BGP路由器之间建立的邻居关系
一般使用环回口建立邻居关系,也可以使用直连接口建立邻居关系
如果使用环回口建立邻居,需要指定更新源地址为环回口
EBGP邻居关系:运行在不同AS间的BGP路由器之间建立的邻居关系
一般使用直连接口建立邻居关系,也可以只有环回口建立邻居关系
如果使用环回口建立邻居关系,需要指定更新源地址两端可达,需要配置EBGP的多跳(默认的TTL为1)
更新源地址:用于建立BGP邻居关系的地址,必须保证更新源地址可达,并且不能宣告进BGP(peer后面跟着的就是更新源地址)
BGP的五种报文:
BGP的报文格式:
通用头部:
Marker:全1,16B
length:2B,表示通用头部+数据部分的总长度
type:用来标识不同的BGP报文
Open报文:用来协商BGP参数,建立对等体信息(版本,AS号,hold time,RID),
TCP连接建立完成后,发送Open报文用来确认BGP邻居关系能否建立
格式:
version:版本,现在BGP版本为4,向下兼容
My AS:本地的AS号(发送者的AS号)
hold time:保持时间,用来协商后续BGP邻居关系保持的时间,可以不一致,协商后选择时间小的一方,默认180s
BGP ID:本地路由器的RID
Opt Parm Len:用来可选参数的长度
Optional parameters:填充,可选参数的能力值(多协议的支持,支持路由刷新,支持4字节的AS号)
Update报文:用来更新(增加或删除)及交换路由信息,包含可达性信息的路由属性,还包含不可达的路由信息(即被撤销的路由信息)
格式:
Unfeasible routes length:标明不可达信息的长度
Withdrawn routes:不可达的路由前缀的列表
Total path attribute length:标明Path attributes和NLRI两部分的长度
Path attributes:携带的路由属性
NLRI:包含网络的可达性路由信息
Keepalive报文:用于保活机制,用来标志对等体建立,周期维护BGP对等体,周期发送,发送时间间隔为60s,保持时间默认为180s
Notification报文:用于通告邻居路由器错误信息,通知对方解除邻居关系,报告错误信息,终止对等体关系
格式:
error code:错误代码
1、消息头错误
2、open消息错误
3、update消息错误
4、保持时间超时
5、状态机错误
6、终止
error stubcode:错误子代码
Route-refresh报文:用于请求对等体重新发送一份完整的路由信息,或将自己的路由信息发送给对方
格式:只有支持路由刷新能力的BGP设备会发送和响应该报文
AFI:地址族标识(ipv4)
re:保留
SAFI:子地址族标识(unicast)
信息的应用:
1、TCP连接建立完成后,发送open报文,用来确认BGP邻居关系能否建立
2、连接关系建立后,如果有路由信息需要更新或删除,则发送update报文
3、BGP稳定后,周期性的发送Keepalive报文,用于维护BGP对等体关系
4、当本地BGP运行时发现错误,则发送notification报文通知对等体解除邻居关系
5、route-refresh用于请求对等体重新发送路由信息
BGP的六种状态机:
                  Idle:BGP的初始状态,该状态下不会回应任何设备的TCP连接请求,被start事件触发时,
尝试发起TCP连接,进入到connect状态
                  Connect:开始建立TCP连接,同时启动重新连接定时器,
如果建立成功,发送open报文进入opensent状态,同时清除计时器;
如果建立失败,则进入active状态;(发起TCP连接的源地址默认为出接口IP)
如果一直没有得到响应,不断尝试连接,直到重新连接定时器超时,尝
试与其他的设备建立TCP连接,保持在connect状态,重置定时器
                  Active:TCP建立失败,该状态下一直在尝试建立TCP连接,重新连接定时器超时(32s)
                                   后,若仍建立不成功,则回退到connect状态,如果TCP建立成功,发送
                                   Open报文,清除定时器
                  Opensent:TCP建立成功后,发送open报文协商参数,进入此状态,等待接收到正确的open报文
若收到正确的open报文(协商成功),则发送Keepalive报文,进入Openconfirm状态
若收到错误的open报文(协商失败),则发送notification报文,状态回退到idle状态
                  Openconfirm:收到open报文,协商成功,发送keepalive报文,进入此状态,等待接收正确的Keepalive报文
若收到正确的Keepalive报文(协商成功),则进入Established状态
若收到错误的Keepalive报文(协商失败),则发送notification报文,状态回退到idle状态
                  Established:收到keepalive报文邻居关系建立完成
                  PS:在这中间任何一个环节出现错误,发送notification报文,一旦收到notification报文,状态立即回退到idle状态
①利用环回接口建立IBGP对等体时,需要指定TCP发起连接的源地址
②利用环回接口建立EBGP对等体时,不仅需要指定TCP发起连接的源地址,还需要修改EBGP的最大跳数
BGP中,向IBGP传递路由时,下一跳默认不改变
路由产生时,默认下一跳为connect地址
BGP路由的生成方式:
BGP自身不会发现并计算产生路由,BGP将IGP路由表中的路由注入到BGP路由表中,并通过Update报文传递给BGP对等体
Network:在协议视图下配置,只能将本地IP路由表中已经存在的路由通告到BGP路由表中,掩码需要精确匹配
在BGP路由表中,通过network进入BGP路由表的路由,用“i”标识
Import:在协议视图下配置,根据不同的路由协议(直连,静态,ospf,ISIS,RIP),将路由通告到BGP中
在BGP路由表中,通过import进入BGP路由表的路由,用“?”标识
在BGP配置视图中使用aggregate命令,可以实现BGP的手工聚合
BGP的四条通告原则:
1、仅将本地最优路由发布给BGP邻居(*:表示有效 >:表示最优)
2、从EBGP学来的路由发布给所有的BGP邻居
3、从IBGP学来的路由不发布给IBGP邻居(相当于水平分割机制,实现了AS内的防环)
4、BGP与IGP同步(思科默认关闭,可以开启,华为默认关闭,且不可开启)(同步规则)
如果BGP与IGP同步检测机制开启:
当收到一条IBGP发布过来的路由时:
如果该路由也从IGP学习到,才会将此路由发布给邻居
如果该路由没有从IGP学习到,则不将该路由发布给邻居
如果BGP与IGP同步检测机制关闭:
当收到一条IBGP发布过来的路由时,将该路由发布给EBGP邻居,不会发布给IBGP邻居
如何解决路由黑洞:
全互联:AS内所有BGP路由器建立IBGP邻居关系
物理拓扑上实现直连
RR反射器
建一条下一跳为此BGP路由器的隧道
MPLS
BGP引入外部路由的优先级为255
|
|