BGP 学习总结一.docx
- 文档编号:23694427
- 上传时间:2023-05-20
- 格式:DOCX
- 页数:15
- 大小:33.68KB
BGP 学习总结一.docx
《BGP 学习总结一.docx》由会员分享,可在线阅读,更多相关《BGP 学习总结一.docx(15页珍藏版)》请在冰豆网上搜索。
BGP学习总结一
BGP学习总结一
<BGP(BorderGatewayProtocol)>
·AutonomousSystems:
运行同一种选路策略,由统一管理者管理。
RFC对AS的定义:
一组被统一管理的路由器,它们使用相同的内部网关协议和统一的度量值在AS内部路由分组,并使用外部网关协议将分组路由到其他AS。
·AS号由internet地址授权委员会(IANA)统一负责分配,下设三个分支局
取值范围:
1-65535
1-64511 (公有)
64512-65535 (私有)
电信AS号:
4134网通AS号:
99294837中国教育网:
4538
B一个好的网站,可以了解到关于AS号的一些信息
http:
//www.routeviews.org/
Telnetroute-这一地址可以看到公网上的路由条目数
·IGP支持的路由条目有限
运行IGP不利于做路由聚合、选路。
·BGP路由器不接受路径列表中包含其AS号的路由选择更新,这种机制也被称为EBGP的水平分割原则。
用来防环
·BGP路由器只能将其使用的路由通告给他的邻居。
·BGP支持逐跳路由选择模式的策略--你可以决定自已的数据流去往哪一个AS,但不能决定邻接的AS如何转发你的数据流。
何时使用BGP:
1、AS允许数据包通过自已到达其它AS
2、AS有多条到其它自治系统的连接
3、需要对数据流进入和离开AS的方式进行控制
BGP的特性:
·BGP属于EGP,是高级DV协议,也被称为路径矢量协议,基于TCP179端口。
·现在使用版本BGP4。
·第一次做完整更新,以后就只增量更新、触发更新
·使用keeplive消息维持邻居关系
·丰富的metric值,也叫路径属性
·被设计用于特大的网络,例如internet
·BGP的目地是提供一种域间路由选择系统,确保自主系统能够无环路的交换路由选择信息。
BGP路由器交换有关前往目标网络的路径的信息。
BGP的几张表:
·Neighbortable:
ListofBGPneighborsBGP的邻居关系需要显示的配置
·BGPforwardingtable/database
Listofallnetworkslearnedfromeachneighbor
Cancontainmultiplepathwaystodestinationnetworks
DatabasecontainsBGPattributesforeachpathway
·IProutingtable
Listofbestpathstodestinationnetworks
BGP表和路由表是独立的,同样遵循AD小的进入路由表。
BGP默认不做负载均衡,只会选出最优的路由放进路由表,
·Router-ID选举和OSPF一致。
四种报文:
Open---includesholdtimeandBGProuterID,当然还有AS号。
Keepalive---每隔60S发送一次。
holdtime=180S
Update---informationforonepathonly(couldbetomultiplenetworks)
---Includespathattributesandnetworks
Notification
---whenerrorisdetected
---BGPconnectionisclosedaftersent(做maximum-prefix时可看到)
·BGP用Open报文建邻居,用KeepaLive报文做日常联系
·OPEN消息中包含以下内容:
1、版本
2、自主系统号
3、holdtime注意:
这个时间是可以协商的,取两个BGP邻居中较小的保持时间。
4、BGP路由器的router-id,选择方法与OSPF中相同
5、可选参数
·一个UPDATE消息一次可以只通告一条路由,并携带多个属性。
一个UPDATE消息一次也可通告多条路由,但它们的所有属性必须相同。
一个UPDATE消息可以同时撤消多条路由。
实际上也就是说一个UPDATE中只能有一组相同的路径属性,也就是说只能有一条路径,但可以有多个目标网络号。
BGP的邻居关系:
BGP邻居也叫BGP对等体,分两种:
EBGP--位于当前AS之外的,属于其它AS的邻居,通常要求直连。
IBGP--位于同一个AS之内的邻居,无需彼此相连,只要它们能够彼此到达对方,完成TCP握手即可。
·建议EBPG之间用直连接口来建邻居
·建议IBGP中用环回口建邻居
·从EBGP邻居学到的路由管理距离是20
·从IBGP邻居学到的路由管理距离是200
BGP的防环机制:
·BGP'sSplitHorizonRule:
IBGP:
从IBGP邻居收到的路由不再传给其他的IBGP邻居。
EBGP:
不接收携带本AS号的路由更新。
BGP路由黑洞问题:
·BGP路由黑洞的解决方法:
'比较好的方法是路由同步
1)物理线路的FullMesh(成本高,不可取)
2)BGP重分布进IGP(不可取)
3)IGP内所有路由器都运行BGP(不得已而为之)
·水平分割的解决方法:
1)FullMesh(不可取)
2)BGP'sPartialMesh(路由反射器/联邦)
·最佳方案
MPLS/VPN
·如果是宣告一个主类网络,则它的掩码不会在BGP路由表中显示出来,表示默认使用主类网络的标准掩码。
<BGP>
R4(config)#routerbgp64512
R4(config-router)#bgprouter-id94.4.4.4
R4(config-router)#neighbor24.1.1.2remote-as64513(EBGP邻居)
R2(config)#routerb64513
R2(config-router)#neighbor3.3.3.3remote-as64513 (IBGP邻居)
R2(config-router)#neighbor3.3.3.3update-sourceloopback0(更新源是环回口)(更新IP要和router-id一致)
R3(config)#iproute5.5.5.0255.255.255.0serial0
R5(config)#iproute3.3.3.0255.255.255.0serial0
R5(config-router)#neighbor3.3.3.3update-sourceloopback0
R3(config-router)#neighbor5.5.5.5ebgp-multihop2(EBGP设置多跳,环回口才用得上)‘因为EBGP一般是用直连端口做邻居。
该命令用于不同区域
R5(config-router)#neighbor3.3.3.3ebgp-multihop(默认255)
全局模式下的这条命令修改对所有邻居的keepalive-interval和hold-time
R5(config-router)#timersbgpkeepalive-intervalhold-time
修改对特定邻居的keepalive-interval和hold-time。
R5(config-router)#neighbor1.1.1.1timeskeepalive-intervalhold-time
R2#showipbgpsummary(摘要的邻居邻居信息)
R2#showipbgp2.2.2.0/24显示明细路由的详细信息
R2#showtcpbrief可以看到是谁发起的TCP链接
R2#showipbgpneighbors(详细的邻居信息)
R2#showipbgprib-failure可以看到提示有更高AD的路由
R2#showipbgpneighbors2.2.2.2advertised-routes看向这个邻居发了哪些路由信息
R2#showipbgpneighbors3.3.3.3received-routes看这个邻居给我发了哪些路由信息,必须在本路由器上用下面这条命令开启后才能用
R2(config-router)#neighbor3.3.3.3soft-reconfigurationinbound开启查看接收到的路由信息的功能
debguiprouting查看路由表调试信息
debugipbgpupdata查看BGP更新信息
EBGP用环回口做邻居后,不能再将此环回口宣告进BGP,否则会出现递归错误,造成邻居BGP表的翻动,IBGP不会出现这一问题,因为它们AD值是200,无法争抢入路由表
R4(config-router)#network4.4.4.0mask255.255.255.0 (严格按照IP地址掩码通告)
R4(config-router)#network100.0.0.0 (在auto-summary时,也可以主类方式通告)
·BGP的network能够通告路由表中的所有非BGP路由量。
打>号的路由是优的路由,会放进路由表并传给下一个邻居,不优的路由是不会传给下一个邻居
优的路由要满足两个条件:
1、同步2、下一跳
------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------
<关于更新源>
在BGP建邻居过程中,neighbor命令所指定的邻居的IP地址,也必须是邻居用来和本路由器建立TCP连接的地址。
如果不匹配,两端建立不起邻居关系。
“showipbgpsummary中的Neighbor”/“showipbgp中的NextHop”
都是指Update-Source。
可以在路由器上用以下命令指定使用哪个接口来和邻居建立联系:
R1(config-router)#neighbor3.3.3.3update-sourceloopback0
<BGP的下一跳机制>
BGP路由的下一跳并不是指下一个路由器的IP地址,而是指到达下一个AS的IP地址。
next-hop-self
1、BGP协议路由更新有个前提条件:
下一条路由可达,如果不可达,则不会把接受到的路由装入路由表并更新给其余的peer。
而通常情况下,下一条路由可达需要依赖IGP,很少网络会把bgpimport到IGP的。
2、根据要求1,EBGP传送路由给peer时缺省会把next-hop设定为自己。
3、IBGP传送路由给peer时缺省不会改变next-hop,为了满足1,AS边界路由器(EBGP/IBGP)在传送路由给IBGPpeer时通常需要设置next-hop-self,否则IBGPpeer会因路由的下一跳不可达而拒绝IBGPPeer路由。
4、该命令只对于收到的路由是不同AS号时有效。
<MA网络的下一跳问题>
第三方下一跳:
收到路由更新的源地址与将要发出去的接口地址在同一网段的时候,路由的下一跳不改变,为原来路由更新的源地址。
R4(config-router)#network172.16.1.0mask255.255.255.0
R3:
NetworkNextHopMetricLocPrfWeightPath
*>172.16.1.0/24123.1.1.21064513i
router#debugipbgpupdates
<Peer-Group>类似于过程封装
BGP为每个邻居都占用一个Buffer,使用Peer-Group可以使多个邻居共用一个Buffer。
针对多的邻居关系,减少配置量。
R1(config-router)#neighbor***peer-group在BGP进程下配
R1(config-router)#neighbor***remote-as64513
R1(config-router)#neighbor***update-sourceloopback0
调用:
neighbor2.2.2.2peer-group***
network---关于BGP中的宣告:
注意:
本命令只会宣告路由,不会激活一个接口进入BGP域
·在BGP中,network的特点是:
1、能够通告路由表中的所有非BGP路由量、只要是路由表中有的路由,它都可以宣告,直连的,静态的,即使
从IGP学到的也可以注意:
其它的路由协议只对直连路由有效。
2、默认情况下必须精确宣告网络和掩码
3、只起到宣告作用,不建邻居
4、可宣告IGP学到的路由,并携带Metric和Next-hop
·Auto-summary对于network的影响:
1、可以是主类方式宣告(如:
network3.0.0.0),条件是:
在路由表中必须有该主类路由;
2、也可以是明细方式宣告,必须带mask(如:
network3.3.3.0mask255.255.255.0),条件是:
必须和IGP表的路由精确匹配。
3、如果是用noauto-summary,那么network只能用明细方式宣告(除非是主类网络)。
通常都会用这一方式。
R4(config-router)#network4.4.4.0mask255.255.255.0 (在noauto-summary时,严格按照IP地址掩码通告,不加mask按主类掩码匹配)
R4(config-router)#network100.0.0.0 (在auto-summary时,也可以主类方式通告,前提是有一条明细)
如果路由器从IGP和IBGP都学到一条路由,由于IBGP路由的AD值为200,通常会大于IGP学到的路由,所以它会选择从IGP学到的放进路由表,并在IBGP路由的前面打上r,表示自已有一条同样的IGP路由。
<Synchronization>同步。
只针对IBGP邻居
·DonotuseoradvertisetoanexternalneighboraroutelearnedbyIBGP
untilamatchingroutehasbeenlearnedfromanIGP.
开启同步的情况下,AS内的一个路由器从IBGP学到一条路由,不用也不传,除非是从IGP学到同样一条路由。
(网络号和掩码都必须完全一样)
同步规则是为了在一个不是full-mesh的网络中解决路由黑洞而产生的。
如果路由器认为一条BGP路由存在黑洞的可能性,它就不会去传这条路由。
R3(config)#iproute4.4.4.0255.255.255.0serial0 (必须写成24位)从IGP收到同一条路由
R3(config)#iproute24.0.0.0255.0.0.0serial0 (只要下一跳可达即可)
BGP路由优化的2个条件:
1)同步问题
2)下一跳是否可达
高级解决方案:
R3(config-router)#nosynchronization(不检测同步,高版本IOS默认开启)
R2(config-router)#neighbor3.3.3.3next-hop-self(对邻居3.3.3.3说,将下一跳改为我)
---------------------------------------------------------------------------------------
BGP的邻接状态机:
1、idle空闲--查找是否有去往邻居的路由
2、connect连接--建立TCP三次握手
3、Active活动--协商还未成功
4、opensent打开发送--互发参数进行协商,也就是发送open报文
5、openconfirm打开确认--协商取得一致
6、established建立
只有当连接处于建立状态时,才能交换更新、存活和通知消息
如果一直停在idle状态,则可能:
1、没有去往邻居的路由
2、neighbor命令指错了邻居的地址
如果一直停在active状态,则可能:
1、邻居没有过来的路由
2、邻居没有指neighbor命令
3、邻居neighbor中指的地址错误
4、两端的AS号不匹配
BGP支持MD5认证
R2(config-router)#neighbor2.2.2.2passwordcisco
清除BGP会话:
当你将一个policy应用于BGP的时候,由于BGP是不会做周期更新,所以需要手动做更新。
clearipbgp*
clearipbgp*soft
neighbor[ip-address]soft-reconfigurationinbound本命令告诉BGP路由器:
保存从邻居那里学到的所有路由更新,供入站策略被修改时使用。
这样就无需对方重新发送信息。
<Auto-Summary>
·当其他IGP协议重分布进BGP时,默认会进行自动汇总。
其它情况下BGP不会自动汇总
·将IGP重分布BGP中,会携带IGP中的Metric和Next-hop。
1、在auto-summary情况下,将IGP重分布进BGP,不会携带原有的METRIC值,next-hop
2、在noauto-summary情况下,会携带原有的METRIC值和掩码,next-hop
R1(config-router)#noauto-summary(高版本IOS默认开启)
R4(config-router)#network4.4.4.0mask255.255.255.0
(在noauto-summary时,必须严格按照IP地址掩码通告)
<Summary>aggregate聚合
1)通过Network做汇总:
R4(config)#iproute192.168.0.0255.255.252.0Null0
R4(config-router)#network192.168.0.0mask255.255.252.0 (不要宣告明细)
在BGP中的network命令只要是路由表中有的路由,它都可以宣告,直连的,静态的,即使从IGP学到的也可以
2)Aggregate:
第一步:
要先宣告每一条明细
第二步:
在BGP进程中用以下命令做聚合
例一:
R4(config-router)#aggregate-address192.168.0.0255.255.252.0(宣告明细)
明细&汇总都被发出
B192.168.0.0/22[200/0]via0.0.0.0,00:
00:
16,Null0
注意:
默认情况下,明细和汇总都会被发出。
例二:
只发汇总,不发明细
R4(config-router)#aggregate-address192.168.0.0255.255.252.0summary-only(只通告汇总)
例三:
还可用抑制列表对其中的一部分明细路由进行抑制
Suppress-map抑制列表-----抓的就是被抑制的路由
R2(config)#ipprefix-list1permit192.168.0.0/23ge24le24
R2(config)#route-map***
R2(config-route-map)#matchipaddressprefix-list1
R2(config-router)#aggregate-address192.168.0.0255.255.252.0suppress-map***
(抑制192.168.0.0/24;192.168.1.0/24路由)
showroute-map专用查看router-map
注意:
如果用了suppress-map不起作用的话,要清一下本路由器,要硬清才行
使用aggregate做汇总后,在汇总路由中的一些明细属性将会消失,用下面这一命令可以还原
R1(config-router)#aggregate-address192.168.0.0255.255.252.0as-set(还原AS属性)
*>192.168.0.0/220.0.0.0100327684i
{4,5}(明细从不同AS传来)
如果不将明细路由的属性还原,有可能导致路由回馈现象发生:
路由回馈现象:
在R2上起两条路由宣告进BGP,在R1上做聚合,想想有啥问题。
在这时as-set命令就有大作用了。
-------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------
<Reflector>
路由反射器
路由反射器就是一台路由器,可以将它的IBGP邻居指定为自已的客户端。
路由反射器和其客户的集合被称为集群(cluster),每一个集群都有一个cluster-id,默认情况下路由反射器的router-id会被用做cluster-id,也可以手工指定。
路由反射器所传递的每一条路由都会带上这个cluster-id。
·打破IBGP的水平分割规则。
1、从EBGP学到的一条路由,会传给client和非client端
2、从client端学到的路由,会传给其它client和非client端
3、从非客户端收到路由,会转发给客户端以及EBGP邻居,但不会转发给非客户端。
在路由反射器上做---
R2(config-router)#neighbor1.1.1.1route-reflector-client这一条命令全搞定
(1.1.1.1为R2的客户端)
<Confederation>
联邦
·将大AS划分成若干个小AS,小AS之间是EBGP关系。
·1、联邦中的所有路由器都必须用起小AS号。
(Routebgp小AS)
R2#showipbgpneighbor12.1.1.1adverised-routes
·2、联邦中的所有路由器都必须声明大AS号
R1(config-router)#bgpconfederationidentifier1
·3、连接小AS的边界路由器要互相指peers:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- BGP 学习总结一 学习 总结