一、基本概念
AS:自治系统
BGP 主要用于AS之间路由传递的.
AS号码范围:1-65535 私有AS号码范围:64512-65535
BGP与IGP的区别:a、IGP比较灵活,如ospf可以根据接口来设置不同的进程,但一个路由只能属于一个AS只能配置一个BGP,IGP选择AS内最佳路由,BGP选择AS间最佳路由。详细区别可以参考百科https://wenku.baidu.com/view/7ac228da33d4b14e85246856.html
以下场合适合使用BGP
- 多个IGP(或一个区域较大的IGP)域构造的一个大型网络,通过 BGP互联这些域.
- 需要复杂的路由策略进行控制域之间的路由传递.
- ISP之间互联时,需要在不同的AS之间传递庞大的路由. - 当域内同时运行了多种IGP时,多种IGP的相互重分发的难度远大 于配置BGP
BGP状态
建立BGP会话时,BGP拥有以下的状态:
1. Idle:查找路由表,该过程BGP对它的资源进行初始化,复位一个连接重试计 时器,发起一条TCP 连接,并开始倾听远程对等体所发起的连接.
2. Connect:找到路由表后进行TCP三次握手,TCP 连接成功,则转到 OpenSent状态,TCP连接失败,则转到active 状态,将尝试再次连接.
3. Open sent:三次握手成功后发送Open message消息,等待其对等体发送打 开消息,如果出错,则发送一条出错消息并退回空闲状态,如果无错,则开 始发送Keepalive 并复位keepalive 计时器.
4. Open confirm:收到对方发来的Open消息,如果收到keepalive 消息, BGP 就进入established状态,邻居关系协商完成;如果系统收到一条更新 或keepalive 消息,它将重新启动保持计时器;如果收到Notification消息, BGP 就退回到空闲状态. o另外,如果没有对Open消息的回应,则路由器进入active状态.
5. Established:会话建立,邻居关系协商过程最终状态;这时BGP将开始与它 的对等体交换路由更新数据包.
下图为BGP debug出来的相应建立关系状态
IBGP(内部BGP)
当BGP邻居是运行在同一个AS里面的,它们的BGP关系就叫做IBGP、IBGP无需是直连的网络邻居设备就可以通过TCP建立起IBGP邻接关系,当然中间建立的TCP关系,一般是IGP协议承载的,如OSPF、ISIS等。
neighbor命令用于激活BGP邻居关系,邻居IP地址是eBGP时为与邻居BGP路由器直连链路的接口IP地址,邻居IP地址是iBGP时为邻居BGP路由器的Loopback接口IP地址。
总结:
BGP 是一个路径矢量路由协议,即增强型的距离矢量路由协议:
1.可靠地更新信息:通过TCP 179端口发送.
2.BGP使用单播传递路由信息
3.路由信息第一次是整表发送,以后只进行增量触发更新
4.通过周期性发送keepalive消息(相当于Hello包)来维护BGP
5.对等体之间的TCP邻接关系(每60s发送一次,Holddown时间为180s)
BGP的三个表:
BGP邻居表(Neighbor table):存放邻居信息。
BGP转发表(Forwarding database):
1. 存放所有从邻居学到的网络信息
2. 可存放多条到达同一目的网络的路径
3. 每条路径都包含BGP属性
BGP路由表(IP routing table):存放到达目的网络的最佳路由
EBGP在ping的时候,下一跳没有宣告的话是无法Ping通的,所以要指定source来ping