BGP的基础知识
BGP(边界网关协议)
作用:用于自治系统(AS)之间的路由交换。
AS:是人为对路由器工作范围的划分方式。
主要实现:基于自治系统编号实现,不同服务范围对应不同自治系统编号(AS号)
特点:不主动通告路由
采用矢量算法计算路由,是存在环路的。
擅长大规模远距离路由传递,不擅长路由计算维护。
利用路由自身携带的属性信息进行环路解决,简单说就是控制路径。
利用的是单播建立邻居
存在两大邻居
背景:IGP协议(OSPF、ISIS、RIP)虽然能够计算维护同步路由,但只合适短距离小规模的场景,占用资源多,同步路由过程中,网络拓扑也会跟着同步,不安全。
场景:大型网络之间通信(学校校园网、省干/国干网)
基本概述:
版本:BGPv4——IPv4网络
BGP4+——IPv6网络
报文基于TCP协议封装,端口号为179 单播通信
扩展性较好,报文采用TLV架构
工作过程:
1、发现建立邻居
2、同步路由
3、维护路由维护邻居
报文:
Open 发现建立邻居,但是不维护邻居
Keepalive 只用于维护邻居
Update 主要用于路由的同步
Route-refresh 主要用于路由条目的更新请求
Notification 主要用于邻居之间的错误状态通告
邻居关系:
IBGP:在AS建立的BGP邻居关系,主要实现两个不相邻的AS之间路由传递(AS之间不是直连) 建立邻居使用相同AS号
EBGP:在AS间建立的BGP邻居关系,主要实现相邻两个AS之间路由的传递(AS之间是直连) 建立邻居使用不同AS号
注意:一台路由器通常只支持一个BGP进程,邻居需要手动指定。
状态机:描述BGP邻居建立的过程
Idle 设备启动BGP功能后,准备建立TCP会话
Connect TCP会话的建立请求已经发送,但还未建立完成 在Idle下发送了TCP请求进入该状态
OpenSent TCP会话已经建立完成,并发送了Open报文 在Connect下,TCP建立完成进入该状态。
OpenConfirm 收到邻居的Open报文,在OpenSent下发送Open报文进入该状态
Established 收到邻居的Keepalive报文 在OpenConfirm下收到Keepalive报文进入该状态
Active 如果在Connect下TCP没有建立成功进入该状态下会不断尝试重新建立TCP会话
TCP建立失败的判断条件
BGP路由:需要手动通告路由
BGP路由产生方式:1、利用network通告
2、利用import引入
路由通告原则:只通告本设备有效最优的BGP路由给邻居
从IBGP邻居收到路由不会再通告给其他IBGP邻居
从IBGP邻居收到路由会通告给其他EBGP邻居
从EBGP邻居收到路由会通告给其他EBGP邻居与IBGP邻居