BGP协议学习笔记——BGP基础
一、BGP简介
BGP定义
边界网关协议BGP(Border Gateway Protocol)是一种实现自治系统AS(Autonomous System)之间的路由可达,并选择优选路由的距离矢量路由协议。
BGP目的
为方便管理规模不断扩大的网络,网络被分成了不同的自治系统。BGP协议被用于实现在AS之间动态交换路由信息、进行路由优选、避免路由环路、更高效率地传递路由和维护大量的路由信息。
(小型网络一般使用VPN、GRE技术实现两个不同地区之间同一公司的网络互连)
BGP优点
BGP从多方面保证了网络的安全性、灵活性、稳定性、可靠性和高效性:
- BGP采用认证和GTSM(通用TTL安全保护机制,Generalized TTL Security Mechanism)的方式,保证了网络的安全性。
- BGP提供了丰富的路由策略,能够灵活地进行路由选路,并且能指导邻居按策略发布路由。
- BGP提供了路由聚合和路由衰减功能用于防止路由振荡,有效提高了网络的稳定性。
- BGP使用TCP作为其传输层协议(端口号为179),并支持BGP与BFD联动、BGP Tracking和BGP GR和NSR,提高了网络的可靠性。
- 在邻居数目多、路由量大且大部分邻居具有相同出口策略的场景下,BGP使用按组打包技术极大地提高了BGP打包发包性能。
在这里想提一下路由策略和策略路由的区别:
其共同目的都是知道报文从一个地方转移到一个地方
区别在于一个进路由表,一个不进路由表
路由策略:通过工具对路由或路由内部信息进行修改,次改后对各参数进行比较,选择最优的路径来达到控制路由的选路路径。
策略路由:不修改路由,直接以命令方式告诉路由往哪走,往哪拐就行了,不用在我这着停留,不欢迎你,只承担告知指导作用。
BGP的特征
[r5-bgp]aggregate 100.100.0.0 22 此时聚合与所有明细条目均传递
[r5-bgp]aggregate 100.100.0.0 22 detail-suppressed 仅传递聚合条目,所有明细路由被抑制
若需要在传递聚合条目的同时,再传递部分的明细路由;需要进行路径传递干涉策略;
[r5]ip ip-prefix a permit 100.100.1.0 24
[r5]route-policy a permit node 10
[r5-route-policy]if-match ip-prefix a
[r5-route-policy]q
[r5]bgp 3
[r5-bgp]aggregate 100.100.0.0 22 suppress-policy a
被抑制调用时,表中允许的流量最终反而被抑制传输
[r5]ip ip-prefix b permit 100.100.1.0 24
[r5]route-policy b deny node 10
[r5-route-policy]if-match ip-prefix b
[r5-route-policy]q
[r5]route-policy b permit node 20
[r5-route-policy]q
[r5]bgp 3
[r5-bgp]peer 4.4.4.4 route-policy b ?
export Specify export policy 控制层面的出项
import Specify import policy 控制层面的入向
[r5-bgp]peer 4.4.4.4 route-policy b export
[r5]ip ip-prefix c deny 100.100.1.0 24
[r5]ip ip-prefix c permit 0.0.0.0 0 le 32
[r5]bgp 3
[r5-bgp]filter-policy ip-prefix c export(控制层面方向)
[r5]ip ip-prefix d deny 100.100.1.0 24
[r5]ip ip-prefix d permit 0.0.0.0 0 le 32
[r5]bgp 3
[r5-bgp]peer 4.4.4.4 ip-prefix d export
在一个AS中一台设备运行了BGP协议,那么正常应该都连接了其他的AS,存在EBGP邻居关系;又由于IBGP的水平分割规则,导致从外部学习到的路由传递给本地AS时,需要和本AS中所有运行BGP协议的设备逐一建立IBGP邻居关系;----两两间均为IBGP邻居关系,建立数量成指数上升;
所谓有条件的打破,是指在保障无环的前提下消除IBGP水平分割机制;--AS-BY-AY
【1】路由反射器 角色:RR反射器 客户端 非客户端
无论客户端还是非客户端都必须是RR的IBGP邻居; 由RR作为中心点与多个客户端、非客户端构成一个簇(组);在一个簇内存在一台RR和至少一台客户端;也可以一台RR和多个客户端、多个非客户端;或者一个RR与多个客户端,没有非客户端;
反射规则:不优路由不能被传递,自然也不能被反射;
[r3-bgp]peer 2.2.2.2 reflect-client 邻居2.2.2.2成为本地的客户端,同时本地成为RR
【2】联邦-将一个AS,逻辑的分为多个小AS;对外依然遵循大AS号传递规则;
但小AS间为联邦内的EBGP邻居关系,可以像EBGP关系一样传递路由,但默认不对属性进行修改;
[r3]bgp 64512
[r3-bgp]router-id 3.3.3.3
[r3-bgp]confederation id 2 申明本地的大AS号
[r3-bgp]confederation peer-as 64513 告知本地直连的其他小AS号,若没有直连到其他小
AS不用配置
[r3-bgp]peer 2.2.2.2 as-number 64512
[r3-bgp]peer 2.2.2.2 connect-interface LoopBack 0
[r3-bgp]peer 4.4.4.4 as-number 64513
[r3-bgp]peer 4.4.4.4 connect-interface LoopBack 0
[r3-bgp]peer 4.4.4.4 ebgp-max-hop
- BGP使用TCP为传输层协议,TCP端口号179。路由器之间的BGP会话基于TCP连接而建立。
- 运行BGP的路由器被称为BGP发言者(BGP Speaker),或BGP路由器。
- 两个建立BGP会话的路由器互为对等体(Peer),BGP对等体之间交换BGP路由表。
- BGP路由器只发送增量的BGP路由更新,或进行触发式更新(不会周期性更新)。
- BGP能够承载大批量的路由前缀,可在大规模网络中应用。
- BGP通常被称为路径矢量路由协议(Path-Vector Routing Protocol)。
- 每条BGP路由都携带多种路径属性(Path attribute),BGP可以通过这些路径属性控制路径选择,而不像IS-IS、OSPF只能通过Cost控制路径选择,因此在路径选择上,BGP具有丰富的可操作性,
- 标准的BGP聚合配置
- 先逐条宣告所有的明细路由
- 再在更新源路由上进行聚合配置,自动产生空接口防环路由
- 路由传递干涉策略
- 抑制列表 – 先让设备将所有路由传递出去,再调用抑制策略
- Route-map 在BGP中将route-map当分发列表用
- 分发列表
- 前缀列表 – BGP协议中可以直接将前缀列表作为分发列表调用
- 有条件的打破IBGP水平分割
- RR从一个EBGP邻居处学习到的路由,可以传输给客户端、非客户端,已经本地的其他EBGP邻居;
- RR从一个客户端学习到的路由,可以传递给本地其他的客户端、非客户端、其他的EBGP邻居;
- RR从一个非客户端学习到的路由,可以传递给本地的其他客户端、EBGP邻居;不能传递给其他的非客户端;
- 所有操作基于小AS号进行;
- AS内所有设备需要定义自己所在的大AS号
- 小AS间的BGP设备需要告知对端的小AS号
- 可以在不同场景下选择最合适的路径控制方式。