第四章 BGP协议
bgp协议

bgp协议
BGP协议是一种广域网路由协议,全称为“边界网关协议”。
BGP协议主要用于自治系统与自治系统之间的路由选择。
自治系统指的是网络运营者,而自治系统之间则是指不同的网络运营者之间进行交换信息。
BGP协议包括两种模式:内部BGP(iBGP)和外部BGP (eBGP)。
当同一自治系统中的路由器之间交换信息时,使用的是iBGP模式;而当两个不同自治系统之间交换信息时,则
使用eBGP模式。
BGP协议最大的特点是“路径矢量算法”,即通过选择最短路径来实现路由选择。
它具有决策路由的能力,即可以根据路由策略来调整选择的路由。
这意味着BGP协议可以动态地调整路由流量,以便更好地满足网络运营商的需求。
BGP协议的路由选择策略主要包括以下几种:
1. 属性系数优先级:BGP协议根据不同的属性系数来计
算路由的优先级,路由优先级高的将优先被选中。
2. 跳数:BGP协议可以限制路由的最大跳数,这样可以
防止路由环路的发生。
3. AS号码:BGP协议可以根据AS号码来选择路由,优
先选择AS号码相同的路由。
4. 邻居关系:BGP协议可以根据邻居关系来选择路由,
将优先选择与自己邻接的路由。
总的来说,BGP协议是一种非常灵活和强大的路由协议,它可以让网络运营商动态地调整路由流量,以便更好地满足用
户需求。
但同时也需要注意,BGP协议的路由选择策略可能受到某些不良操作的影响,从而导致网络安全和稳定性问题。
因此,在使用BGP协议时,必须注意安全和稳定性方面的问题,以保障网络的正常运行。
bgp协议详解

bgp协议详解BGP协议详解。
BGP(Border Gateway Protocol)是一种用于在互联网中交换路由信息的协议。
它是一种路径矢量协议,具有高度的可扩展性和稳定性,被广泛应用于大型互联网服务提供商和企业网络中。
本文将对BGP协议进行详细解析,包括其工作原理、特点以及应用场景。
BGP协议的工作原理主要包括路由信息的交换和路由决策过程。
在BGP网络中,各个路由器通过BGP协议交换路由信息,每个路由器都维护着一张完整的路由表,其中包含了整个互联网的路由信息。
当某个路由器接收到新的路由信息时,会根据一定的路由决策规则,选择最优的路由,并更新本地路由表。
BGP协议使用的路由决策规则主要包括AS路径长度、前缀长度、路由器的出口策略等。
BGP协议具有以下几个特点,第一,BGP协议采用TCP连接来进行路由信息的交换,保证了路由信息的可靠传输。
第二,BGP协议支持CIDR(无分类域间路由),可以有效地减少路由表的大小,提高路由信息的传输效率。
第三,BGP协议具有很强的可扩展性,可以支持成千上万条路由信息的交换。
第四,BGP协议支持多种路由策略,可以根据实际需求进行灵活的路由控制。
BGP协议在互联网中具有广泛的应用场景。
首先,BGP协议被广泛应用于互联网服务提供商之间的路由交换,保证了整个互联网的连通性和稳定性。
其次,BGP协议也被广泛应用于企业网络中,可以实现企业内部网络与外部网络的连接,实现灵活的路由控制和流量管理。
此外,BGP协议还被应用于云计算、SDN(软件定义网络)等新兴网络技术中,为网络的可扩展性和灵活性提供了重要支持。
总之,BGP协议作为互联网中最重要的路由协议之一,具有高度的可靠性、可扩展性和灵活性,被广泛应用于互联网服务提供商和企业网络中。
通过深入理解BGP协议的工作原理和特点,可以更好地应用和管理BGP网络,为网络的稳定运行和高效管理提供重要支持。
bgp协议书

BGP协议书1. 引言本文档旨在介绍BGP(Border Gateway Protocol)协议的基本原理和功能,以及在网络通信中的应用。
BGP是一种用于计算机网络中的路由选择协议,广泛应用于互联网上的大型自治系统(AS)之间的路由选择。
2. BGP协议概述BGP是一种路径矢量协议,与其他自治系统之间交换网络可达信息(NLRI),并利用这些信息来选择最佳路由。
BGP协议基于TCP/IP协议栈,通过建立TCP连接来交换路由信息。
BGP的特点包括: - BGP是一种可靠性协议,通过确保路由信息的可达性来保证网络的连通性。
- BGP支持非对称路径,即可以有不同的入站和出站路径。
- BGP使用路径属性(Path Attributes)来描述网络可达性和评估最佳路由。
- BGP支持策略路由,运营商可以根据其特定需求来配置路由策略。
3. BGP协议的工作原理BGP协议的工作原理可以分为以下几个步骤:3.1. 邻居建立BGP协议通过建立TCP连接来建立邻居关系。
邻居关系是BGP协议的基础,它使得自治系统可以相互交换路由信息。
3.2. 路由信息交换邻居建立完成后,自治系统之间开始交换路由信息。
BGP协议使用Update消息来交换路由信息,该消息包含了网络前缀和路径属性。
3.3. 最佳路由选择自治系统收到路由信息后,使用BGP路径选择算法来评估和选择最佳路由。
BGP路径选择算法基于多个路径属性的值来决定最佳路径。
3.4. 路由更新当网络拓扑变化时,BGP协议会更新路由信息。
例如,当一条链路出现故障或新增了一条更优的路径时,BGP会发送路由更新消息通知邻居。
4. BGP协议的应用场景BGP协议在互联网基础架构中有着广泛的应用,主要体现在以下几个方面:4.1. 互联网核心路由器之间的路由选择在互联网中,大型自治系统(AS)之间通过BGP协议来交换路由信息,并选择最佳路径。
这些核心路由器负责转发数据包,保障全球网络的可达性和稳定性。
BGP协议

BGP协议为方便管理, 互连网被划分为不同的自治系统,BGP协议用来学习不同的自治系统间的路由信息。
Autonomous Systems:运行同一种选路策略,由统一管理者管理。
自治系统号由IANA (Internet地址授权委员会)分配, 组织使用BGP连接INTERNET 时,必须要申请公有AS号。
AS: 1—65535, 其中公有: 1—64511私有: 64512—65535当前, BGP协议广泛在INTERNET和大型行业及企业网中应用。
路由协议作用:动态学习互连网网的路由信息。
内部网关协议IGP, 如RIP /OSPF /EIGRP 在选择路径时, 依据:度量值RIP 跳数OSPF 开销=100M/带宽EIGRP带宽+延迟外部网关协议EGP, 当前使用的是BGP(边界网关协议, 它的前身是EGP), 在选择路径时, 采用的是BGP属性(或者可以称之为策略).使用BGP的原因:1.管理:电信联通2.支持更多的路由条目(OSPF最多1万条,ISIS最多2万条,而internet现在路由条目为13万多条)3.策略:非常丰富的属性(路由策略)对路由进行控制。
4.扩展:IPV4 IPV6 VPNV4(MBGP, 用于MPLS-VPN)BGP属性:一.AS路径属性.BGP是一种路径矢量型协议, 类似于RIP(距离矢量协议).。
默认情况下, BGP协议会选择一条从源到目的地的最短无环路径。
分析:从AS200访问160.1.0.0 /16, BGP协议默认会选择:160.1.0.0/16 300 600 i400 500 600 i类似于RIP的逐跳选择,以AS为跳数,选择最短的AS无环路径。
并且,在向邻居通告时,只通告自已采用的路由。
EBGP水平分割不接收路径列表中包含本身AS号的路由更新。
(防止环路)二.下一跳属性默认, 下一跳为邻接AS路由器的外部接口IP.如果下一跳不可达,则路由无效,解决办法:1. 通过IGP学习2. 修改下一跳属性R2(config-router) # neighbor 23.0.0.3 next-hop-selfneighbor 34.0.0.4 next-hop-self可避免AS间路径在IGP中通告三.源头属性信息来源:i 由BGP的Network命令通告的路由e 由EGP(早期的外部网关协议)学来的(现在已不用)? 通过重分发到BGP进程学到的.可信度i>e >?实验: 基本的BGP配置.要求: AS100 BGP + OSPF 重分发AS200 BGP + EIGRPAS300 BGP1、IGP的配置R1(config)# router ospf 1router-id 1.1.1.1net 15.0.0.1 0.0.0.0 area 1net 110.0.0.1 0.0.0.0 area 1R5(config)# router ospf 1router-id 5.5.5.5net 15.0.0.1 0.0.0.0 area 1net 100.0.0.1 0.0.0.0 area 1R2(config)# router eigrp 200network 23.0.0.0network 170.1.0.0no auto-summaryR3(config)# router eigrp 200network 23.0.0.0network 34.0.0.0no auto-summaryR4(config)#router eigrp 200network 34.0.0.0network 171.1.0.0auto-summary2、BGP的配置R1(config)# router bgp 100 启用BGP协议# bgp router-id 11.1.1.1# neighbors 12.0.0.2 remote-as200 指定邻居# redistribute ospf 1 向邻居通告路由R1(config)# router ospf 1# redistribute bgp 100 subnet 将BGP路由重分发到OSPF中R2(config)# router bgp 200# bgp router-id 2.2.2.2# neighbors 12.0.0.1 remote-as 100# neighbors 23.0.0.3 remote-as 200# neighbors 34.0.0.4 remote-as 200# network 170.1.0.0R3(config)# router bgp 200# bgp router-id 3.3.3.3# neighbors 23.0.0.2 remote-as 200# neighbors 34.0.0.4 remote-as 200R4(config)# router bgp 200# bgp router-id 4.4.4.4# neighbors 23.0.0.2 remote-as 200# neighbors 34.0.0.3 remote-as 200# neighbors 46.0.0.6 remote-as 300# network 171.1.0.0R6(config)# router bgp 300# bgp router-id 6.6.6.6# neighbors 46.0.0.4 remote-as 200# net 161.1.0.0# net 150.1.0.0# net 150.2.0.0# net 150.3.0.0# net 150.255.0.0查看:R1#sh ip bgp summary 查看BGP邻居的简略信息R# sh ip bgp // 查看BGP表(BGP数据库)R# sh ip routeNeighbor命令指定和谁建立邻居关系Network的作用向邻居通告哪些路由条目, 区别于IGP协议中的network.IGP 指定哪些接口参于协议运行(向邻居发送更新,并接收邻居的更新) BGP应将哪些路由告诉邻居说明: 1.BGP一种无类协议, 通告信息携带掩码, 可以通告主网/子网/超网(支持CIDR)2. 通告主网时, 可以不加掩码, 通告子网/超网时,必须加掩码.3. 通告网络时, 路由表中必须有相匹配的路由条目存在,当需要汇总到大的子网或超网时, 可以:R(config)# ip route 150.0.0.0 255.0.0.0 null 0 (空接口)BGP路由汇总方法一:network 通告汇总后的网络,再配置汇总的静态路由。
BGP协议

介绍BGP协议的背景和作用背景在现代互联网中,网络设备需要通过路由选择协议来确定数据包的最佳路径,以实现数据的可靠传输和有效路由。
边界网关协议(Border Gateway Protocol,简称BGP)是一种广泛应用于互联网的路由选择协议。
BGP协议最初由互联网工程任务组(Internet Engineering Task Force,简称IETF)开发,并于1989年首次发布。
它是一种自治系统(Autonomous System,简称AS)间的外部路由协议,主要用于互联网中不同自治系统之间的路由信息交换和路由选择。
作用BGP协议在互联网中发挥着重要的作用,具有以下几个方面的功能和作用:1.路由选择:BGP协议允许不同自治系统之间交换路由信息,通过选择最佳的路径来实现数据包的转发。
它考虑了多个因素,如网络拓扑、链路质量、自治系统策略等,以确保数据能够按照最优的路径传输。
2.自治系统间连接:BGP协议允许不同自治系统之间建立连接,形成一个互联网的网络结构。
这种自治系统间的连接使得互联网能够实现全球范围内的数据传输和通信。
3.路由策略控制:BGP协议允许网络管理员通过配置路由策略来控制数据包的路由选择。
这样,网络管理员可以根据自身的需求和策略,对数据包的路由进行精确的控制,以满足不同的业务需求。
4.网络可靠性:BGP协议具有高度的可靠性和鲁棒性。
它通过建立多个邻居关系和使用路由更新消息来实现网络的冗余和容错。
这样,即使网络中的某些链路或节点发生故障,BGP协议能够自动调整路由,确保数据的连通性和可靠传输。
总之,BGP协议在互联网中扮演着关键的角色,通过自治系统之间的路由选择和信息交换,实现了互联网的连通性、可靠性和可扩展性。
它是构建稳定、高效互联网的重要组成部分。
解释BGP协议的基本原理和工作方式BGP(Border Gateway Protocol)协议是一种用于自治系统(AS)之间的路由选择协议。
BGP路由协议

BGP路由协议BGP(Border Gateway Protocol)是一种用于在互联网中交换路由信息的协议。
它是一种路径矢量协议,用于在不同的自治系统之间交换路由信息。
BGP协议的特点是稳定可靠,适用于大型网络环境,能够实现灵活的路由控制和策略。
BGP协议的工作原理是基于TCP连接的,通过TCP连接来交换路由信息。
BGP协议使用AS(Autonomous System)来标识网络,每个AS都有一个唯一的AS号。
BGP路由协议通过在不同的AS之间交换路由信息,实现了全球范围内的路由选择和转发。
BGP路由协议的核心功能包括路由信息的交换、路由策略的控制、路由的选择和转发。
BGP协议通过路由更新消息来交换路由信息,路由更新消息包含了可达目的网络的信息以及AS路径。
BGP协议还支持路由策略的控制,可以通过策略来控制路由的选择和传播。
BGP协议使用路径属性来选择最佳的路由,路径属性包括AS路径、路由的来源和路由的优先级等信息。
BGP路由协议的优点是稳定可靠,适用于大型网络环境。
BGP协议可以实现灵活的路由控制和策略,可以根据网络的需求来配置路由策略,实现灵活的路由选择和转发。
BGP协议还支持多路径的路由选择,可以实现负载均衡和容错备份。
在实际应用中,BGP路由协议广泛应用于互联网的核心路由器和边界路由器中。
核心路由器通过BGP协议来交换全局路由信息,实现全局范围内的路由选择和转发。
边界路由器通过BGP协议来连接不同的自治系统,实现自治系统之间的路由交换和转发。
总的来说,BGP路由协议是一种稳定可靠、灵活高效的路由协议,适用于大型网络环境。
它通过TCP连接来交换路由信息,实现了全球范围内的路由选择和转发。
在互联网的核心路由器和边界路由器中广泛应用,发挥着重要的作用。
BGP协议
BGP网关协议BGP(border gateway protocols)边界网关路由协议,他的协议比isis和ospf相对简单,所以适合传输业务网段路由。
在传输路由之前必须先建立邻居关系,建立邻居是必须要手动指定。
建立邻居关系时路由器之间必须要互通。
BGP传输协议和数据时是通过TCP来进行传输的,其端口为179.BGP在传输数据时为了防环,从一个邻居接受的数据不会传给另外一个邻居。
这样要想建立邻居就必须要一个一个手动建立,当设备多时就显得复杂和零乱。
为了简化操作可以在上层设备做RR(route reflector)路由反射器,这样同一层设备之间就不需要再建立邻居关系而只需要和上层设备建立邻居关系即可。
路由通过上层设备转发给反射客户端,从而简化操作。
RR路由器发射路由时遵循以下规则:1.从非客户端接受的路由只可以转发给客户端和EBGP,不可以转发给其他客户端2.从客户端接受的路由可以转发给客户端、EBGP和其他客户端3.从EBGP接受的路由可以转发给客户端、EBGP和其他客户端当创建了RR反射器之后水平分割就被打破了,从而可能形成环路。
为了避免环路,可以将RR路由器的cluster id的值设为一样,这样下层设备就认为是一个路由器在向他发送数据。
而且在相同群集路由器中路由器之间会拒绝接受已经从邻居路由器中学习到的路由。
EBGP外部边界网关路由协议,他在传输数据时也必须先建立邻居关系。
由于边界路由器之间一开始并不互通,这是就需要先建立一个静态路由协议。
然后才可以建立邻居在建立邻居时默认都是和对端路由器的出口建立邻居关系的,然而为了路由器的稳定性通常要和回环地址建立邻居关系。
当该端口或线路出现故障时可以从其他链路进行建立邻居关系和传输数据。
这样我们就必须手工指定回环地址。
随之而来又出现了一个问题,默认情况下EBGP协议他的HOP值为1。
当手工指定回环地址后反而不会建立邻居关系,这时还需要重新设置一下HOP值将其改为2。
BGP协议原理及配置中文详解
BGP协议原理及配置中文详解BGP(Border Gateway Protocol)是一种用于在互联网中进行路由选择的协议。
它通过交换路由信息,使得不同的自治系统(AS)能够相互通信和寻找最优的路由。
本文将详细介绍BGP协议的原理,以及如何进行BGP的配置。
一、BGP协议原理1. BGP的基本概念BGP是一种路径矢量协议,使用AS路径作为路由选择的依据。
它与内部网关协议(IGP)如OSPF和EIGRP相比,具有更强大和灵活的路由选择功能。
2. BGP的路由选择原则BGP通过评估路径的属性来选择最佳的路径,其路由选择的原则包括:- AS路径长度:短的AS路径被认为是更优的路径。
- 接入点:具有多个接入点的AS被认为具有更好的可达性。
- 路径属性:权重、本地优先级、本地地址优先和原点等属性。
3. BGP的路由传播过程BGP路由传播过程包括以下步骤:- 邻居建立:通过建立BGP邻居关系,交换自己的路由信息。
- 路由更新:将本地的路由信息发送给邻居,并接收邻居的路由信息。
- 路由策略:基于策略进行路由选择和过滤,决定最佳路径。
- 路由保存:将最佳的路由信息保存在BGP路由表中,用于转发数据包。
4. BGP的自治系统边界路由器(ASBR)自治系统边界路由器是连接不同自治系统的路由器,其核心任务是将本地自治系统的路由信息传递给其他自治系统,并将其他自治系统的路由信息传递到本地自治系统。
ASBR是BGP协议的核心设备。
二、BGP的配置流程BGP的配置涉及到几个重要的步骤,包括配置BGP邻居关系、配置路由策略、配置BGP属性等。
1. 配置BGP邻居关系首先需要配置BGP路由器之间的邻居关系,包括远程路由器的IP 地址、AS号码等相关信息。
举例来说,假设我们要配置与邻居路由器A建立BGP邻居关系,需要在本地路由器上执行如下命令:```router bgp <本地AS号>neighbor <邻居路由器A的IP地址> remote-as <邻居路由器A的AS 号>```2. 配置路由策略在BGP配置过程中,我们可以根据需要配置策略,来控制路由的选择和传播。
BGP协议原理与配置
BGP协议原理与配置BGP(Border Gateway Protocol,边界网关协议)是一种用于互联网的路由协议,它在不同自治系统(AS)之间进行路由交换和传递。
BGP协议的原理和配置是网络工程师必须要了解和掌握的内容,本文将详细介绍BGP协议的原理以及如何配置BGP协议。
一、BGP协议原理1. 路由选择算法BGP协议通过路由选择算法确定最优的路由路径。
BGP使用路径矢量算法(Path Vector Algorithm),该算法基于路径长度和路径属性进行路由选择。
BGP路由选择的原则是首选最短AS-PATH(AS路径),然后根据预定义的路径属性来决定路径。
2. AS-PATH属性AS-PATH是BGP的一个重要属性,用来表示一个数据包从源主机到目标主机的经过的AS路径。
BGP协议根据AS-PATH属性来判断是否出现环路,并且选择路径时会优先选择AS-PATH最短的路径。
3. BGP会话和交互BGP协议使用TCP连接进行邻居之间的BGP会话。
在BGP会话中,邻居之间会交换路由信息和其他参数。
BGP会话通过“Open”、“Keepalive”和“Update”消息进行控制和交换。
4. BGP路由传递BGP协议通过从一个AS向另一个AS传递路由信息来实现全局路由的学习和传播。
BGP路由信息可以包括目标网络的地址和AS-PATH属性等信息。
BGP协议通过BGP邻居之间的交互来传递路由信息。
二、BGP协议配置要配置BGP协议,需要首先确定BGP邻居关系并配置路由策略。
1. 配置BGP邻居关系BGP邻居关系是指BGP路由器之间的互联。
要配置BGP邻居关系,需要设置每个BGP路由器的邻居IP地址和AS号码。
可以通过以下命令在BGP路由器上配置邻居关系:router bgp <本地AS号码>neighbor <邻居IP地址> remote-as <邻居AS号码>2. 配置路由策略路由策略是决定如何选择和传送路由的规则。
BGP 协议
介绍BGP协议的基本概念和作用BGP(Border Gateway Protocol),边界网关协议,是一种用于在不同自治系统(AS)之间交换路由信息的协议。
它是互联网中最重要的路由协议之一,被广泛应用于构建大规模网络和实现互联网的可达性。
概念BGP协议的基本概念包括以下几个要点:1.自治系统(AS):自治系统是指由一组具有相同路由策略和管理机构的网络组成的单个网络运营单位。
每个AS在互联网中被分配一个唯一的自治系统号(ASN)。
2.BGP对等体:BGP协议的运行是基于对等体之间的互相连接。
每个对等体可以是一个路由器或者一个自治系统。
3.路由信息:BGP协议通过交换路由信息来实现网络的可达性。
每个路由信息包括目的地网络的前缀和与之相关的属性,比如AS路径和路由器的优先级。
作用BGP协议在互联网中发挥着至关重要的作用,具有以下几个主要功能:1.路由选择:BGP协议使用一种灵活的路由选择算法,可以根据自定义的策略和条件选择最佳的路由路径。
这使得网络管理员可以根据自己的需求来控制流量和优化网络性能。
2.自治系统间通信:BGP协议使得不同自治系统之间能够交换路由信息,实现跨网络的互联互通。
这对于构建大规模的互联网架构和实现全球范围的互联是至关重要的。
3.故障恢复:BGP协议具有快速的故障检测和恢复能力。
当网络中某个路径发生故障或不可达时,BGP能够快速调整路由,选择备用路径,确保网络的连通性和可靠性。
4.策略控制:BGP协议允许网络管理员通过定义策略和过滤条件来控制路由的传播和接受。
这使得网络运营者可以灵活地管理流量,优化网络资源的利用率,并保护网络的安全和稳定。
总之,BGP协议在互联网中扮演着重要的角色,它的基本概念和作用对于理解和构建大规模网络架构具有重要意义,同时也对网络安全和性能优化起着关键的作用。
解释BGP协议的路由选择算法和策略BGP(Border Gateway Protocol)协议是一种高度灵活的路由协议,它采用了复杂的路由选择算法和策略,以确保在不同的自治系统(AS)之间选择最佳的路径。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第四章 BGP协议4.1 BGP 简介BGP(Border Gateway Protocol,边界网关协议)是一种用于AS(Autonomous System,自治系统)之间的动态路由协议。
AS 是拥有同一选路策略,在同一技术管理部门下运行的一组路由器。
早期发布的三个版本分别是BGP-1(RFC 1105)、BGP-2(RFC 1163)和BGP-3(RFC 1267),当前使用的版本是BGP-4(RFC 1771)。
BGP-4 做为事实上的Internet 外部路由协议标准,被广泛应用于ISP(Internet Service Provider,因特网服务提供商)之间。
BGP 特性描述如下:BGP 是一种外部网关协议(Exterior Gateway Protocol,EGP),与OSPF、RIP 等内部网关协议(Interior GatewayProtocol,IGP)不同,其着眼点不在于发现和计算路由,而在于控制路由的传播和选择最佳路由。
BGP 使用TCP 作为其传输层协议(端口号179),提高了协议的可靠性。
BGP 支持CIDR(Classless Inter-Domain Routing,无类别域间路由)。
路由更新时,BGP 只发送更新的路由,大大减少了BGP 传播路由所占用的带宽,适用于在Internet 上传播大量的路由信息。
BGP 路由通过携带AS 路径信息彻底解决路由环路问题。
BGP 提供了丰富的路由策略,能够对路由实现灵活的过滤和选择。
BGP 易于扩展,能够适应网络新的发展。
在Internet 上,BGP 需要通告的路由数目极大,由于TCP 提供了可靠的传送机制,同时TCP 使用滑动窗口机制,使得BGP 可以不断地发送分组,而无需像OSPF 或EIGRP 那样停止发送并等待确认。
发送BGP 消息的路由器称为BGP 发言者(BGP Speaker),它接收或产生新的路由信息,并发布(Advertise)给其它BGP 发言者。
当BGP发言者收到来自其它自治系统的新路由时,如果该路由比当前已知路由更优、或者当前还没有该路由,它就把这条路由发布给自治系统内所有其它BGP 发言者。
相互交换消息的BGP 发言者之间互称对等体(Peer),若干相关的对等体可以构成对等体组(Peer group)。
BGP 在路由器上以下列两种方式运行:IBGP(Internal BGP):当BGP 运行于同一自治系统内部时,被称为IBGP;EBGP(External BGP):当BGP 运行于不同自治系统之间时,称为EBGP。
4.2 BGP 的消息类型4.2.1 消息头格式BGP有5 种消息类型:Open、Update、Notification、Keepalive和Route-refresh。
这些消息有相同的报文头,其格式如图所示。
BGP 消息的报文头格式主要字段的解释如下:Marker:16 字节,用于BGP 验证的计算,不使用验证时所有比特均为“1”。
Length:2 字节,BGP 消息总长度(包括报文头在内),以字节为单位。
Type:1 字节,BGP 消息的类型。
其取值从1 到5,分别表示Open、Update、Notification、Keepalive 和Route-refresh 消息。
其中,前四种消息是在RFC1771 中定义,而Type 为5 的消息则是在RFC 2918 中定义的。
4.2.2 Open消息Open消息是TCP连接建立后发送的第一个消息,用于建立BGP对等体之间的连接关系。
两个邻居都要发送一个Open 消息,每个邻居都用该消息来标示自己,并规定自己的BGP 运行参数。
BGP Open 消息包含的内容包括:1)BGP version它明确了发起者正在运行的BGP 版本号(2,3,4),可以通过neighbor version 修改,缺省版本号为4。
如果版本号不相同,路由器将自动降低版本号重发Open 消息,直到版本一致。
2)AS number发起会话路由器的AS 号,用于确认EBGP 或者IBGP 会话。
3)Hold time路由器必须收到一个keepalive 或者更新消息之前允许经过的最大秒数。
Holdtime 必须是0(在这种情况下,必须是没有发送Keepalive)或者至少3s。
Cisco 默认的holdtime 为180s,如果两个邻居间holdtime 不一致,选较短的那个做为两者可接受的时间。
4)BGP router-ID选取方式和OSPF 相同,使用数值最大的loopback 口地址,没有loopback 则使用物理接口上数值最大的地址。
5)Optional parameters用于一些可选功能的支持,例如鉴别,多协议支持及路由刷新等。
4.2.3 Update消息Update消息用于在对等体之间交换路由信息。
它既可以发布可达路由信息,也可以撤销不可达路由信息,其消息格式如图所示。
BGP Update 消息格式一条Update 报文可以通告一类具有相同路径属性的可达路由,这些路由放在NLRI(Network Layer Reachable Information,网络层可达信息)字段中,Path Attributes字段携带了这些路由的属性,BGP 根据这些属性进行路由的选择;同时Update 报文还可以携带多条不可达路由,被撤销的路由放在Withdrawn Routes 字段中。
BGP Update 消息包含的内容包括:1)Network Layer Reachability Information (NLRI)用来公布IP 地址前缀和前缀长度的字节组,例如<19,198.24.160.0>2)Path Attributes该属性为BGP 提供了选择最短路径,检查到路由环路以及决定路由策略的信息3)Withdrawn Routes用来描述已经变成不可达并正从业务中撤销的目的地址字节组(长度和前缀)注:虽然NLRI 字段可以包含多个前缀,但每一个更新消息只描述一条BGP 路由(因为路径属性只描述一条路径,但该路径可能会到达多个目的地)4.2.4 Notification消息当BGP检测到错误状态时,就向对等体发出Notification消息,之后BGP连接会立即中断。
其消息格式如图所示。
BGP Notification 消息格式主要字段的解释如下:Error Code:差错码,指定错误类型。
Error Subcode:差错子码,错误类型的详细信息。
Data:用于辅助发现错误的原因,它的内容依赖于具体的差错码和差错子码,记录的是出错部分的数据,长度不固定。
4.2.5 Keepalive消息BGP 会周期性地向对等体发出Keepalive 消息,用来保持连接的有效性。
其消息格式中只包含报文头,没有附加其他任何字段。
如果路由器接受了他在邻居的Open 消息中的参数,它就会发送一个应答的Keepalive 消息。
默认情况Keepalive 间隔60s,或者是达成一致的保持时间的1/3。
4.2.6 Route-refresh消息这是一个可选的消息,Route-refresh消息用来要求对等体重新发送指定地址族的路由信息。
其消息格式如图所示。
BGP Route-refresh 消息格式主要的字段解释如下:AFI:Address Family Identifier,地址族标识。
Res.:保留,必须置0。
SAFI:Subsequent Address Family Identifier,子地址族标识。
4.3 BGP邻居协商在BGP说话者可以交换网络层可达性信息(正被通告的网络)前,一个BGP会话必须被建立。
下图表明了在连接完全建立起前B G P邻居协商的过程。
4.4 BGP协议的状态机1) Idle(空闲):初始地,BGP处于Idle状态直到一个操作方引发了一个启动(Start)事件,启动事件通常是由建立或重启BGP会话引起的。
2) Connect(连接):在这个状态下,BGP正等待着传输协议连接的完成。
如果传输协议连接成功了,一open报文被发送给对等的路由器,BGP状态变成了开放发送(opensent)状态。
若连接失败,本地系统变为激活状态,继续监视连接。
3) Active State(行动):在这个状态下,BGP试图通过启动一传输协议连接来获得一个对等体。
若连接成功,一个Open报文被发送给对等路由器。
若连接重试计时器超时,BGP状态变为连接(Connect)状态,并继续监视可能会由远程BGP对等体启动的连接。
4) Open Sent State (开送状态):本状态中,BGP正等待着来自它的对等体的OPEN报文。
当一个OPEN报文被接收后,检查所有域的正确性。
如果检测到错误,本地系统发送出一个NOTIFICATION报文并变回到空闲状态(Idle)。
如果无错, BGP开始向它的对等体发送KeepAlive报文。
5) Open Confirm(开确认):本状态下,BGP 等候KeepAlive 或Notification报文。
若本地系统接收到KeepAlive报文,系统状态变为已建立( establisted )状态。
如果保持计时器(Holol timer)在KeepAlive报文到达前超时,本地系统发送出一Notification报文,状态变回到Idle。
6)Establisted(已建立):这是邻居协商的最后阶段。
在establisted 状态下,BGP对等体可以交换Update , Notification 以及KeepAlive报文。
4.5 BGP 的路由属性4.5.1 路由属性的分类BGP 路由属性是UPDATE报文的路由属性(Path Attributes):此可变长字段包含了与网络层可达性信息字段中前缀相关联的BGP属性的列表,它对特定的路由进行了进一步的描述,路径属性给出了正被通告的前缀的信息,如优先级或者前缀源等,使得BGP 能够对路由进行过滤和选择。
BGP 路由属性都可以分为以下四类:公认必须遵循(Well-known mandatory):所有BGP 路由器都必须能够识别这种属性,且必须存在于Update 消息中。
如果缺少这种属性,路由信息就会出错。
公认可选(Well-known discretionary):所有BGP 路由器都可以识别,但不要求必须存在于Update 消息中,可以根据具体情况来选择。
可选过渡(Optional transitive):在AS 之间具有可传递性的属性。
BGP 路由器可以不支持此属性,但它仍然会接收带有此属性的路由,并通告给其他对等体。
可选非过渡(Optional non-trasitive):如果BGP 路由器不支持此属性,该属性被忽略,且不会通告给其他对等体。