武汉金信润天
免费服务热线:18672341218
微信在线咨询:18672341218
武汉金信润天:027-87538126
扫一扫
关注我们
BGP概念汇总
时间:2017-08-24 10:37    浏览次数:     发布者:admin    来源:未知    
0

 

<BGP(Border Gateway Protocol)>
·Autonomous Systems:(自治系统定义)
运行同一种选路策略,由统一管理者管理的一组网络。
RFC对AS的定义:一组被统一管理的路由器,它们使用相同的内部网关协议和统一的度量值在AS内部路由分 组,并使用外部网关协议将分组路由到其他AS。
每一个自治系统都有一个AS号
·AS号由internet地址授权委员会(IANA)统一负责分配,下设三个分支局
AS号取值范围:1-65535 1-64511 (公有)64512-65535 (私有)
电信AS号:4134 4809 网通AS号:9929 4837 中国教育网:4538
·BGP协议是一个用来在AS之间传递路由的协议
·BGP路由有一个路径列表,中间记录了这条路由所经过的所有的AS号,BGP路由器不会接受路径列表中包含其AS号的路由选择更新,这种机制也被称为EBGP的水平分割原则。用来防环
·BGP路由器只能将其使用的路由通告给他的邻居。也就是说只传递最优的路由。
·BGP被称为路由矢量路由协议,因为一个AS向另一个AS所传递的BGP路由更新,其实是传递一条路径信息,并且描述了通过这条路径所能到达的网络。
·BGP支持逐跳路由选择模式的策略--你可以决定自已的数据流去往哪一个AS,但不能决定邻接的AS如何转发你的数据流。
何时使用BGP:1、AS允许数据包通过自已到达其它AS 2、AS有多条到其它自治系统的连接3、需要对数据流进入和离开AS的方式进行控制
BGP的特性:
·BGP属于EGP,是高级DV协议,也被称为路径矢量协议,基于TCP 179端口。·现在使用版本BGP4。
·第一次做完整更新,以后就只增量更新、触发更新·使用keeplive消息维持邻居关系·丰富的metric值,也叫路径属性·被设计用于特大的网络,例如internet
·BGP的目地是提供一种域间路由选择系统,确保自主系统能够无环路的交换路由选择信息。BGP路由器交换有关前往目标网络的路径的信息。
BGP的三张表:
·Neighbor table 邻居表保存所有的邻居信息,BGP的邻居关系需要显示的配置,而且邻居不需要直连
·BGP forwarding table/database
保存从每一个邻居处学到的路由信息
·IP routing table
List of best paths to destination networks
BGP表和路由表是独立的,同样遵循AD小的进入路由表。
BGP默认不做负载均衡,只会选出最优的路由放进路由表,
·BGP中,每一个路由器也要有Router-ID,表示形式和指定过程同OSPF一致。

四种报文:
Open ---includes holdtime and BGP router ID,当然还有AS号。

 

Keepalive ---每隔60S发送一次。hold time=180S
Update ---information for one path only (could be to multiple networks)
 
---Includes path attributes and networks Notification
---when error is detected
---BGP connection is closed after sent (做maximum-prefix时可看到)
 
·BGP用Open报文建邻居,用KeepaLive报文做日常联系
 
·OPEN消息中包含以下内容:1、版本2、自主系统号
3、hold time 注意:这个时间是可以协商的,取两个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's Split Horizon Rule:IBGP:从IBGP邻居收到的路由不再传给其他的IBGP邻居。EBGP:不接收携带本AS号的路由更新。
 
BGP路由黑洞问题:·BGP路由黑洞的解决方法:
1)物理线路的Full Mesh
2)BGP重分布进IGP
3)IGP内所有路由器都运行BGP
4)MPLS/VPN
 
·IBGP水平分割的解决方法:
1)Full Mesh
2)BGP's Partial Mesh (路由反射器/联邦)
 
·如果是宣告一个主类网络,则它的掩码不会在BGP路由表中显示出来,表示默认使用主类网络的标准掩码。
 
------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------
 
<关于更新源>Update-Source
路由器用来和邻居建立邻居关系的地址,我们称之为更新源地址。
 
注意:在BGP建邻居过程中,neighbor命令所指定的邻居的IP地址,也必须是邻居用来和本路由器建立TCP连接的地址。如果不匹配,两端建立不起邻居关系。
 
可以在路由器上用以下命令指定使用哪个接口来和邻居建立联系,这个接口就是自已的更新源:
 
BGP的邻接状态机:
 
1、idle 空闲--查找是否有去往邻居的路由
2、connect 连接--建立TCP三次握手
3、Active 活动--协商还未成功
4、open sent 打开发送--互发参数进行协商,也就是发送open报文

 

5、open confirm 打开确认--协商取得一致
6、established 建立
 
只有当连接处于建立状态时,才能交换更新、存活和通知消息
 
如果一直停在idle状态,则可能:1、没有去往邻居的路由2、neighbor命令指错了邻居的地址
 
如果一直停在active状态,则可能:1、邻居没有过来的路由
2、邻居没有指neighbor命令
3、邻居neighbor中指的地址错误
4、两端的AS号不匹配
 
<BGP的下一跳机制>
BGP是一个AS-by-AS的路由协议,而不是一个router-by-router的路由协议。
 
BGP路由的下一跳并不是指下一个路由器的IP地址,而是指到达下一个AS的IP地址。
 
所以,默认情况下,从EBGP邻居学到的路由再向其它的IBGP邻居传递的时候,下一跳不改变。
 
<MA网络的下一跳问题>
 
当在R4上宣告172.16.1.0的路由进入BGP后,你会在R3上发现如下情况:
 
MA网络的下一跳:当把一条路由发送给EBGP邻居时,如果接收这条路由的接口与EBGP邻居的更新源地址在同一网段的时候,路由的下一跳不改变。
 
<Peer-Group>对等体组,类似于建立一个批处理文件BGP中,建立邻居关系的时候,有可能要对邻居指上多条命令,peer-group可以将多条命令组合在一起,用来在建邻居关系的时候一次性调用。减少了配置量。
 
BGP为每个邻居都占用一部分Buffer,使用Peer-Group可以使多个邻居共用同一部分Buffer。减少资源占用。而且针对比较多的邻居关系,可以减少配置量。
 
network---关于BGP中的宣告:
注意:本命令只会宣告路由,不会激活一个接口进入BGP域
 
·在BGP中,network的特点是:
 
1、能够通告路由表中的所有非BGP路由量、只要是路由表中有的路由,它都可以宣告,直连的,静态的,即使从IGP学到的也可以
2、默认情况下必须精确宣告网络和掩码
3、只起到宣告作用,不建邻居
4、可宣告IGP学到的路由,并携带Metric和Next-hop
 
·Auto-summary对于network的影响:
1、可以是主类方式宣告(如:network 3.0.0.0),条件是:在路由表中必须有子网路由;
 
2、也可以是明细方式宣告,必须带mask(如:network 3.3.3.0 mask 255.255.255.0),条件是:必须和IGP表的路由精确匹配。
 
3、如果是用no auto-summary,那么network只能用明细方式宣告(除非是主类网络)。通常都会用这一方式。
 
如果路由器从IGP和IBGP都学到一条路由,由于IBGP路由的AD值为200,通常会大于IGP学到的路由,所以它会选择从IGP学到的放进路由表,并在IBGP路由的前面打上r,表示自已有一条同样的IGP路由。在与其竞争时IBGP路由失败了。
 
<Synchronization>同步。只针对IBGP邻居
 
·Do not use or advertise to an external neighbor a route learned by IBGP until a matching route has been learned from an IGP.
 
解释:开启同步的情况下,AS内的一个路由器从IBGP邻居处学到一条路由,不用也不传,除非是从IGP学到同样一条路由。(网络号和掩码都必须完全一样)
 
同步规则是为了在一个不是full-mesh的网络中解决路由黑洞而产生的。如果路由器认为一条BGP路由存在黑洞的可能性,它就不会去传这条路由。由于同步规则会对路由的传递产生影响,所以建议关闭它。
 
BGP路由不优的2个原因:1)同步问题2)下一跳是否可达

 

<BGP认证> BGP支持MD5认证
 
清除BGP会话:
当你将一个policy应用于BGP的时候,由于BGP是不会做周期更新,所以需要手动做更新。
 
本命令告诉BGP路由器:保存从邻居那里学到的所有路由更新,供入站策略被修改时使用。这样就无需对方重新发送信息。
 
<Auto-Summary>
 
·在开启自动汇总的情况下,当其他IGP协议重分布进BGP时,默认会进行自动汇总。其它情况下BGP不会自动汇总
 
1、在auto-summary情况下,将IGP重分布进BGP,不会携带原有的METRIC值,next-hop 2、在no auto-summary情况下,会携带原有的METRIC值和掩码,next-hop
 
<Summary>aggregate聚合
 
1)通过Network做汇总:
 
方法:先为路由器配置一条静态的汇总路由,再宣告进BGP就可以了,注意不要把明细路由宣告进BGP
 
2)Aggregate:
使用aggregate命令做路由聚合
 
第一步:要先宣告每一条明细第二步:在BGP进程中用以下命令做聚合
 
如果不将明细路由的属性还原,有可能导致路由回馈现象发生:路由回馈现象:
 
在R2上起两条路由宣告进BGP,在R1上做聚合,想想有啥问题。在这时as-set命令就有大作用了。
 
Advertise-map----只对advertise-map里面匹配的路由进行聚合。当advertise-map里面匹配的明细路由全部消失后,即使聚合路由范围内还有其他明细路由,聚合路由也将消失。当与as-set合用时,只继承advertise-map里面匹配的明细路由的属性。
 
 
As-set----让聚合路由继承明细路由的属性,包括:as-path,local_preference,community,origin-code。与advertise-map合
用,只继承advertise-map里面匹配的明细路由的属性。
 
 
Attribute-map和route-map----这两个参数一样,可以将聚合路由的属性清除掉(除了as-path属性),添加自己需要添加的属性。
 
 
Summary-only----将聚合路由所包括的所有明细路由都抑制掉,被抑制的路由在bgp的转发表里,显示为s,代表suppress的意思。发送更新时,只发送聚合路由。可以与neighbor 1.1.1.1 unsuppress-map XX合用,对特定邻居漏过特定的明细路由。
 
 
Suppress-map----将suppress-map里面匹配的路由抑制掉,被抑制的路由在bgp的转发表里,显示为s,代表suppress的意思。发送更新时,只发送聚合路由和没有被抑制的明细路由。可以neighbor 1.1.1.1 unsuppress-map XX合用,对特定邻居漏过特定的明细路由。
 
向IGP中注入BGP路由:
一般不建议将BGP的路由重分布进IGP,因为路由条目很大,很容易造成IGP的瘫痪。
 
默认情况下只能将EBGP的路由重分布进IGP。默认不让IBGP的路由重分布进BGP是为了防止环路。如果非要将IBGP的路由重分布进
IGP。
 
注意:在使用条件路由时,必须用prefix来匹配路由才行,ACL不行
 
-------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------
 
<Reflector>路由反射器
 
·路由反射器就是一台路由器,可以将它的IBGP邻居指定为自已的客户端。
 
·路由反射器打破了IBGP的水平分割规则,它的传递规则如下:


1、从EBGP学到的一条路由,会传给client和非client端
2、从client端学到的路由,会传给其它client和非client端
3、从非客户端收到路由,会转发给客户端以及EBGP邻居,但不会转发给非客户端。
·路由反射器和其客户的集合被称为集群(cluster),每一个集群都有一个cluster-id,默认情况下路由反射器的router-id会被用做cluster-id,也可以手工指定。路由反射器所传递的每一条客户端路由都会带上这个cluster-id。
配置路由反射器---
<Confederation>
联邦
·将大AS划分成若干个小AS,小AS之间是EBGP关系
·1、联邦中的所有路由器都必须用起小AS号。(Route bgp 小AS)
·2、联邦中的所有路由器都必须声明大AS号
·3、连接小AS的边界路由器要互相指peers:
注意:两个小AS之间也要解决多跳问题,大AS的边界路由器必须向内做next-hop-self。
·联邦外路由器和联邦的边界路由器建立邻居关系时,neighbor大AS号。·联邦中的小AS号(64512)不算作AS-Path属性比较,只算作一个·小AS号会用括号括住,并且不算做一个进行路径比较的AS号
BGP选路策略--
属性分类
1、公认强制的--所有的BGP的updata消息都要包含该属性
2、公认自由决定的--该属性是可选可不选的,但是所有的BGP进程都能识别
3、可选传递的--即使BGP进程不能识别该属性,也会继续传递下去
4、可选非传递的--如果BGP进程不能识别该属性,可以忽略这条updata,并且不传递下去
例如:1、公认强制属性
--AS路径(AS-path) --下一跳(next-hop)--源头(origin)
2、公认自由决定的
--本地优先级(local preferent)
3、可选传递的
--社团属性(community)
4、可选非传递属性
--MED weight(权重)--cisco私有技术,只具有本地意义,用于本地路由器进行选路
一条路由信息包含了一组属性,每一个属性由三个字段组成。·属性类型·属性长度·属性值
<Local_Preference>越大越好
本地优先级是公认自由决定的属性,它告诉AS中的路由器,哪条路径是离开AS的首选路径。
特点:
·优先级属性用来影响IBGP邻居,告诉自己的IBGP邻居如何离开本AS。·只能在本AS内传递,不能传给EBGP邻居。
·默认值=100
<AS-Path>shortest AS-path ·BGP路由每经过一个AS,就会将这个AS号加入自已的AS-Path中。

·当一个路由器收到两条相同目的地的路由,它将选择AS路径最短的路由。·这个属性只能在EBGP邻居之间传路由时进行改动,对IBGP邻居传来的路由改不了·如果做了路由聚合,并加了as-set参数,聚合后继承明细路由的属性,在大括号里面的as-path在计算长度时,只算一个。在联盟内小括号里面的AS号,在选路时,不计算到as-path长度里面。
 
在IN方向加和在OUT方向加as号时,在AS-PATH中的排列顺序有一点区别。
 
做OUT方向时在原有AS号的后面加
 
做IN方向时在原有AS号的前面加·做out方向:出本AS之前预先设定AS号,人为设定的AS号顺序不变。·做in 方向:进本AS之前预先设定AS号,人为设定的AS号顺序不变。
 
<origin attribute>
本属性是用来说明BGP路由的起源,是如何成为BGP路由的。总共只有三个值:
 
IGP (i) 在BGP中用network命令宣告的路由
EGP (e) 从EGP协议重分布进BGP的中币,这个EGP指的是一种早期的协议,现已不用
Incomplete(?) 从IGP协议或者静态路由重分布进BGP的路由
 
这三个值有大小之分的: i<e<? //在用来比较时,越小越优
 
默认每一条BGP路由都有起源属性,也可以用以下方法来改动一条路由的起源属性:
 
<MED>Multi-Exit Discriminator多出口鉴别属性
 
特点:
 
·当两个AS之间存在多条路径的时候才使用·用来影响EBGP邻居,告诉自己的EBGP邻居如何选最优路由。
 
·metric传递不能传出AS。例:始发路由器可以将metric传给任何邻居,可以是IBGP/EBGP,但邻居收到后,不能传出邻居所在的AS。·默认值=0,MED值越小越好
 
 
·默认不比较从不同AS传来路由的MED。如果要比较不同AS传来的MED值,要用下面的命令
 
如果接收到路径没有MED,激活了bgp bestpath missing-as-worst,在这种情况下,这些路径的度量值被指定为4294967294(最大值)。优选那些主动设置了MED的路径。
 
---------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------
 
<Community>主要用来控制路由的传播范围社团属性,也叫共同体属性,是可选传递属性
 
·“可选”:意味着并不是所有的路由器都能识别这个社团属性。·“传递”:意味着路由器即使不能识别这个属性,也能将这条路由继续传递下去。
 
·社团属性类似于tag标记,它允许路由器能够使用一个指示符来标记路由,并且允许其它路由器根据这个标记来控制路由的传播范围,或者对含有标记的路由做一些处理。
 
·一条路由可以设置多个社团属性,也就是说允许同时打上多个标记
 
·还可以利用社团属性实现一些扩展的功能。比如在MPLS-VPN中的RT属性。
 
·默认情况下社团属性不会传递给邻居,必须有以下命令才行
 
·社团属性只会传给指定的邻居,并只在此邻居上起效。
-------------------------------------------
·社团属性分以下两种:
1、well-known communities 公认团体
2、Private communities 私有团体
 
·社团属性中已经预定义好的三类well-known属性: no-advertise:携带此属性的路由不会通告给任何BGP邻居。也就是说只传达给一个邻居no-export: 携带此属性的路由不会传出本AS外,只会传给IBGP。(联邦中的小AS会传递)。local-AS: 携带此属性的路由不会传出小AS。

 
相关推荐
武汉分公司地址:湖北省武汉市洪山区虎泉街凯乐桂园A座9层(虎泉地铁站A出口右手边)
咨询报名电话:18672341218(微信同号)   武汉金信润天:027-87538126   
教学就业监督电话:027-87538125    网站地图   备案号:鄂ICP备15010789号-2
姓名
手机
电话咨询 在线咨询 QQ客服