BGP基础部分
目录如下:
文章目录
- **BGP基础部分**
-
- BGP的前世今生(为什么会产生BGP?)
- BGP的概述
- 基本概念
- 基本知识点
- 企业到ISP
- BGP的接入
- BGP 报文结构
- BGP 有限状态札
- BGP 的邻居建立过程
- BGP 邻居无法建立的因素
- BGP 对等体之间交互原则
- BGP 工作原理
- BGP路由信怠决策过程
- BGP 选路规则(HUAWEI)
-
- BGP 选路的" 11 条规则"如下:
-
- ( 1)优选协议首选值( PrefVaD 数值最高的路由
- ( 2 ) 优选本地优先级( Local Pref) 数值最高的路由。
- (3 )本地起源优先顺序依次为:
- ( 4 ) 优选AS 路径( AS PATH ) 最短的路由。
- (5) 依次优选Origin 类型为IGP 、EGP 、incomplet巳的路由。
- ( 6 ) 优选MED (Multi Exit Discriminator) 值最低的路由。
- (7) 依次优选eBGP 路由、iBGP 路由。
- ( 8 ) 优选到BGP 下一跳IGP 度量值(Metric)最小的路由。
- ( 9) 优选Cluster List 最短的路由。
- (1 0) 优选Router ID 最小的设备发布的路由。
- (11 )优选从具有最小IP Address 的对等体学来的路由。
- 介绍一个实用技巧:
- IBGP的水平分割原则
- BGP的配置
- MP-BGP:多协议BGP
- BGP和IGP的比较
BGP的前世今生(为什么会产生BGP?)
首先路由的实质是描述一个网络结构的表达方式``,路由表其实是一个结果的集合
。在早期的ARPANet网络时代,网络规模有限,路由数量也不大,因此所有的路由器可以维护整个网络拓扑,那时候使用的路由协议叫GGP(Gateway-to-Gateway Protocol)。GGP自然成为第一个内部网关协议(IGP)。 在1980年左右。当时的网络管理者遇到了与今天类似的问题:网络规模扩大导致的路由数量不断增长。为了解决这种网络规模的增长问题,提出了自治系统的概念(AS),也可以叫做路由管理域。在AS内部使用一种路由协议,然后在AS之间使用另一种路由协议。这样做的好处显而易见,不同的网络可以自己选择IGP协议,然后再通过一个统一的AS间协议进行互连
就可以了。
在IGP的发展领域中,先是RIP成为IP路由的主流,之后出现了更高级的IGP协议包括OSP和ISIS,这些协议自动化程度更高、更智能更可靠。同一个AS的路由器间是有相互信任关系的,而且这些路由器往往由同样的管理人员维护,因此IGP的自动发现和路由计算信息泛洪处于完全开放的状态,人工干预的行为是比较少的。
不同AS互相连接的需求,推动产生了外部网关协议(EGP),EGP的主要目的是在不同的AS之间传递路由协议。而不同的AS之间往往是直接相连,大多数AS互联行为只涉及少量的边界路由器(ASBR),所以EGP的设计也非常简单。EGP的RFC827发布于1982年,看上去似乎早于RIP的第一个标准FRC1058,但其实在RFC1058之前,RIP已经被广泛的使用。在当时,RIP+EGP成为一种标准的路由组合。
EGP被设计的如此简单,以至于很快就不能满足网络管理的要求。EGP单纯的发布网络可达信息,不做任何优选,也没有考虑环路避免。有人甚至认为EGP算不上是一个路由协议,EGP的众多缺陷,最终导致被BGP所取代。BGP的第一个FRC1105是1989年发布的,和EGP相比,BGP更像是一个路由协议,具有很多路由协议的特征,比如解决环路问题、收敛问题、触发更新等等。
就像是不同的企业有各自的企业文化和标准,但是企业间的交往却要遵循统一的行为规范和标准一样。对于AS间的路由交互,也必须有一个统一的标准。BGP相比EGP的众多优势,使BGP成为唯一的外部网关协议,并广泛的使用在互连网上。
综上所述,BGP是为了替代EGP而出现的一个外部网关协议,它必须能够进行路由优选、路由环路的避免、能够更高效率的传递路由和维护大量的路由。因为BGP部署在不具有完全信任关系的AS之间,因此需要BGP有丰富的路由控制能力,并且可以通过一些简单统一的方法对BGP进行扩展。
-
现实原因:大量路由需要被承载,而igp只能承载上千条;为什么IGP承载不了BGP级别的路由?
-
BGP有着非常强大的路由策略,从而可以更轻松、更灵活地实施路径选择;
-
其他具体的原因,比如说公司需求,支持MPLS-VPN…
BGP的概述
BGP(Border Gateway Protocol)即边界网关协议,是互联网上一个核心的去中心化自治路由协议。它通过维护IP路由表或‘前缀’表来实现自治系统(AS)之间的可达性,属于矢量路由协议。 BGP不使用传统的内部网关协议(IGP)的指标,而使用基于路径、网络策略或规则集来决定路由。因此,它更适合被称为矢量性协议,而不是路由协议。
BGP是为了取代外部网关协议(EGP)协议而创建的,允许运行一个完全分散的路由系统,从ARPANET模型的核心路由系统过渡到包括NSFNET骨干网及其相关区域网络的分散系统。这使得互联网成为一个真正的分权制度。自1994年以来,BGP已有四个版本在互联网上使用,所有以前的版本现在已经过时不可用。在第4版主要的增强功能是通过支持无类别域间路由和路由聚合来减少路由表的大小。第4版是在早期的RFC 1771第4版的基础上编纂,通过20多个草案修改,最终在2006年1月通过形成RFC 4271。RFC 4271版本纠正了一些错误,澄清模糊之处,带来了更接近工业级应用标准的RFC行业惯例。
大多数互联网服务提供商(ISP)必须使用BGP来与其他ISP建立路由连接(尤其是当它们采取多宿主连接时)。因此,即使大多数互联网用户不直接使用它,但是与7号信令系统(SS7)相比,即通过PSTN的跨供应商核心响应设置协议,BGP仍然是互联网最重要的协议之一。特大型的私有IP网络也可以使用BGP。例如当需要将若干个大型的开放最短路径优先(OSPF)网络进行合并,而开放最短路径优先协议本身又无法提供这种可扩展性时。使用BGP的另一个原因是其能为多宿主的单个ISP(RFC 1998)或多个ISP网络提供更好的冗余网络。
基本概念
-
peer = neighbor : BGP邻居
-
bgp speaker : 运行BGP的路由器
-
EBGP:不同AS的bgp邻居
-
IBGP:同一AS的bgp邻居
-
BGP邻居不一定是直连,路由可达即可
-
BGP通过TCP建邻居,点到点协议,所以BGP都是单播更新,BGP只有单播地址没有组播地址
-
自治系统的经典定义是,一组路由器在统一管理之下,在AS内使用内部网关协议和统一度量来路由数据包,而通过外部网关协议将数据包路由到其他AS。 该经典定义尚在发展,一些AS在其内部使用多种内部网关协议和度量。
在此,强调一下自治系统在本文档中的含义,即使它采用多种IGP和度量,它的管理区别 于其他 AS,其内部路由是一致的,当路由穿越它时,它在图上视作一个节点。每个AS由一个管理机构管理,至少在外部看来它代表着该系统的路由信息。
基本知识点
a)AS号:
私有(64512-65535),公有(0-64511)。
b)什么时候使用BGP:
有数据穿越本AS前往其他AS;本AS有多条到其他AS的连接;必须要做策略。
c)BGP路径矢量特征:
BGP自治系统路径是无环路的
。BGP路由器不接受路径列表中包含其自治系统号的路由更新。
d)
BGP基于TCP(Port179),TCP是单播,使用滑动窗口确认
无需逐个确认后发更新分组,比OSPF,EIGRP效率高(它们使用1-to-1窗口)。
e)
自治系统可能使用多种IGP,并采用多种度量值。
f)
OSPF理论上支持1万条路由条目,ISIS理论上支持2万条。
g)
IGP以路由器为单位确定下一跳(hop by hop),BGP以AS为单位确定下一跳(AS by AS)。
h)
BGP的network宣告语句前缀必须完全和掩码一致,例如9.9.9.9/24不会接受,9.9.9.0/24会接受。
i)
EBGP学来的20,IBGP学来的200,BGP希望AS内部由IGP自己搞定,AS之间的由BGP搞定。
j)
EBGP邻居一般是直连,因为会查找直连路由。IBGP邻居无需直连,只要求TCP连通性
。
k)
AS内部,如果转发的是AS外部路由,都会先递归查找到达PE的路由,即实际上在AS内部,报文的转发路径目的PE设备来确定的,途径每一跳都这样,到了MPLS则直接打上标签了,中间黑洞路由器甚至无需知道该路由。
l)
BGP路由黑洞
trace的时候黑洞路由器应该是打号的,甚至PE也会呈现,因为PE设备其实无需知道路由,因此完全可能没有ping发起者的路由(E传E时会自动改下一跳,I传I时一般手工指定next-hop-self,所以理论上BGP只需要有下一跳的路由即可),如果收到了TTL=1/0的报文,因为没路由不知道怎么回包,所以就打**号了,*但后面其实又会有项目,并能ping通。另外,反过来,如果PE设备知道回包的路由,就会把EBGP之间的互联链路暴露出来,本来可能ping包发起者不知道该地址。这条可能理解有误,如果是黑洞路由器可能会根据标签转发至PE,PE再回包,会不会暴露P路由器地址呢?
j)
BGP 从多方面保证了网络的**安全性、灵活性、稳定性、可靠性和高效性
**。
- BGP 采用认证和GTSM 的方式,保证了网络的安全性。
- BGP 提供了丰富的路由策略, 能够灵活地进行路由选路, 并且能指导邻居按策略发
布路由。 - BGP 提供了路由聚合和路由衰减功能, 用于防止路由振荡, 有效提高了网络的稳定性。
- BGP 使用TCP 作为其传输层协议(端口号为1 79 ) ,并支持BGP 与BFD 联动、BGP
Tracking 和BGPGR , 提高了网络的可靠性。 - 在邻居数目多、路由量大且大部分邻居具有相同出口策略的场景下, BGP 使用按组
打包技术极大地提高了BGP 打包发包性能。