(华为设备)

一、BGP介绍
EGP协议,实现AS间互联的协议,主要特点是不主动发现路由,而是管理员主动发布路由,BGP仅用来传递,BGP设计了诸多丰富的路由属性,利于路由管理和控制。

二、协议特点
1、是基于路径矢量的EGP协议,支持维护大量路由信息。
2、支持认证和GTSM特性保证网络安全性。
3、提供了丰富的路由策略和路由属性
4、设计了路由衰减特性,避免路由震荡影响网络质量和设备性能,提高了网络稳定性。
5、采用TCP(DP179)协议,确保数据传输可靠。
6、BGP不支持路由自主发现,需手动引入。
7、AS间路由不完全信任,设计了诸多选路原则。
8、对于特殊场景,设计了多种技术。例如邻居数目众多场景,设计了按组打包技术。

三、BGP协议核心要素
1、BGP报文,状态机,邻居建立过程。
2、BGP属性,发布原则,选路原则。
3、路由引入、路由更新、路由防环
4、反射器,联盟。
5、BGP协议基础概念。

四、BGP协议中的常见概念
1、自治系统AS
定义:指一个实体管理下拥有相同选路策略的IP网络。BGP为每个AS分配一个AS号。
# AS号:2字节AS 取值1-65535,私有范围64512-65534
4字节AS 取值65536-43亿,4字节兼容2字节。

2、BGP角色
		BGP路由器(也称BGP发言者),BGP邻居(也称BGP对等体)
		
	3、BGP邻居类型
		AS内BGP邻居:IBGP
		AS间BGP邻居:EBGP
		
	4、BGP路由ID
		缺省选择设备上loopback接口IP最大的做路由ID
		其次,物理接口IP最大的做路由ID
	
	5、BGP定时器
		保持时间:缺省180s	# 协商过程默认选择最小的
		保活时间:缺省60s

五、BGP报文、状态机、建立过程。
报文:
1、open报文:TCP连接后第一个报文,用于建立BGP邻居建立。
2、keepalive报文:用于确认建立和保活BGP连接。
3、update报文:用于发布和撤销路由。包含可达路由,路径属性。
4、route-refresh报文:当本地改变路由策略后,请求邻居重新发送路由信息,支持路由刷新的设备才响应。
5、notification报文:检查到错误信息和报文后发送此报文,用于中断BGP连接。

状态机:
		1、空闲状态idle:初始状态,此状态下拒绝任何邻居发送的连接请求。
		2、连接状态connect:此状态下BGP启动重连定时器,等待TCP连接完成。
											连接成功:关闭定时器,发送open报文并进入open发送状态
											连接失败:进入active状态。
											定时器超时:停留当前状态,继续尝试TCP连接。
		3、活跃状态active:此状态下总是尝试建立TCP连接。连接成功同上,连接失败同上。超时转回连接状态。
		4、open报文发送状态opensent:等待接收对方发送的open报文,检查AS号、版本、认证、路由ID、协商保持时间。
											检查通过:发送keepaive报文转至open确认状态。
											检查失败:发送notification报文,转至idle状态。
		5、open确认状态openconmfirm:此状态下等待对方发送keeplive或notification报文。前者进入连接状态,后者进入idle状态。
		6、连接状态established:邻居已建立,可以发送keepalive、updata、route-ref、notif报文进行交互。收到notifi报文后进入idle状态。

		建立过程:
		1、会话建立:idle状态下收到start事件后转至connect开始建立TCP会话。
		2、邻居建立:TCP家里完成后通过交互oepn和keepalive完成邻居建立。

六、路由产生方式与路由聚合方式

产生方式:import:按照协议类型引入到BGP路由表中。
					  network:手动发布将路由表中存在的路由引入到BGP路由表中。
	
	聚合方式:自动聚合:只聚合本地import引入的路由,只能聚合为主类网络。	特点:抑制明细,下一跳更改为聚合路由器,不继承AS_Path,起源为?
				      手动聚合:聚合BGP路由表中的路由。特点:默认不抑制明细(可配置),下一跳为聚合路由器,不继承AS_Path(可配置),继承最差起源属性。
				      静态聚合:network,直接发布聚合网段
	聚合产生环路解决:聚合后添加AS_Set属性,并添加聚合属性。

七、BGP发布原则、BGP属性、选路原则、更新方式

发布原则:
						  1、BGP只将BGP中最优路由发布给邻居。
						  2、EBGP学习的路由发布给所有BGP邻居,IBGP学习的路由仅发布给EBGP邻居。
						  3、增量发布,每次更新仅更新新增的路由信息。
		
		BGP属性:
						1、公认必遵:netxhop下一跳属性,origin起源属性、AS_Path路径属性(路由经过了那些AS,AS有两种类型,AS_Seq和AS_Set)
						2、公认任意:local_pri本地优先级属性,聚合标识属性(告知下游路由器出现了信息缺失)
						3、可选过渡:团体属性,聚合属性(表明谁是聚合路由器)
						4、可选非过渡:MED、簇列表(反射器间防环)、始发路由器ID(反射器内防环)
						团体属性:分为公认团体属性和扩展团体属性
								公认团体属性:internet属性  缺省属性,此属性可路由可以通告给所有BGP邻居
														 No_Export属性:收到此属性的BGP路由器,不将路由信息发布给其他AS。
														 No_Advertise属性:收到此属性的BGP路由器,不讲路由信息发布给其他BGP邻居。
														 No_Export_Subconfed:联盟中使用,不通告给其他子AS
								扩展团体属性:可以采用aa:nn表示,或团体号表示。aa通常用作表示AS号,nn用作自定义的团体属性标识。长度4字节。
		
		选路原则:
						  1、协议优先级最大的优先				# 华为私有属性,本路由器有效。
						  2、本地优先级最大的优先				# BGP路由收到两个IBGP邻居发来去往同一目的的路由,优选本地优先级大的。AS内有效
						  3、手动聚合>自动聚合>network>import>邻居学来路由
						  4、AS_Path路径最短的
						  5、起源属性最好的 igp>egp>incomplete
						  6、来自同一AS,优选MED值小的路由	# BGP路由收到两个EBGP邻居发来同一目的的路由,优选MED小的。两个AS间有效
						  7、EBGP学来的由于IBGP学来的路由
						  8、优选去往下一跳IGP开销小的。
						  9、优选簇列表短的
						  10、优选始发ID小的 / 路由ID小的
						  11、优选邻居地址小的
		路由更新方式:
						  BGP仅存在触发更新一种方式。
						  # 对于首次更新的路由则立即发送更新,对刚更新过的路由IBGP等待5秒,EBGP等待30秒再此发送更新。(与路由衰减不同的机制)
						 
							举例:
							1、0秒时,学习到一条1.1.1.1,立刻发送UPDATE报文。
							2、1秒时,1.1.1.1 和 2.2.2.2路由同时发生变化,立刻发送update报文对2.2.2.2进行更新,该update报文中不含有1.1.1.1路由。
							3、30秒时(如果EBGP对等体),发送update报文对1.1.1.1路由进行更新
							注1:这个等待时间不是根据update报文进行计算的,而是根据路由前缀进行计算的。
							注2:如果是路由删除,会立刻发送update报文,不受此定时器限制。
							注3:对于新增路由,删除路由,都不需要等待时间,只有对于刚更新的路由,需要这个定时器
							注4:路由衰减是针对,不断的更新和删除的路由进行应对的机制。

八、BGP路由信息处理过程

1、从BGP邻居收到路由信息时,进行入策略过滤,计算路径,为每条前缀确定最佳路径。
		2、得出最佳路径后存储到BGP路由表,然后提交IP路由表用作安装考虑。
		3、将匹配出方向策略的最佳路由封装在update中,发送给对端BGP邻居。

九、BGP路由防环、BGP安全

防环:AS间采用AS_Path防环,AS内采用IBGP水平分割。(由于采用水平分割,需要建立IBGP邻居全互联)

	  	BGP安全:认证(MD5认证,仅为TCP认证,秘钥认证,为TCP何BGP报文认证),GTSM(检查IP报文的TTL是否在预设范围内,不符合的直接丢弃或允许)

十、反射器与联盟

反射器:
			基本概念:
					路由反射器:用于在IBGP邻居间反射,用集群ID标识反射器,默认使用路由ID作为集群ID。所有反射配置都在反射器上配置。
					反射客户机:由反射器指定的客户端,普通的IBGP路由器。
					非反射客户机:没有被反射器指定的客户端
					反射簇:由集群ID相同的反射器及客户机组成的一个路由反射簇
			反射原则:
					1、RR从客户机学来的路由反射给所有非客户机和其他客户机。
					2、RR从非客户机学来的路由反射给所有客户机与EBGP邻居。
					3、RR只反射最优路由
			部署原则:反射器与客户机需是IBGP邻居关系,反射器与非客户机需要组成全互联关系。
			防环机制:反射器内使用起源ID防环,反射器间使用集群ID列表防环。
					起源ID:反射器收到一条没有起源ID的路由,则添加一个本AS内起源该路由的BGP路由器的路由ID,传递过程不修改。
					簇ID列表:反射器反射一条路由时会添加簇列表属性,将自身的簇ID添加最前边,其他反射器收到后,发现相同则丢弃,不同则接收。
			部署场景:反射器备份、同级反射器、分级反射器

		联盟:
			基本概念:
					联盟AS:通常称为大AS,可在联盟AS内创建多个成员AS,对其他AS来说,本AS路由器都在联盟AS内部
					成员AS:通常称为小AS,隶属联盟AS,不能传出联盟AS,对其他AS不可见。
					联盟EBGP:成员AS间的BGP邻居
					联盟IBGP:成员AS内的BGP邻居
			传递原则:
				1、从EBGP学来的路由发布给所有联盟IBGP和联盟EBGP
				2、从联盟IBGP学来的路由传递给所有联盟EBGP和EBGP邻居
				3、从联盟EBGP学来的路由传递给所有联盟EBGP、联盟IBGP和EBGP邻居
				4、只传递最优路由
			属性传递:
				next-hop:从ebgp学习的路由传给联盟BGP不修改下一跳。
								 从联盟BGP学习的路由更新给联盟EBGP不修改下一跳
			防环机制:
					使用小括号的AS进行防环,当进行选路时,小括号内AS当做0个AS来处理。

十一、联盟和反射器的的区别
1、都支持多层次,反射器支持多级反射,联盟支持成员AS内配置反射器。
2、策略控制都很方便,联盟要更灵活。
3、迁移复杂度,反射器不需要改变拓扑,所以很方便,联盟要复杂一些。
4、能力支持,联盟需要路由器支持联盟能力,反射器仅RR需要支持反射器能力。
5、IGP扩展,反射器需要单一的AS,联盟支持单一或分开的IGP。
6、部署经验上,反射器更广泛,联盟较少。
7、AS合并,联盟支持将一个AS作为子AS加入联盟AS中。

十二、路由衰减
作用:抑制不稳定的路由,降低对设备性能的影响。
定义:当发生一条路由频繁撤销和更新时,则表明发生了震荡。会引起设备频繁计算消耗大量CPU资源
原理:
1、对于发生震荡的路由每次震荡便增加1000的惩罚值,达到不可用阈值后将抑制此路由,不加入路由表也不发送更新报文
2、每经过一段时间惩罚值降低一半,达到可使用阈值后,路由重新加入路由表进行计算和更新。
3、只对EBGP震荡的路由有效,对IBGP震荡的路由无效。