武汉金信润天
免费服务热线:13260580922
微信在线咨询:13260580922
武汉金信润天:027-87538126
北京金信润天:010-88134881
扫一扫
关注我们
Linux之BGP基础部分
时间:2019-04-29 09:52    浏览次数:     发布者:Lee Xu    来源:武汉金信润天    
0
BGP概述
 
BGP是运行在AS之间的路由协议,IGP是hop-by-hop,BGP是AS-by-AS。BGP是一种路径矢量路由协议:记录AS-PATH。
 
公有AS:1-64511  私有AS:64512-65534
中国电信AS号:4134  中国网通:9929
 
为什么要使用BGP?
 
AS是一个自治域,管理自己内部的网络。
支持的路由条目(route-views3.routeviews.org)
策略选路
 
BGP建立邻居
 
BGP到每一个运行BGP的对端都形成一个独特的、基于单播的连接,为了提高可靠性,BGP使用了TCP(179)作为传输机制。
 
BGP消息类型
 
在建立一个BGP对等体连接之前,两个邻居必须执行标准的TCP三次握手,并且打开一个端口为179的TCP连接。TCP提供可靠连接所需要的分段、重传、确认及排序功能。所有BGP消息都是通过TCP连接单播给一个邻居。
 
open
keepalive
update
notification
Open消息
TCP会话建立起来以后,两个邻居都要发送一个Open消息。每个邻居都用该消息来标识自己,并规定自己的BGP参数。Open消息包含以下信息:
 
BGP版本号-----目前所有的版本为版本4。可以协商直到两边版本达到一致。
Hold time-----路由器收到一个keepalive或是更新消息之前所允许经过的最大秒数。Cisco缺省的保持时间为180秒。如果两邻居的保持时间不匹配,那么会协商为较短的那个保持时间。
 
BGP 标识符-----bgp router-id。和ospf选择router-id的方式类似,1.人工指定2.使用最大的loopback地址3.如果没有loopback地址选择最大的物理接口地址。
 
Keepalive消息
 
如果路由器接受了邻居在open消息中的参数,它就会应答一个keepalive消息。Cisco的缺省情况下是60s发送一个keepalive消息。
 
Update消息
 
Update消息用来公布可用的路由、撤销的路由。
网络层可达信息(NLRI)----这是一个或多个用来公布IP地址前缀和前缀长度的字节组。例如:206.193.160.0/19
路径属性----该属性为BGP提供最短路径、检查路由环路及决定路由策略的信息。
撤销路由----用来描述已经变成不可达并正在撤销的目的地。
 
Notification消息
 
当检查到差错的时候就会发送notification消息,通常这会导致BGP连接的终止。
 
BGP有限状态机
 
空闲状态(Idle)
 
BGP通常以空闲状态开始。在该状态下,它拒绝接收所有入连接。当bgp开始初始化资源,打开重试连接计时器、初始化TCP连接、接听来自己邻居的TCP初始化消息并将它的状态转到连接状态。
 
一个差错的出现会将bgp的状态转为空闲状态。路由器自动重新发起另一个初始连接。在持续差错条件下,需要对此进行限制,因此在第一次回到空闲状态后,路由器会启动重试连接计时器,当计时器终止后,路由器就会放弃重新开始BGP。Cisco的重试连接计时器的时间是60S,下一次重试连接计时器是前一次的两倍,以此类推。
 
连接状态
 
在这种状态下,BGP会等到TCP连接完成以后再决定后续的动作。如果TCP连接建立成功,BGP将重试连接计时器清零,完成初始化过程,给邻居发送一个open消息,并转到opensent状态。如果TCP连接建立失败。BGP过程会继续监听由邻居发起的连接、重置重试连接计时器并转入active状态。
 
如果在连接状态下,重试连接计时器超时了,计时器重新开始计时,并再一次试图与邻居建立一个tcp连接,bgp状态继续持续在连接状态。
 
active状态
 
在这个状态下,bgp试图与邻居建立一个tcp连接,如果tcp连接建立成功,bgp将重试连接计时器清零,完成初始化工作,给邻居发送一个open消息并转到opensent状态。
 
opensent状态
 
在这种状态下,已经发送了open消息,bgp正在等待从邻居发来的open消息。当收到一个open消息以后,检查该消息所有的字段。如果发现了差错,会给它的邻居发送一个notification消息并且将状态转到空闲;如果接收到open消息中没有发现差错,协商keepalive计时器,bgp给邻居发送一个keepalive消息。
 
openconfirm状态:
 
这种状态下,BGP过程会等待一个keepalive或者notification消息,如果收到keepalive消息,转到已建立状态。如果收到notification消息或tcp断开消息,转台空闲状态。
 
established状态
 
在这种状态下,bgp对等体的连接已经建立起来,对等体之间可以交换update、keepalive和notification消息,如果收到update或者keepalive消息,重置hold计时器,如果收到notification消息,则转到空闲状态。
 
BGP建立对等体关系
 
EBGP对等体关系:AS与AS之间的边界路由器建立的BGP对等体关系,建立EBGP对等体关系一般使用直连网段进行tcp连接;
 
IBGP对等体关系:AS内部路由器建立的BGP对等体关系,建立IBGP对等体关系一般使用环回口进行tcp连接。
 
正常BGP对等体的建立,双方都向对等体发起目标端口为179的tcp连接,然后随机断掉一条连接,使用另一条连接。
 
注:BGP不能使用默认路由建立对等体关系
 
bgp建立对等体关系实验:
 
R1(config)#router bgp 1
R1(config-router)#neighbor 23.1.1.3 transport connection-mode active (默认就是主动发起bgp连接)
 
图 41 BGP建立对等体关系实验拓扑
R1和R2建立EBGP对等体关系
R1(config)#router bgp 1
R1(config-router)#neighbor 12.1.1.2 remote-as 234
R2(config)#router bgp 234
R2(config-router)#neighbor 12.1.1.1 remote-as 1
R2和R4建立IBGP对等体关系
R2(config)#router bgp 234
R2(config-router)#neighbor 4.4.4.4 remote-as 234
R2(config-router)#neighbor 4.4.4.4 update-source lo0-----指定lo0为更新源
R4(config)#router bgp 234
R4(config-router)#neighbor 2.2.2.2 remote-as 234
R4(config-router)#neighbor 2.2.2.2 update-source lo0
查看bgp对等体关系:
R2#show ip bgp summary
BGP router identifier 2.2.2.2, local AS number 234
Neighbor V AS MsgRcvd MsgSent  TblVer InQ OutQ Up/Down  State/PfxRcd
4.4.4.4  4  234   25    26    23    0    0 00:00:23        1
12.1.1.1  4  1    29    29    3    0    0 00:25:30        1
EBGP使用环回口建立对等体关系
R4(config)#ip route 5.5.5.5 255.255.255.255 45.1.1.5----保证路由可达,tcp才可达
R4(config)#router bgp 234
R4(config-router)#neighbor 5.5.5.5 remote-as 5
R4(config-router)#neighbor 5.5.5.5 update-source lo0---指定更新源
R4(config-router)#neighbor 5.5.5.5 ebgp-multihop----EBGP默认跳数只传1跳,更改ebgp传递跳数,不设置跳数默认为255
R5(config)#ip route 4.4.4.4 255.255.255.255 45.1.1.4
R5(config)#router bgp 5
R5(config-router)#neighbor 4.4.4.4 remote-as 234
R5(config-router)#neighbor 4.4.4.4 update-source lo0
R5(config-router)#neighbor 4.4.4.4 ebgp-multihop
BGP宣告路由
BGP路由宣告
BGP通过network宣告路由,而不是直连网络(必须是路由表中包含的路由才能被宣告,掩码要匹配)
R1#show ip route
           1.0.0.0/32 is subnetted, 1 subnets
C       1.1.1.1 is directly connected, Loopback0
R1(config)#router bgp 1
R1(config-router)#network 1.1.1.1 mask 255.255.255.255(如果不加子网掩码,则使用主类掩码)
BGP路由表
查看bgp路由表:
R1#show ip bgp
BGP table version is 2, local router ID is 1.1.1.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
   Network    Next Hop   Metric  LocPrf  Weight  Path
*> 1.1.1.1/32    0.0.0.0       0            32768     i
*代表路由可用,可以放入路由表
>代表最优,多条相同bgp路由时,该条为最优的路由
后面的i代表起源为IGP,即通过network宣告进bgp的。
R2#show ip bgp
BGP table version is 725, local router ID is 2.2.2.2
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
   Network   Next Hop   Metric   LocPrf  Weight  Path
*> 1.1.1.1/32   12.1.1.1       0              0      1 i
Next hop是下一跳为AS1的边界路由器的ip地址
Path=1,表示路由经过了AS 1
BGP路由不优的原因及解决办法
R4#show ip bgp
BGP table version is 725, local router ID is 4.4.4.4
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
   Network   Next Hop   Metric  LocPrf  Weight  Path
* i1.1.1.1/32   12.1.1.1      0     100      0      1 i
前面的i表示该路由为IGP对等体传递的路由
没有>表示路由不优,原因:
下一跳不可达,这里next hop为12.1.1.1,R4的路由表里没有12.1.1.0/24的路由。
 
解决方法:
 
在R2上指定下一跳自我,让R2发出的bgp路由的下一跳都为R2自己
将R2的外部直连网络宣告进IGP
将R2的外部直连网络重分布进IGP
在R4上使用route-map指定路由的下一跳为R2
在R4上使用静态路由使下一跳可达
 
同步问题:
 
同步的条件:bgp路由器收到ibgp对等体传递的路由必须在ibgp路由表里也存在该路由,否则不会再传给ebgp对等体。
 
同步的目的:防止路由黑洞。由于bgp可以非直连建立对等体关系,通过tcp传递路由更新,以上图为例,R2与R4为ibgp对等体关系,但R3不运行bgp,R4会接收到1.1.1.1/32的ibgp路由,而R3不会收到1.1.1.1/32的路由。而R4去往目标1.1.1.1的物理下一跳为R3,R3没有路由将选择丢包,因此R4不会再将路由传递给R5。如果R4的igp路由表包含1.1.1.1/32的路由,即ibgp和igp同步,则R3的igp路由表也应该包含1.1.1.1/32的路由,那么就不会形成路由黑洞,那么R4就会将路由传递给R5。
 
 
 
本文作者:Lee Xu
CCIE-R&S、CCIE-Security、HCIP
个人介绍:
具有丰富的企业实战项目经验及教学经验。
专业知识的学习以及系统实践,
使李老师在IE级别高级工程师项目经验和IE级别
教学经验方面积累了丰富扎实的工作经验。
讲授课程:
CCNA、CCNP、HCNA、HCNP、MCSE、RHCE
项目经验:
孝感市土地局项目实施
长江航道局宜昌分局项目实施
武汉市公路归费征稽处项目实施
湖北省劳动教养工作管理局项目实施
湖北省国土资源厅项目实施
教学理念:
致力于培养学员的个人技术、独立思考能力、
反应能力、工作及适应能力。
“知行合一,止于至善”是李老师的信条。
相关推荐

总公司地址:北京市海淀区阜外亮甲店1号恩济西园产业园15号楼B座303
武汉分公司地址:湖北省武汉市洪山区虎泉街凯乐桂园A座9层(虎泉地铁站A出口右手边)
咨询报名电话:18672341218(微信同号)   武汉金信润天:027-87538126   北京金信润天:010-88134881
教学就业监督电话:027-87538125    网站地图   备案号:鄂ICP备15010789号-2
姓名
手机
电话咨询 在线咨询 QQ客服