目录
一、基础知识
1.1.BGP概念
- 自治系统(Autonomous System ,AS)指在同一个组织管理下、使用相同策略的设备集合。
- 不同AS通过AS号区分,AS取号范围1-65535,其中64512-65535是私有AS号。IANA负责AS号的分发。
- 中国电信163 AS号:4134
- 中国移动CN2 AS号:4809
- 中国网通AS号:9929
1.2.BGP概述
- BGP边界网关协议-Border Gateway Protocol ,BGP 是一种实现自治系统AS之间的路由可达,并选择最佳路由的矢量性协议。
1.3.BGP特点
- 承载大批量的路由信息,能够支撑大规模网络。
- 提供丰富的路由策略,能够灵活的进行路由选路,并指导邻居按策略发布路由。
- 能支撑MPLS/VPN的应用,传递客户VPN路由
- 提供了路由聚合和路由衰减功能用于防止路由震荡,有效提高了网络的稳定性。
- 使用TCP作为其传输层协议(端口号179),并支持BGP与BFD联动,BGP Tracking,BGP Auto FRR和BGP GR 和NSR,提高网络的可靠性。
1.4.BGP的路径矢量特征
- BGP通常被称为路径矢量路由协议
- 每条BGP路由都携带着多种路径属性,在各种路径属性中,AS_Path属性是非常关键的一个。
- BGP路由器不接受AS_Path中包含其自身AS号的更新。AS_Path 属性值的长短(AS号个数)会作为一个比较的依据,影响BGP路由选择的决策。
1.5 BGP协议特征
- BGP:运行BGP协议的路由器作为BGP Speaker
- 两个建立BGP建立对等体(Peer)
- BGP路由器只发送增量的BGP路由更新,或进行触发更新(不会周期性更新)
- BGP具有丰富的路径属性和强大的路由策略工具。
- BGP能够承载大批量的路由前缀,用于大规模的网络中。
1.6 BGP报文类型
报文名称 | 作用是什么 | 时候发包 |
open | 协商BGP邻居的各项参数,建立邻居关系。 | BGP对等体之间需要先建立TCP连接,如果TCP连接成功,那么BGP向对等体发送Open报文。 |
Update | 用于发送BGP路由信息 | 连接建立后,有路由需要发送或路由变化时,发送UPDATE通告对端路由信息。 |
Notification | 报告错误,中止对等体关系 | 当BGP在运行中发现错误时,要发送NOTIFICATION 报文通告BGP对端。 |
keepalive | 维持BGP对等体关系 | 定时发送Keepalive报文以保持BGP对等关系的有效性。 |
Route-refresh | 用于在改变路由策略后请求对等体重新发送路由信息。只有支持路由刷新能力的BGP设备会发送和响应此报文。 | 当路由策略发生变化时,触发请求对等体重新通告路由。 |
维持最长时间180s, 每60秒发送一次, 第一次刚建立对等体时发送作为确认。Nottification 及时性发送。
1.7BGP的状态机
Peer状态名称 | 发什么包 | 在做什么 |
Idle | 尝试建立TCP连接 | 开始准备TCP的连接并监视运程peer启动TCP连接,启用BGP时,要准备足够的资源 |
Connect | 发TCP包 | 正在进行TCP连接,等待完成中,认证都在TCP建立期间完成的,如果TCP连接建立失败则进入Active状态,反复尝试连接。 |
Active | 发TCP包 | TCP连接没建立成功,反复尝试TCP连接。 |
OpenSent | 发Open包 | TCP连接建立已经完成,开始发送Open包,Open包携带参数协商对等体的建立。 |
OpenConfirm | 发Keepalive包 | 参数,能力特性协议商成功,自己发送Keepalive包,等待对方的Keepalive包。 |
Established | 发Upate包 | 已经收到对方Keepalive包,双方能力特性经协商发现一致,开始使用Update通告路路由信息。 |
1.8.BGP Peer
- BGP对等体也叫BGP邻居,与OSPF,RIP等协议不同,BGP的会话是基于TCP建立,建立BGP对等体关系的两台路由器并不要求必须直连。
- BGP存在两种对等体关系类型:EBGP及IBGP。针对这两种对等体类型,BGP处理路由的操作存在较大差异。
- EBGP:位于不同自治系统的BGP路由器之间的BGP邻接关系。
- 两台路由器之间要建立EBGP对等体关系,必须满足两个条件:
两个路由器所属AS不同(也即AS不同)。
在配置BGP时,Peer命令所指定的对等体IP地址要求路由可达,并且TCP连接能够正确建立。
- IBGP:位于相同自治系统的BGP路由器之间的BGP邻接关系。
- 两台路由器之间要建立IBGP对等体关系,必须满足两个条件:
两个路由器所属AS不同(也即AS相同)。
在配置BGP时,Peer命令所指定的对等体IP地址要求路由可达,并且TCP连接能够正确建立。
1.9特性
- 两个表
邻居表:bgp peer
路由表:bgp rout
特性;不能自己发现邻居,不能自己发现路由。
1.10 IBGP水平分割
- BGP路由在AS 之间的防环依赖于AS_path路径属性,当路由器收到BGP路由后,发现该路由携带的AS_Path属于中出现了其自己所处的AS号,则路由器认为出现了路由环路,它将忽略。
- 为了防止BGP路由在AS内部传递时环路,BGP要求“路由器不能将自己从IBGP对等体学习到的路由再传给其他IBGP对等体。
1.11BGP通知规则
- 当存在多条路经时,路由器只选取最优(Best)的BGP路由来使用(没有激活负载均衡的情况下)。
- BGP只把自己使用路由,也就是自己认为最优的路由传递给对等体。
- 路由器从EBGP对等体获得的路由会传递给它所有的BGP对等体(包括EBGP和IBGP对等体)。
- 路由器从IBGP对等体获得的路由不会传递给它的IBGP对等(存在反射器RR情况除外)。
- 路由器从IBGP对等体获得的路由是否通告它的EBGP对等体要视IGP和BGP同步的情况来决定。
1.12 BGP引入IGP路由
- 需注意的是:BGP本身不发现路由,因此需要将其他路由引入到BGP路由表。
- BGP引入路由时支持Import和network两者方式。
- import方式按协议类型,将RIP、OSPF、ISIS等协议的路由引入到BGP路由表,Import方式还可以引入静态路由和直连路由。
- network方式是逐条将IP路由表中已经存在的路由引入到BGP路由表中。
- BGP在引入IGP的路由时,可以使用路由策略进行路由过滤和路由属性设置。
二、实验
2.1拓扑图
2.2 配置
R2
R1
R3
R4
总结:设置EBGP的loopBcak 方式的时候,需要进行在rip中将loopback的Ip段注入,同时设置多跳,因为此模式,跳数默认为1,会导致request返回不了。