该笔记主要作用与 BGP 路由协议的基础和概述讲解,其萌芽作用
参考视频:红茶三杯
关键词阐述:AS = 独立自治网络系统机构
前置知识
在我们学习 BGP 路由之前所学习的所有动态路由策略,都同属一个路由类中:IGP
BGP 路由协议应用环境:
在一般的小型园区网,或者中小型公司中是用不到 BGP 路由协议的,一般采用 IGP 协议,比如 OSPF,RIP,EIGRP 等,BGP 使用在大规模网络环境部署中,通常部署在运营商中,政府网络中等
如果在大规模网络跑 IGP 协议,可能就把 IGP 协议跑死了,因为路由条目会变的非常多
我们可以把 部署了 BGP 路由协议的设备比作一个 AS,不同 AS 之间 跨省交换路由信息,跨城通信,BGP 协议不着重于内部通信,主要着重于不同域点的 AS 通信,域内主要由 IGP 路由来完成
本章笔记所分知识点如下:
- BGP 概述
0x01 BGP 概述
我们先来回头看望以下 IGP 协议
IGP 具有以下某些特性或全部特性
- 执行拓扑发现
- 尽力完成快速收敛
- 需要周期性的跟新来确保路由选择信息的精确性
- 受同一个管理机构的控制
- 采用了共同的路由选择策略
- 提供了优先的策略控制能力
以下为 BGP 路由部署环境的艺术图:
我们需要注意,如果在 BGP 路由边界 AS 路由器重发布到 IGB 路由中,一定要做路由策略,减少路由条目,因为 BGP 的路由条目一定是十分庞大惊人的。
关于 BPG
- AS:autonomous system 自治系统,指的是一在同一个组织管理下使用相同策略的设备的集合
- 不同 AS 通过 AS 号区分,AS 号取值范围 1 - 65535 ,曲中 64512 - 65535 为私有 AS 号,IANA 负责1 AS 号的分发
- 中国电信 163 AS号:4134
- 中国电信CN2 AS号:4809
- 中国网通 AS 号:9929
- 所以,BGP 路由之间,也存在一点 IPv4 地址的缩影
BGP 🔺
- BGP 为 Border Gateway Protocol 边界网关路由协议 ( 路径矢量 )
- 主要作用是在 AS 之间传递路由信息
- 目前 BGP 由 4 个版本:V1,V2,V4,V4+(即 MGBP)
使用 BGP 的三大理由
- 大量路由需要承载,IGP 只能容纳千条,而 BGP 可以容纳上万
- 支撑 MPLS / VPN 的应用,传递客户 VPN 路由
- 策略能力强,可以很好的实现路由决策与数据控制
BGP 路由协议中的路径属性拥有许多,在 IGP 中来来去去都是 metric 值,而在 BGP 中则不是,BGP 路由策略与数据控制非常的强大,可以很好的控制流量路径
BGP AS 之间连接关键词 🔺
- Single homed 单宿:只连接到一家 ISP 且没有冗余链路
- Dual homed 双宿:只连接到一家 ISP,使用两条链路来提供冗余
- Multihomed 多宿:连接到多家 ISP
- Dual Multihomed 双多宿:连接到多家 ISP,同时使用两条链路实现冗余
0x02 BGP 的路径矢量特征 (AS-PATH) 🔺
其中 AS-PATH,主要用于:传递路径矢量信息,防止环路
1:其实到这里,我们抛开 BGP 其他路径属性不谈,BGP 协议与 RIP 协议十分的相似,只不过 RIP 使用的是跳数来衡量路径,而 BGP 则是使用 AS 号来衡量路径
2:这里为什么能防止环路呢,观察上图,我们发现每个 AS 自治系统边界路由器中,只要有传递 BGP 路由信息,就会带入一个自己的 AS 号,通过 AS 号,AS 们知道该将路由信息传递给谁,同时,只要在传递过程中到自己的时候,发现里面有自己的 AS 号,那么就直接丢弃,从而防止环路
- 路径矢量信息中包含一个 BGP 自治系统号列表
- BGP 路由器不接收路径列表中包含其 AS 号的路由跟新,BGP 是天生规避环路的
- BGP 支持对 BGP 自治系统路径应用路由策略
- BGP 路由器只能将其使用的路由通告给邻接自治系统中的对等体,简单说就是 Peer 邻居
0x03 BGP 特征 🔺
BGP 允许 AS 之间不直连建立 Peer
在 IGP 协议中,比如 OSPF,我们只要开启本地 OSPF 进程,network 宣告直连,该 OSPF 路由器就会自己去组播 224.0.0.6 发现 Peer 对等体,而 BGP 则不会,需要我们手工去指定,源和目的,才能建立 Peer 对等体关系
- BGP 使用 TCP 为传输层协议,TCP 端口号为 179
- BGP 路由器之间建立 TCP 连接,这些路由器成为 BGP 对等体 Peer,也叫 BGP 邻居:EBGP、IBGP
- 对等体之间交换整个 BGP 路由表
- BGP 路由器只发送增量更新或触发更新 (不会周期性更新)
- 具有丰富的路径属性
- BGP 通告成千上万的路由,可采用 TCP 滑动窗口的机制 ???什么东东,停止并等待确认前,可以发送 65578 个字节
0x04 BGP packets 🔺🔺🔺
其中一些常识需要去记住,TCP 179 传输,IP 协议号为 6
BGP 报文信息参考图如下
BGP 报文作用如下
0x05 BGP 的有限状态机 🔺
所谓状态机,即为机器的状态,在建立邻居关系之前,要去发现跟自己一样的人,否则一个人不得闷死?
参考图如下:
其主要发现邻居的 Peer 状态改变
发送过程如下:参考即可
0x06 BGP Peer BGP 邻居关系讲述
1:EBGP 特点:处于直连中的 BGP 路由邻居关系 TTL 值为 1
2:IBGP 特点:不一定直连,通过 IGP 协议在不同 AS 之间传输 BGP 路由信息
详述如下:
1:EBGP
- EBGP:BGP 位于不同自治系统的路由器之间,称为 EBGP
- 建立 EBGP 邻接关系,必须满足如下三个条件
- EBGP 之间的自治系统号不同
- 定义邻居建立 TCP 会话
- neighbor 中指定的 IP 地址要可达
参考如下:
我们可以很简单的观察到,EBGP 之间是不同自治 AS 区域的邻居关系
2:IBGP
- IBGP:位于同一个自治系统的路由器之间运行,用于同一个 AS 中交换 BGP 信息
- 建立 IBGP 邻接关系,必须满足的条件如下
- 自治系统号相同
- 定义邻居建立 TCP 会话
参考图如下:
而 IBGP 则是同一区域之间的 两个 AS BGP 工作路由器,才能建立 IBGP 邻居关系,其之间通过内部 IGP 协议来传输和 update