【交换机在江湖】论剑BGP2--初练神功(二)
自-【交换机在江湖】论剑BGP5--略有小成(二)

上期问题:BGP联盟中,AS_PATH属性有以下2个规则:1)在联盟内部需要将成员AS的AS号加入到AS_PATH列表中,但这些AS号不能被宣告到联盟之外。
在默认情况下,成员AS号被列在AS_PATH中作为AS_PATH属性类型4,即AS_CONFED_SEQUENCE。
如果在联盟中使用了手动聚合命令(aggregate)并配置了关键字as_set,那么位于聚合点之后的成员AS号将被列在AS_PATH中作为AS_PATH属性类型3,即AS_CONFED_SET。
2)AS_PATH中的联盟AS号用于实现环路避免功能,但是在联盟内部进行BGP路由选路过程中,选择最短AS_PATH时,不考虑这些联盟AS号。
联盟内部AS号不能宣告到联盟之外,并且在选路中也不考虑这些AS号的长短,那么这些AS号应该如何记录呢?要弄清楚这个问题,我们来介绍一下4种类型的AS_PATH属性:1:AS_SET,一个无序的AS号列表。
2:AS_SEQENCE,一个有序的AS号列表。
3:AS_CONFED_SET,BGP联盟中特有的AS_PATH类型,类似AS_SET,其列表中含有的AS号均属于BGP联盟中的AS号。
4:AS_CONFED_SEQUENCE,BGP联盟中特有AS_PATH类型,类似AS_SEQENCE,其列表中含有的AS号均属于BGP联盟中的AS号。
大部分小伙伴是不是已经被绕晕了?没事,我们通过一个例子来说明一下,如下图:我们按照上图配置好BGP对等体之后,在R1上将两条Loopback接口的直连路由引入BGP,在R4上通过命令display bgp routing-table可以发现:172.16.1.0/24和72.16.2.0/24这两条路由已经被进入BGP路由表,并发送到R4。
两条路由的AS_PATH均为“3 2 1”。
这里,R4知道,要到达这两个目的地,需要经过AS3、AS2再经过AS1才能到达。
所以这里就是有序的AS_PATH,也就是这里的AS_PATH类型是AS_SEQENCE。
BGP路由协议讲解

BGP路由协议讲解BGP(Border Gateway Protocol)是一种边界网关协议,用于在互联网中交换路由信息。
BGP是一种路径矢量协议,其目标是使自治系统(AS)之间的路由选择更加灵活和可靠。
本文将从BGP的背景、特点、工作原理、路由选择算法等方面进行详细讲解。
一、BGP的背景在互联网中,不同的自治系统之间需要相互交换路由信息,以实现跨网络的通信。
而为了确保网络的稳定和可扩展性,需要一个可靠且灵活的路由选择协议。
BGP应运而生,成为互联网中最常用的路由协议之一二、BGP的特点1.可靠性:BGP通过使用路由可达性信息(RFD)来确保网络的可靠性。
它可以检测并通告最优的路径,以保证数据的正常传输。
2.灵活性:BGP允许管理员根据实际需求进行路由策略的配置和调整。
它可以根据权重、AS路径长度、自治系统内部度量等因素进行灵活的路由选择。
3.可扩展性:BGP具有较好的可扩展性,可以支持大规模的网络环境。
它可以将路由信息进行聚合和汇总,减少路由表的大小,提高路由表的查询和更新效率。
三、BGP的工作原理1.BGP会话的建立:BGP通过TCP协议建立会话,使用TCP的可靠传输特性进行可靠的路由信息交换。
2.路由信息的传递:BGP通过UPDATE消息来传递路由信息,包括可达网络的前缀、下一跳的IP地址、AS路径等。
BGP通过交换UPDATE消息来更新路由表,以实现最优的路径选择。
3.路由信息的选择:BGP使用路径矢量算法来选择最优的路由。
它会考虑多个因素,如AS路径长度、自治系统内部度量、路由策略等,选择出最优的路径来进行路由转发。
4.路由信息的聚合和汇总:BGP可以将相邻自治系统的路由信息进行聚合和汇总,以减少路由表的大小和维护成本,并提高路由表的查询和更新效率。
四、BGP的路由选择算法1.AS路径长度:BGP会选择AS路径长度最短的路径作为最优路径。
这是BGP最基本的路由选择准则。
2. MED(Multi-Exit Discriminator)值:MED值是用来指示到达同一网络的不同出口之间的优先级。
BGP路由协议学习指引

BGP路由协议学习指引一、引言BGP(Border Gateway Protocol)是一种用于在互联网中交换路由信息的协议。
它是一种自治系统(AS)之间的外部路由协议,用于实现不同自治系统之间的路由选择和交换。
本学习指引旨在为初学者提供BGP路由协议的基础知识和学习方法,以帮助他们理解BGP的工作原理和应用场景。
二、BGP基础知识1. BGP的定义和作用:BGP是一种基于TCP的路由协议,用于在不同自治系统之间交换路由信息。
它的作用是实现自治系统之间的路由选择和交换,确保数据包能够从源自治系统传递到目标自治系统。
2. BGP的特点:BGP具有高度可靠性、可扩展性和灵活性的特点。
它能够根据网络的拓扑结构和策略要求,实现灵活的路由选择和控制。
3. BGP的基本术语:- 路径(Path):指的是一条从源自治系统到目标自治系统的路由路径,由一系列自治系统号(AS号)组成。
- 邻居(Neighbor):指的是相互连接的两个BGP路由器之间的关系,通过建立BGP邻居关系,它们可以交换路由信息。
- 路由器(Router):指的是支持BGP协议的网络设备,用于交换和处理BGP路由信息。
- 路由表(Routing Table):指的是存储BGP路由信息的数据结构,用于实现路由选择和转发功能。
三、学习BGP的步骤1. 理解BGP的基本原理和工作机制:学习者应该首先了解BGP的基本原理和工作机制,包括BGP的报文格式、邻居建立过程、路由信息交换过程等。
可以通过阅读相关的文档、书籍和在线教程来获得这方面的知识。
2. 搭建BGP实验环境:学习者可以在实验室或虚拟环境中搭建BGP实验环境,通过配置和操作真实的BGP路由器来加深对BGP的理解。
可以使用模拟器或虚拟机软件来模拟真实的网络环境。
3. 配置BGP邻居关系:学习者应该学习如何配置BGP邻居关系,包括设置邻居的IP地址、AS号、认证等参数。
通过配置邻居关系,可以使BGP路由器之间建立起相互通信的能力。
BGP路由协议原理

维持邻居关系
KEEPALIVE (热恋:每天短信诉相思)
All rights reserved
HUAWEI TECHNOLOGIES CO., LTD.
2、BGP报文封装格式
Link Layer Header
单播形式发送
Frame Checksum
IP 头
TCP头
BGP Protocol Packet
心法300多页,构思巧妙,算法复杂,堪称武林绝学。而师弟BGP,终日游 山玩水,草草写了一本70多页的心法就交差了。”主办方问:“那么你的 心法能够管理多少设备多少路由呢?”。OSPF这时才自知不如,无话可说 。主办方继续说:“OSPF只能管理设备百台,路由千条;而BGP能够管理 整个internet百万台路由器,路由十万余条。原因是:BGP是无为而治,表 面看是无所做为,其实他只是不想过份的拘泥于细节,OSPF虽然厉害,但 是太拘泥于细节。
扩展参数,如MBGP、 GR、route-refresh
Optional Paramenters
HUAWEI TECHNOLOGIES CO., LTD. All rights reserved
Update报文类型
Update Message用于 BGP路由的更新
Update报文由BGP报文头(type=2)加如下结构构成
All rights reserved
Keepalive报文类型
Keepalive Message用于保持BGP邻居之间的会话
缺省60秒发一次给Peer
Keepalive(type=4)报文只有BGP报文头
Marker(16 byte) Length(2 byte) Type(1 byte)
BGP协议原理

BGP路由协议全解

BGP路由协议全解BGP(Border Gateway Protocol)是一种用于互联网中自治系统(AS)之间的路由协议。
它负责交换和选择路由信息,使得网络中的数据包能够按照最佳路径从源地址到目的地址传递。
BGP广泛应用于大型企业、互联网服务提供商(ISP)和互联网交换点(IXP)等环境中。
下面是BGP路由协议的全面解读。
BGP协议是一种路径矢量协议,它通过交换自治系统之间的路由信息来构建一个全球性的路由表。
BGP路由表中存储着AS号码和对应的IP前缀,以及到达该前缀的下一跳信息。
BGP协议基于TCP连接,在AS之间建立稳定的通信管道。
BGP通过TCP建立连接后,可以交换路由信息、确认连接状态、保持连接活跃以及进行路由的收敛等操作。
BGP路由协议具有以下几个特点。
首先,BGP协议是一种可靠的协议,能够确保路由信息的可靠交换。
它使用可靠的连接,对路由信息进行校验,以确保在信息交换过程中不会丢失或损坏数据。
其次,BGP协议采用增量式更新,只发送发生变化的路由信息,减少了网络流量和CPU负载。
同时,BGP协议还支持拓扑状态更改(Topology Change)通知,实现了快速的收敛。
BGP协议中的路由选择是由路由策略决定的。
路由策略可以根据不同的需求进行配置,以满足网络运营商的不同要求。
BGP协议支持多种路由选择的属性,如AS路径长度、下一跳可达性、路由器的地理位置等。
这些属性可以在路由策略中进行配置和优化,以实现最佳路径的选择。
BGP协议的工作原理如下。
首先,当两个自治系统建立BGP邻居关系后,它们会互相交换本地的路由信息。
这种交换是通过发出Update消息来实现的,每个Update消息分为多个Update段,每个Update段包含一个或多个路由信息。
当对方收到Update消息时,会根据本地的路由策略进行路由选择,并将选择的路由信息添加到自己的路由表中。
这种更新过程是持续的,当网络拓扑或路由策略发生变化时,会发送Update消息进行更新。
bgp 路由聚合命令

bgp 路由聚合命令BGP(Border Gateway Protocol)是一种重要的动态路由协议,用于在互联网中实现路由选择和信息交换。
通过聚合多个路由条目,可以有效减少路由表的规模,提高网络效率和安全性。
本文将介绍一些常用的BGP路由聚合命令,帮助网络管理员实现BGP路由表的优化和管理。
1. 网络聚合命令网络聚合命令可用于将多个连续的IP地址聚合成一个更具有代表性的路由条目,减少路由表中的重复信息。
具体命令如下:aggregate-address <network-address> <mask> [summary-only] 其中,<network-address>是需要聚合的网络地址,<mask>是网络子网掩码。
通过加上可选参数[summary-only],可以仅在聚合路由表中显示摘要信息。
2. 累积聚合命令累积聚合命令可用于将多个非连续的IP地址聚合成一个更大的路由条目,减少路由表的规模。
具体命令如下:aggregate-address <network-address> <mask> [as-set]其中,<network-address>是需要聚合的网络地址,<mask>是网络子网掩码。
通过加上可选参数[as-set],可以将聚合的路由条目标记为一个自治系统集合。
3. 长度匹配聚合命令长度匹配聚合命令可用于将路由表中长度相同的路由聚合成一个更大的路由条目。
具体命令如下:aggregate-address <network-address> <length> [summary-only]其中,<network-address>是需要聚合的网络地址,<length>是子网前缀长度。
通过加上可选参数[summary-only],可以仅在聚合路由表中显示摘要信息。
bgp试题及答案

bgp试题及答案1. BGP基本概念- 什么是BGP?A. 边界网关协议(Border Gateway Protocol)B. 内部网关协议(Interior Gateway Protocol)C. 外部网关协议(Exterior Gateway Protocol)D. 动态路由协议(Dynamic Routing Protocol) - 正确答案:A2. BGP属性- BGP中用于选择最佳路径的属性有哪些?A. AS_PATHB. NEXT_HOPC. LOCAL_PREFD. 以上都是- 正确答案:D3. BGP邻居- BGP邻居建立的前提条件是什么?A. 邻居的IP地址B. 邻居的AS号C. 邻居的BGP标识符D. 以上都是- 正确答案:D4. BGP路由传播- BGP如何传播路由信息?A. 通过IGPB. 通过静态路由C. 通过BGP更新消息D. 通过BGP会话- 正确答案:C5. BGP会话状态- BGP会话状态中,表示已经建立BGP会话的状态是什么?A. ActiveB. EstablishedC. IdleD. Connect- 正确答案:B6. BGP路由反射器- BGP路由反射器的作用是什么?A. 减少路由信息的传播B. 增加路由信息的传播C. 避免路由环路D. 简化BGP网络的拓扑结构- 正确答案:D7. BGP多路径- BGP多路径协议允许一个目的网络通过多少条等价路径进行路由?A. 1B. 2C. 3D. 任意数量- 正确答案:D8. BGP社区属性- BGP社区属性用于实现哪些功能?A. 路由过滤B. 路由聚合C. 路由重分配D. 以上都是- 正确答案:D9. BGP同步规则- BGP同步规则要求什么?A. 外部路由不能在IGP中传播B. 内部路由不能在IGP中传播C. 外部路由必须在IGP中传播D. 内部路由必须在IGP中传播- 正确答案:C10. BGP路由泄露- BGP路由泄露是指什么?A. 将BGP路由信息泄露给其他BGP邻居B. 将IGP路由信息泄露给BGP邻居C. 将BGP路由信息泄露给IGP邻居D. 将IGP路由信息泄露给其他IGP邻居 - 正确答案:A。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
上期问题:当我们把RIP的传输层协议改为TCP之后,发现和维护邻居的机制应该设计成怎样呢?
这个问题可以从以下几个方面来考虑:
一:TCP面向连接,基于TCP的协议必然有一个先建立连接的过程。
要先建立连接,两端的设备就必须先互相知道对方的IP地址,并且路由可达。
那么是采用静态配置的方式,还是动态建立连接的方式呢?BGP采用的是静态配置的方式,只要双方指定的地址路由可达,就可以建立连接。
这样做有以下好处:
1:可以与对端设备用任何IP地址建立邻居,而不限于某个固定接口的IP。
这样,我们就可以采用环回地址而非直连接口地址建立BGP邻居,两台设备之间如果主链路中断了,只要有备份链路存在,就可以把流量切换到备份链路上,保持邻居不断,增加了BGP连接的稳定性。
2:可以跨越多台设备建立邻居。
由于是静态配置的方式,不一定只有直连设备才能建立BGP 邻居,只要双方指定的地址路由可达(通过IGP或者静态路由),就可以建立邻居,这在AS 内部建立IBGP连接时,就不用所有设备之间都建立IBGP连接。
IBGP会在本期后面内容中提及。
二:知道对方IP地址后,BGP会通过发送open报文来进行邻居的建立。
如果连接不能建立,说明对端设备状态不正常,于是会等待一段时间再进行连接的建立,这个过程一直重复,直到建立连接。
三:连接建立后,就可以进行路由表的同步了,BGP通过发送update报文进行路由表的同步。
四:路由表同步完成后,并不是马上拆除这个连接,因为随时有可能会有路由的更新或者删除,建立TCP连接是一个非常耗费资源的过程,所以BGP通过定期发送keepalive报文进行TCP 连接的维持,这样就可以不用重新建立连接,立刻就可以进行路由更新。
五:如果经过一段时间(一般是3个keepalive报文发送周期)还没有收到对方的keepalive 报文时,我们就认为对方出现了问题,于是可以拆除该TCP连接,并且把从对方收到的路由全部删除。
自上回交换机初悟BGP神功后,一直潜心修炼。
交换机虽然所学IGP博杂,但都是基于UDP内功,乍换TCP,不免要花一番心思。
时光荏苒,一晃数月。
这日,路由老祖将门徒都唤至跟前,说道:“网络武林大会日期将近,我路由向为武林执牛耳者,此次武林大会定要有所作为。
为师苦思多日,得一阵法。
交换机,你是大师兄,就由你带着师弟师妹们把这个阵法演习熟练。
”说罢,将一纸阵图递给交换机。
交换机接过定睛一看,阵图如是:
题外话:这是一个典型的BGP应用组网。
图中,有3个AS,AS之间运行BGP协议。
AS65008域内运行OSPF协议。
R1和R5上只运行BGP协议,R2和R4上运行OSPF和BGP协议,R3上只运行OSPF协议。
这里先解释下EBGP和IBGP。
EBGP:运行于AS之间两台设备的BGP关系。
如图中R1和R2、R4和R5
IBGP:运行于AS内部两台设备的BGP关系。
如图中R2和R4
这里读者可能会问:AS内部不是有IGP么,为什么还要建立IBGP 关系?
这是因为如果R2和R4之间不建立BGP关系,那么如果R1要把路由传递给R5,经过AS65008时,就只能把BGP路由引入到IGP中,通过IGP进行传递。
而把数以10万计的BGP路由引入到IGP中的后果是灾难性的。
所以上图中,R2和R4之间建立了IBGP的关系。
值得一提的是,如上文所提及,由于BGP是通过静态配置的方式建立TCP连接,所以并非只能在两台直连的设备上建立BGP关系,如上图,R2和R4间通过OSPF路由可达,可以建立IBGP关系。
交换机看过阵图,暗忖:“这个阵法也并不见得有多高明嘛,就由我和师弟S97、S67、S57分别担任R1、R2、R4、R5四台BGP设备,小师妹S27功力尚浅,还不足以驾驭BGP,就让她做R3,只需要通过OSPF给我们师兄弟传递路由,如此这般,大功可成。
”想到这,不禁有些洋洋自得。
翌日,交换机带着师弟师妹们开始演练起BGP阵法。
交换机简单交待了几句后,五人各自归位,建立BGP连接,运行OSPF,有条不紊。
一切准备就绪后,交换机迫不及待的将自己的路由发了过去,未几,不远处传来S57兴奋的叫声:“收到了!”。
交换机内心一阵狂喜,表面却装作若无其事道:“S57,你发一个数据包过来试试。
”
“好!”
等待良久,还未有数据包到达,交换机有些奇怪:“S57,你多发几个数据包。
”
“一直在发。
”
S67在旁道:“我收到师弟发的数据包,也转发出去了。
”
众人目光一齐投向S97,S97赶忙分辨:“我完全没有收到啊,我是冤枉的。
”
交换机目光微转,却见小师妹S27一言不发,小脸涨的通红。
交换机赶忙收功起身,问道:“师妹,数据包是在你这里丢的么?”
S27有些委屈:“师兄,我是收到好多报文,但是不知道怎么转出去。
”
题外话:为什么控制面路由已经传递成功,但是数据包却无法发过来呢?
这里,我们对路由的传递过程和数据包的传递过程分别进行分析。
路由的传递过程:
路由传递过程
R1—R2:由于两台设备直连,并且建立EBGP关系,R1可以直接发送update报文至R2。
R2—R4:两台路由非直连,但是两台路由建立了IBGP关系,R2将update报文发送给R4。
即
该update报文的目的IP是R4,于是R2查询自己的路由表,由于域内运行了OSPF协议,通过OSPF,R2查询到去R4的下一跳是R3,于是将该update报文发给R3,R3收到该报文后,虽然没有运行BGP协议,但是根据报文的目的IP,将该update报文发送给R4。
R4—R5:同样,两台设备直连,并且建立EBGP关系,R4可以直接发送update报文至R5。
这样,路由的传递就完成了。
数据包的传递过程:
数据包传递过程
R5—R4:R5发送的数据包,源IP是R5,目的IP是R1,于是R5查询路由表,因为从R4收到一条R1的路由,该路由的下一跳标识为R4。
于是将数据包发送给R4。
R4—R2:当R4收到从R5发过来的数据包时,该数据包的源IP是R5,目的IP是R1。
于是,R4查询路由表,发现去往R1的路由下一跳是R2(我们假定R2上配置了peer next-hop-local命令),由于下一跳非直连,于是R4查询去R2的下一跳。
由于域内运行了OSPF,R4发现,去R2的下一跳是R3,于是将数据包发给了R3。
当R3收到该数据包时,由于数据包的目的IP是R1的IP,但是R3并没有运行BGP,所以R3上没有R1的路由。
于是R3将该数据包丢弃。
这就是经常说到的数据层面的“路由黑洞”。
交换机带着阵图找到路由老祖,将方才所发生之事告知老祖,老祖微微一笑道:“徒儿,这阵法看似平淡无奇,实则千变万化。
你墨守成规,太不知变通。
不过这也不能怪你,想当年这创立BGP神功的人,早已料想到这种情况。
”
老祖自旁拿出一本封面泛黄的古籍,赫然上书几个大字“BGP神功”。
翻开几页,一句心法映入眼帘。
“BGP同步心法:学习自IBGP邻居的路由在进入IGP路由表或宣告给BGP邻居之前,必须首先通过IGP来知晓该路由。
”
路由老祖道:“在创立这BGP神功之初,这个创立BGP的前辈就已料想到你遇到的情况,于是规定了这条心法,有了这条规则,在S67收到S97发来的路由时,发现OSPF路由表里并没有这条路由,就不会将该路由发送给S57。
反之,如果你将该路由引入到OSPF路由表中,那么在数据包从S57发给S27时,S27也能通过OSPF将数据包转发出去。
”
交换机若有所悟:“但是方才路由明明已经传递成功了啊。
”
老祖不急不忙道:“那是因为为师闯荡江湖多年,发现这条心法虽然可以解决路由黑洞的问题,但却必须将BGP路由引入到IGP中,不免非常不切实际。
于是为师对BGP心法做了改变,去掉了这条心法,而是用“物理全连接”和“逻辑全连接”来解决这个问题。
”
题外话:解决路由黑洞的几个方法:
1:根据BGP同步机制将BGP路由引入到IGP中。
(S系列交换机缺省不启用BGP同步机制,但可以通过命令synchronization命令启用),这个方案的弊端上文已经说明。
2:物理全连接:以上图为例,如果AS65008内三台设备均通过物理线路连接起来,则R4可以直接将数据包发送给R2,而不需要通过R3转发。
这个方案的弊端在于物理线路的铺设非常麻烦。
3:逻辑全连接:已上图为例,如果AS65008内三台设备均启用BGP进程,并且两两建立IBGP 连接,则R3上也有R1的路由。
可以成功转发数据。
这个方案的弊端在于如果设备数量非常多,大量IBGP的连接难于管理。
交换机思前想后,还是有些不情愿的采用逻辑全连接的方式,虽然管理麻烦,但是相比BGP 同步和物理全连接,还是方便不少。
殊不知,半载之后,武林大会之上,交换机邂逅了风华绝代的MPLS。
两人发现彼此武功神奇般契合,完美的解决了包括路由黑洞在内的各种问题。
于是二人自立门户,创下了一门震古烁今的武学。
一对神仙眷侣也被传为武林佳话。
此乃后话,暂且不表。
未完待续
本期问题:逻辑全连接的方案弊端在于数量众多的IBGP连接难于管理,有什么办法可以缓解这个问题呢?。