CCIE BGP知识点总结

BGP:
特点:
iBGP邻居由于通过TCP三次握手建立会话,不需要直连建立ibgp邻居(有更新源的概念-update通常为loopback);但是EBGP一般还是直接直连端口建立邻居。
BGP实现不同AS之间的路由传递协议-外部网关协议
BGP是DV-距离矢量协议 除了路由表,还有bgp表
BGP是应用层协议(7层) TCP 目标179端口,源端口号随意(因为BGP要承载大量的路由条目,保证路由传递的高可靠性及高准确性)
正因为使用的是TCP协议,所以两台BGP路由器只要能ping通就可以建立BGP邻居,不需要直连。
BGP路由更新机制-增量更新(触发)
BGP报文:
keepalive (类似hello):维护邻居关系,每60s发送一次,holdtime为3*60;过来180s便认为邻居丢失,断开邻接;

BGP建立邻居的过程:
Idle:等待开始,进程被启动或者被重置。
Connect:检测到有peer要尝试建立TCP连接。
Active:尝试与对方peer建立TCP连接。如有故障则回到idle。
OpenSent:TCP建立成功,BGP发送Open消息给对方peer,然后切换到Opensent状态,失败则切换到Active。
OpenReceive:收到对方的Open消息,并等待keepalive消息,如果收到keepalive消息则进入Established状态;如果收到Notification消息,则转到idle状态。
Established:从对端peer收到keepalive,并开始交换数据,收到keepalive后,holdtimer都会被重置,如果收到Notification,则回到idle状态。
BGP更新源地址:
考虑到路由器的loopback口在设备正常工作的情况下,不会像物理接口那样出现中断,所以建议在BGP邻居之间使用loopback接口的地址来建立TCP连接。
BGP TTL:1-255
考虑到外部自治系统的路由器对BGP发起DOS攻击,所以BGP要求外部BGP邻居,即eBGP邻居必须与自己直连,而iBGP邻居可以任意距离。
BGP AS_PATH:
优点:在AS之间防环,AS_PATH不能出现相同发AS号。此防环是在EBGP之间,IBGP内是无作用的。
IBGP防环策略:
考虑到为iBGP之间的路由传递也加入防环机制,因而强制将BGP路由在AS内部只传一跳,具体操作为:一台BGP路由器从eBGP邻居收到路由,发给iBGP邻居之后,iBGP邻居收到后就不能再传给其它任何iBGP邻居,只能传递给eBGP邻居。
此规则被多数人称为BGP的水平分割,就是一台BGP路由器从iBGP邻居收到的路由,不能传递给其它iBGP邻居,只能传给eBGP邻居。
路由的AS-path为“40,30,20,10” 路由依次经过AS 10->20->30->40
BGP路由表:
BGP路由器拥有两种表:IGP路由表(show ip route)+BGP路由表(show ip bgp);初始bgp路由表为空,只能先导入路由进BGP路由表,此BGP路由才能通过BGP协议传递给邻居。
BGP路由表获取路由的方式:
1、BGP邻居学习到的
2、network宣告的,手动将IGP路由导入的BGP路由表。
3、重发布进BGP
只要BGP的路由不是从邻居学习到的而是手工导入的,那么这样的路由被称为BGP本地路由。
BGP AD值:
EBGP:20 高于任何IGP协议
IBGP:200 低于任何IGP协议
BGP synchronization:
在一个AS中运行BGP的基础是需要IGP的支持:其中运行BGP的目的是为了在大型网络中传递庞大的路由表或路由信息,而运行IGP协议的目的可想而知,
并不是为了传递庞大的路由信息,在AS中运行IGP的根本目的是为了让BGP路由器之间能够建立TCP连接,从而为BGP的通信服务。
BGP路由黑洞:
当BGP从iBGP收到路由时,因为邻居之间可能跨越了多台IGP路由器,所以BGP在将数据包发往目的地时,通常会发给一台只运行了IGP的路由器,
而只运行IGP的路由器并没有BGP的路由,因而最终导致数据包丢失,造成路由黑洞。
由于以上原因,在BGP路由传递中,有以下一条规则(bgp同步规则):当BGP要将从iBGP邻居学习到的路由信息传递给其它邻居之前(这个邻居通常是eBGP邻居),
这些路由必须在IGP路由表中也能学到,否则认为此路由无效而不能发给其它邻居。
注意,只有从iBGP邻居学习到的路由,才受iBGP与IGP路由同步规则的限制,如果路由是从eBGP邻居学习到的,则不受此规则限制,并且此规则可以手工开启或关闭。
BGP Path attributes:13条
BGP的每条路由都带有路径属性:
公认强制属性3个:强制写入到路由中的。–>orgin,next-hop,as-path
1、最大weight:Cisco私有
只有Cisco的路由器才能认识和理解Weight。路由的Weight属性只在路由器本地起作用,BGP将路由传递给邻居时,并不会保留Weight。
Weight值的范围为0~65535,默认为0,如果是BGP本地路由,则Weight值为32768。
2、最大Local_Pref(公认自选):默认为100,本地优先级,local表示本AS内,即在同一个AS内有效。
一条路由的Local_Pref属性只能在同一AS内部传递(即IBGP之间传递),出了AS后就会被还原成默认值。
因此可以通过不同IBGP邻居去往相同AS目的,用local_pref来比较。(下一跳都是iBGP邻居)
3、本地发起的路由(即路由下一跳为0.0.0.0)
通过命令network和重分布的路由优先于手工汇总的路由。
4、最短AS-PATH:到达目的地经过的AS集合;bgp bestpath as−path ignore 表示跳过此属性不比较。
AS_SEQUENCE:有序AS_PATH
AS_SET:无序AS_PATH 通常是将多条拥有不同AS_Path的路由汇总后产生的.需要更加注意的是,AS_SET被认为是1个AS,而无论AS_SET中包含多少个AS,并且BGP联邦内部AS不被计算。
5、最低Origin:反映路由是如何进入BGP路由表的。
三种方式:IGP EGP Incomplete 优先级-IGP>EGP>Incomplete
6、MED(可选不传递):就是bgp的metric值。MED默认值为0,越小越优先。其在AS之间传递,只有在将路由发给EBGP邻居时才传递MED值。
是被设计用来影响在多个下一跳都为eBGP邻居时,如何选择最优路径,
因为在多个下一跳都为iBGP时,是建议使用修改Local_Pref属性来影响选路的,而多个下一跳都为eBGP时,则使用MED。
注意:默认情况下,只有当去往目的地的多个下一跳eBGP邻居都为相同AS时,才会比较MED值,如果多个eBGP邻居为不同AS时,是不会比较MED的,
若是要强制在多个不同的eBGP邻居之间比较MED值,需要在BGP进程下输入命令:bgp always-compare-med(注意须保证此命令在整个AS的路由器上输入,否则可能产生路由环路)。
7、BGP邻居类型:EBGP优先于IBGP (如果MED值无法比出最优路径,则选择下一跳为eBGP的邻居而不选择iBGP邻居。)
8、最小IGP metric到达下一跳的路由。(如果多条路径的下一跳邻居同为eBGP或iBGP,则选择拥有最小IGP metric到达下一跳的路由)show ip route 下一跳IP 对应的metric值。
9、负载均衡(如果开启的话)前8一致,同时bgp已经开启了负载均衡-maxinum-path eibgp n 最大值为6,默认为1
10、如果下一跳都为eBGP,则选择最早学习到的路由(即时间最长的路由)-BGP进程下输入命令bgp best path compare−routerid忽略比较此。
11、最低Router-ID下一跳
12、最短cluster list(如同AS_PATH)
13、最小下一跳的邻居地址
NEXT_Hop(公认强制属性):下一跳地址即BGP建立邻居的地址。也是BGP之间建立TCP连接所使用的地址。
注意:一台BGP路由器将路由传递给eBGP邻居时,会将Next-hop属性改为自己的地址,也就是和对方建立邻居所使用的地址,
而在将路由传递给iBGP邻居时,不会改变Next-hop属性。
BGP路由表中由本地产生的路由而不是从BGP邻居学习来的,即本地发起路由的Next-hop属性都为0.0.0.0。

BGP RIB-Failure:此路由不能被使用。该路由在IGP中已经拥有比BGP更高优先级的AD值。
默认情况下,BGP到任何目的地,只选择单一路径。在BGP路由表中,只有最优路由才会被BGP使用,也只有最优路由才会发给BGP邻居。
BGP路由被标为最优路由的条件:
1】下一跳可达
2】如果是IBGP收到的路由,则必须满足IBGP与IGP的同步(除非同步规则被关闭了)。
BGP邻居建立的条件:
★双方需要建立邻居的IP地址在网络上是互通的,可以建立TCP会话。
★双方指定的AS号码必须匹配
★双方BGP数据包必须可达(eBGP默认TTL为1,需要注意)。
★对方BGP数据包的目的IP和自己的源IP必须相同(单向满足即可)
BGP路由汇聚:
在BGP中做路由汇总,需要手工创建,只要有一条路由包含在汇总路由中,那么这条汇总路由即可生效。
当创建了BGP汇总路由后,并不表示一定能够缩小路由表大小,因为在创建汇总路由后,被汇总的明细路由默认依然会通告给邻居,所以路由条目并没有减少,路由表的大小也就没有缩小。
在BGP中创建汇总路由之后,默认会去掉明细路由中的所有AS_Path,但也可以选择让汇总路由保留所有明细路由的AS_Path,这个在汇总路由中的AS_Path称为AS-SET。
命令格式:
r4(config-router)#aggregate-address 100.1.0.0 255.255.252.0
r4(config-router)#aggregate-address 100.1.0.0 255.255.252.0 as-set 使用AS-SET,以保留所有明细路由的AS_Path。
r4(config-router)#aggregate-address 100.1.0.0 255.255.252.0 as-set suppress-map sup
将100.1.1.0/24放入route-map,在suppress-map中的route-map所包含的路由便会被抑制而不会通告给邻居。
r4(config-router)#aggregate-address 100.1.0.0 255.255.252.0 as-set summary-only 抑制全部明细路由,只发汇总路由
路由前面的标识s表示该路由在汇总时被抑制而不发给邻居。 s 100.1.1.0/24 3.3.3.3 0 1 i
r4(config-router)#neighbor 5.5.5.5 unsuppress-map unsup
在使用了抑制路由之后,如果希望某些路由还是发给某邻居而不抑制,那么可以使用不抑制的映射列表unsuppress-map,在该列表后面包含的路由都将被发给邻居。
BGP默认路由:
BGP的默认路由只能创建,而不能通过静态重分布。创建默认路由,可以选择对所有邻居生效,也可以只针对某个邻居发布默认路由。
r4(config-router)#default-information originate 没有指定邻居,则向所有邻居通告默认路由。
r4(config-router)#neighbor 5.5.5.5 default-originate 只对单个邻居发送默认路由。
BGP路由过滤: 比如通过利用access-list或prefix-list来匹配中特定路由,然后在BGP进程中使用,可以针对所有邻居使用,也可以针对特定邻居使用。
因为BGP的路由通常会携带AS_Path,所以除了根据路由的IP来过滤之外,还可以根据路由携带的AS_Path来过滤,
要匹配路由的AS_Path,需要使用Regular Expressions (正则表达式)来匹配AS特征
. 任何一个单一字符,包括空格
* 字符或模式出现0次或多次
^ 一行的开始
_ 类似于逗号
$ 一行的结束
实例:只收起源于AS 6的路由,过滤其它所有路由
r5(config)#ip as-path access-list 5 permit _6$
r5(config)#router bgp 5
r5(config-router)#neighbor 4.4.4.4 filter-list 5 in 在R5方向应用As-path filter
在R4上配置distribute-list路由过滤–全局过滤
r4(config)#access-list 2 permit 100.1.2.0
r4(config)#router bgp 4
r4(config-router)#distribute-list 2 in
r4(config-router)#neighbor 6.6.6.6 distribute-list 2 in 针对单个邻居过滤
BGP条件路由:通过定义某个条件,来限制路由的发送。
BGP条件路由通过两个route-map来实现,advertise map 和exist map,定义route-map中的路由,可以使用access list或IP prefix list,
配置完之后,BGP会跟踪exist map中的路由,只有相应路由存在BGP路由表中时,advertise map 中的路由才会被通告给邻居,否则是被抑制的。
实例:
r4(config)#access-list 11 permit 11.1.1.0
r4(config)#access-list 2 permit 100.1.2.0
r4(config)#route-map adv permit 10
r4(config-route-map)#match ip address 11
r4(config-route-map)#exit
r4(config)#route-map exi permit 10
r4(config-route-map)#match ip address 2
r4(config)#router bgp 4
r4(config-router)#neighbor 5.5.5.5 advertise-map adv exist-map exi
说明:配置只有当100.1.2.0存在于BGP路由表时,才向邻居5.5.5.5通告11.1.1.0。
BGP Peer Group:Peer Group就相当于是一个容器,这个容器拥有着BGP参数和策略,只要将BGP邻居放入这个容器中,那么该邻居即可获得容器的所有参数和策略
Peer Group唯一的限制就是,同一个Peer Group中的所有邻居,必须全部为iBGP邻居,或者全部为eBGP邻居(EBGP邻居可以是任意AS的).
BGP Community:
标准Community:众所周知的Community + 私有Communicaty
no-export—不将路由发给任何eBGP邻居,也就是只能将该路由在本AS内部传递。
no-advertise—不将路由发给任何BGP邻居。
internet—可以将路由发给任何BGP邻居。
local-as—同no-export,即不将路由发到AS外。
私有Community可以减少网络中路由器对相同路由的匹配工作,这就是标签的效果。
扩展Community(Extended Community) 在MPLS VPN中得以使用。
要匹配携带Community的路由,方法为使用Community List,并且有数字list和命名list两种,类似于access list
在使用Community List匹配指定路由条目后,则可使用route-map来调用Community List,从而为指定路由设置相应参数和策略,最终应用该route-map。
注:Community可以传递的距离不受限制,邻居可以再传给其它邻居,Community可以被多个路由器多次使用。
实例:
R5将自己的路由55.5.5.0/24设置no-export后发给R4
r5(config)#access-list 55 permit 55.5.5.0
r5(config)#route-map noe permit 10
r5(config-route-map)#mat ip address 55
r5(config-route-map)#set community no-export
r5(config-route-map)#exit
r5(config)#route-map noe permit 20
r5(config-route-map)#exit
r5(config)#router bgp 5
r5(config-router)#neighbor 4.4.4.4 route-map noe out
r5(config-router)#neighbor 4.4.4.4 send-community
说明:R5已将自己的路由55.5.5.0/24设置no-export,并且指示将community传给R4。 R4#sh ip bgp community
R4收到的路由55.5.5.0/24的community为no-export,也就是不将该路由传给任何eBGP邻居。
说明:私有Community的功能为路由标签,通过利用Community标签来匹配路由。
实例:
R4将100.0.0.0/8的全部路由的Community设置为 123,并发给R5
r4(config)#access-list 10 permit 100.0.0.0 0.255.255.255
r4(config)#route-map com permit 10
r4(config-route-map)#match ip address 10
r4(config-route-map)#set community 123
r4(config-route-map)#exit
r4(config)#route-map com permit 20
r4(config-route-map)#exit
r4(config)#router bgp 4
r4(config-router)#neighbor 5.5.5.5 route-map com out
r4(config-router)#neighbor 5.5.5.5 send-community
说明:R4将100.0.0.0/8的全部路由的Community设置为 123,并发给R5 则R5收到的路由100.0.0.0/8的community为123 –标签。
R5将所有community为123的路由的weight值改为123
r5(config)#ip community-list 5 permit 123
r5(config)#route-map wei permit 10
r5(config-route-map)#match community 5
r5(config-route-map)#set weight 123
r5(config-route-map)#exit
r5(config)#route-map wei permit 20
r5(config-route-map)#exit
r5(config)#router bgp 5
r5(config-router)#neighbor 4.4.4.4 route-map wei in
//何时out 何时in,100.0.0.0/8的路由都是通过R4引进的,so,是in!!也即对R4引进的路由100.0.0.0/8进行route-map操作—weight值修改为123
说明:R5上community-list匹配community为123的路由,并将weight值改为123。
BGP reflector:BGP反射器
159
封装 L2-IP-TCP-BGP-FCS
BGP版本:
BGPv4 只为ipv4路由
BGPv4+ 为非ipv4协议路由
BGP运用路径之一:
企业通过两家ISP访问外网-通过明细路由进行精确选路(比如不同网段走不同的出口)
AS:自制系统(属于相同组织及拥有相同的管理标准)–一个园区网
向IANA申请AS号
区域:2个字节
0-64511 公用AS 全球唯一
64512-65535 私有AS
BGP路由协议传递路径+属性
mpls ldp explicit-null 显示空设置,用于MPLS TE流量工程 EXP字段
GP as-override和allow-as-in区别和作用:
GP as-override和allow-as-in实现的效果差不多,但是有些许差别。应用场景就是当客户网不同的site端属于相同AS,要跨越SP网络时传递路由的问题。
1、相同AS的 ap-path因为防环作用,导致数据包丢弃。故而CE两边收不到对方的路由条目。
解决方式:
allow-as-in配置:效果就是收到的路由避开做AS号检查,即使包含了自己的AS号也认为是一条合法路由。
as-override配置:效果也是CE1和CE2能相互ping通,不过prefix的AS_PATH里,PE再把路由传给CE的时候,把origin的CE AS号修改成了SP网络的AS号。对方CE收到自然也就能通过AS_PATH检查了。
sdm prefer dual-ipv4-and-ipv6 default 交换机上启用IP高级特性ipv6的命令–敲上后得保存重启!然后才能敲ipv6的相关命令。

发布者

小挨踢

一名89年出生的女网络工程师的博客,20180319小挨踢的博客来啦!

《CCIE BGP知识点总结》上有1条评论

发表评论