BGP 是唯一一个用来处理像因特网大小的网络的协议,也是唯一能够妥善处理好不相关路由域间的多路连接的协议。
1. BGP特征1) BGP是一种域间路由选择协议(IDRP),自主系统号是一个16位的数字,其取值范围为1~65535,64512~65535的AS号保留给私有:
2) 在不同自主系统中的路由器之间运行BGP时,被称为外部BGP(EBGP);在位于同一个自主系统中的路由器之间运行BGP时,被称为内部BGP(IBGP);
3) EBGP通常彼此直接连接的,TTL值默认值为1;IBGP路由器无需直接连接,但邻居的建立需要IGP,传输是不需要IGP的;
4) BGP路由器只需发送增量更新,BGP发送存活消息;
5) 获悉外部网络的方式:将所有BGP路由重分布到IGP;在AS的所有路由器运行IBGP;
6) BGP维护:优化;与IGP同步;下一跳可达;
7) 运行IBGP的路由器从邻居学到的路由不会传给其它的路由器;
8) BGP水平分割,只有优化的路由才有可能传播;
2. BGP消息类型1) 打开消息(open):包含hold time和BGP路由ID;
2) 存活消息(keeplive):三倍于hold时间;
3) 更新消息(update):在BGP***的路由才能更新;
4) 通知消息(notification):BGP路由出错和BGP连接被管理性关闭;
3. BGP状态1) Idle:查找路由表,路由器执行资源初始化,发起一个TCP连接,并且倾听远程BGP
2) Connect:找到路由表进行TCP的三次握手,TCP连接成功转到Open sent状态,如果失败,转到idle重新连接;
3) Open sent:打开信息发送报文;
4) Open confirm:收到对方发来的open消息,邻居关系协商完成;
5) Established:最终状态。
4. BGP属性1) 公认属性:公认属性是所有厂商BGP实现都必须能够识别的属性,公认强制属性必须出现所有BGP路由更新中;公认自由决定属性可以不出现在BGP更新中;
2) 可选属性:非公认属性被称为是可选的,可选属性可以是传递的或非传递的;
3) BGP定义的属性:公认强制属性;公认自由决定的属性;可选传递属性;可选非传递属性;
4) AS路径属性:一种公认强制属性,用来避免环路;
5) 下一跳属性:BGP中的跳指的是AS,而不是路由器,对于另一个AS中的网络而言,下一跳是前往该网络的路径中,下一个AS的入口IP地址;
6) 源头:源头是公认强制属性,它定义路径信息的源头,指明路由是通过什么方式学到的。
n IGP:路由在起始AS的内部;
n EGP:路由是通过EGP获悉的,在BGP表中用e表示,例如:重分布;
n 不完全:路由的源头未知或是通过其它方法获悉的,例如:重分布或静态路由过来的;
7) 本地优先级:本地AS到其它AS多条路径优先选一条路径,默认本地优先级值为100,值越大,优先级越高;
8) 共同体:一种用于过滤入站和出站路由的方法;共同体是可选传递属性,如果路由器不能识别共同体,则将把它留给下一台路由器去处理;如果路由器能够识别共同体,则必须对其进行配置,使之传播共同体,否则共同体将被丢弃;
9) MED(多出口鉴别属性):用于向外部邻居指出进入AS的***路径。当入口有多个时,AS可以使用MED来动态地影响其它AS如何选择进入路径,MED是唯一一个可影响数据如何进入AS的属性,MED只在EBGP传递,MED值越小,路径就越优;
注意:MED影响进入AS的数据流,而本地优先级影响离开AS的数据流。
10) 权重(Cisco专用):是路由器的出口,而本地优先级属性指AS出口,权重属性是在路由器本地配置的,不会传播给任何其它路由器,只有本地进行传递,值越大,优先级越高,路径越优;取值范围0~65535,路由器通告的路径的默认权重值为32768;
5. 路由选择决策过程1) ***权重***路由器;(Cisco专用,只用于当前路由器)
2) 选择本地优先级***的路由;(本地优先级用于AS内部)
3) 优先本地始发的路由:本地network,重分布或IGP中需要配置汇总的;(当前路由器通告的路由的下一跳为0.0.0.0)
4) 选择AS路径最短的路由;
5) 选择源头编码最小的路径(IGP<EGP<不完全);
6) 选择MED最小的路径:只有在通过两条路径得到***个AS才进行MED比较,任何自治域,联盟体都会被忽略;
7) EBGP优于IBGP;
8) 前往BGP下一跳最短的路径;
9) EBGP,如果在路由器上配置max-paths 1~16;
10) 选择最老的路由;
11) 路由器ID最小的路由;
12) 如果路由是从路由反射器上学到的,优先cluster-id最小的路由(其实最终比较的是cluster-list);
13) 选择邻居IP地址最小的路由。
6. 配置BGP1) 对等体组:BGP对等体组是一组采用相同更新策略的BGP邻居;
2) 对等体组的名称只在当前路由器上有意义,而不会传给其它路由器;
3) 在路由器上,只能配置一个BGP实例;
4) 当IBGP邻居之间有多条路径时,使用环回接口地址来建立IBGP会话;
5) BGP不执行负载均衡,路径是根据策略而不是带宽选择的,BGP只选择一条***路径,neibhgor ebgp-multihop,可以在自主系统之间的两条路径上进行负载均衡,并提供了冗余性;
6) 使用命令auto-summary启用BGP汇总后,所有重分发而来的子网都将汇总成分类网络,然后加入到BGP表中;
7) 在同步被禁用的情况下,BGP可以使用从IBGP邻居获悉且没有出现在本地路由选择表中的路由,并将其通告给外部BGP邻居;
7. 重置BGP会话1) Cisco IOS软件仅将变更应用于修改BGP策略配置后收到或发送的更新。由新的过滤实施的新策略仅被应用于修改策略后收到或发送的路由;
2) 三种触发更新的方法:
硬重置:如果BGP会话被重置,则通过这些会话收到的所有信息都将失效,并从BGP表中被删除,同样远程邻居检测到邻居处于down状态后,也将把收到的路由作废。过30~60秒后,自动重建BGP会话,并再次交换BGP表,但需要经过重新过滤器的检查。然而,重置BGP会话将中断分组转发;
软重置:
BGP出站软重置:clear ip bgp soft out的路由器不会重置BGP会话,而是创建一条新的更新,并将整个BGP表发送给指定的邻居;在需要修改出站策略时,强烈建议使用该命令;但如果要修改入站策略,使用她将没有任何帮助;
BGP入站软重置:neighbor [ip-address] soft-reconfiguration inbound告诉BGP进程保存从指定邻居那里获悉的所有更新;clear ip bgp soft in 让路由器使用存储的未过滤表来生成新的入站更新,并将新的结果加入到BGP转发数据库中。
路由刷新:动态的入站软重置
只需在特权模式下使用命令Clear ip bgp {*|neighbor-address} soft in即可。