BGP双栈原理Advance&Internet设计

BGP大规模路由应用:
问题:BGP连接数量过多,配置过于复杂
解决:简化配置,减少路由条目,提升设备性能等
路由聚合(Aggregation)
对等体组(Peer Group)
团体属性(Community )
路由反射(Route Reflection )
BGP联盟(Confederations )

BGP路由聚合:
IPv4下:自动聚合,将无类路由聚合成有类聚合(只能聚合引入(import)的路由 )
手动聚合,CIDR;可跟丰富的属性:
例:Aggregate 12.1.1.0 24?
as-set //把明细的路由的AS号码发往AS-set
attribute-policy //设置聚合路由的属性
detail-suppressed //抑制所有明细路由的发布
origin-policy //只有匹配了起源策略的明细路由才会发布聚合路由
suppress-policy //有选择的抑制明细路由,向外通告部分明细路由
IPv6下:手动聚合

路由聚合的特点:
三大协议全部支持路由汇总
OSPF:域间路由汇总、域外路由汇总
ISIS:level-1-2上路由汇总,level-1-2向level-2区域通告汇总路由
BGP路由聚合

路由聚合的好处:1.减少路由表的规模
2.抑制明细路由,只发布汇总
3.明细路由发生改变对汇总路由无影响

对等体组:(Peer Group)是一些具有某些相同策略的对等体的集合
场景:要和多个部署相同策略的路由器建立邻居
作用:可以简化BGP的配置,降低管理难度,同时减少路由性能损耗
当一个对等体加入对等体组中时,此对等体将获得与所在对等体组相同的配置。当对等体组的配置改变时,组内成员的配置也相应改变
对等体组中的单个对等体也可以配置自己的发布路由与接收路由的策略
配置:
AS100有100个路由器个RI建立EBGP邻居关系
R1:peer X.X.X.X as 100
peer X.X.X.X connect looback 0
peer X.X.X.X EBGP-max-hop 255
使用对等体组:
group huawei external/internal //创建对等体组
peer huawei as 100
peer huawei connect looback 0
peer huawei EBGP-max-hop 255
peer X.X.X.X group huawei 将邻居套入模板
peer X.X.X.X as 100
针对100个邻居做同样的路由策略时:
peer huawei route-policy x.x.x.x import/export

BGP按组打包:将所有拥有共同出口策略的BGP邻居当作是一个打包,每条待发送路由只被打包一次然后发给组内的所有邻居
作用:提高BGP发生数据包的性能
原先不按组打包:有10000条路由发送给10个邻居,10000条路由封装成数据包发给10个邻居,每个邻居都需要封装(先检查针对邻居的路由策略,确定相应的属性)
使用按组打包后:前提条件:针对邻居,必须具备同样的出口策略
使用了按组打包后,只检查一次出口策略,就发给了邻居

BGP属性特点—团体(COMMUNITY):用于标识具有相同特征的BGP 路由(默认BGP不通告团体属性,开启:peer 1(name) advertise-community)
作用:类似于路由标记
分类:
1.公共团体属性:标识路由传递的范围(全网、AS内、子AS内、本地)

   2.自定义团体属性:路由标记
   3.扩展团体属性:RT:VPN路由依靠RT导入VPN实例表中,决定VPN路由的接收(MPLS VPN的场景)

   Ip community -filter 1 permit 100:1   // community过滤器

路由反射器:RR:允许将从IBGP邻居学习到的路由发送给特定IBGP邻居,打破了IBGP邻居关系全互联的需求,减少IBGP会话数量(打破通告原则三)
解决BGP全互联问题
*RR和客户机、非客户机的操作全部在RR上,只有RR能识别哪些是客户机或非客户机
RR反射IPv4路由的时,下一跳不改变
VPNv4路由,下一跳修改为本地的更新源
设备角色:
RR:反射器,允许把从IBGP 对等体学到的路由反射到其他IBGP对等体的BGP设备(打破水平分割原则)
客户机(Client):只与RR形成反射邻居关系的IBGP设备。在AS内部客户机只需要与RR直连 peer X.X.X.X(RR地址) reflect-client 配置为客户机
非客户机(Non-Client):既不是RR也不是客户机的IBGP设备。在AS内部非客户机与RR之间,以及所有的非客户机之间仍然必须建立全连接关系

    始发者(Originator):在AS内部始发路由的设备。Originator_ID属性用于防止集群内产生路由环路
    集群(Cluster):路由反射器及其客户机的集合。Cluster_List属性用于防止集群间产生路由环路(reflector cluster id 1.1.1.1)

    在一个AS内,其中一台路由器作为路由反射器RR(Route Reflector),其它路由器作为客户机(Client)。客户机与路由反射器之间建立IBGP连接。路由反射器和它的客户机组成一个集群(Cluster)。路由反射器在客户机之间反射路由信息,客户机之间不需要建立BGP连接
    RR的配置方便,只需要对作为反射器的路由器进行配置,客户机并不需要知道自己是客户机

路由传递规则:
RR从客户机学到的路由可以传递给客户机和非客户机
从非客户机学到的路由可以传递给所有的客户机
从EBGP对等体学到的路由,发布给所有的非客户机和客户机

防环机制:
RR防环规则:
起始者id(Originator_ID):RR收到路由之后,会打上发布者的router-id作为起始者id
集群列表(Cluster_List):每个RR都会拥有一个集群id(不配置时默认用router-id),当RR反射路由时,就会把集群id放到集群列表(与AS-path作用相似);当RR收到BGP路由时,首先检查集群列表,如果发现有和自己完全相同的集群id,丢弃该路由

备份RR:主要是为了解决单点故障
相同集群中的路由反射器要共享相同的Cluster_ID(VRP需要使用命令reflector cluster-id给所有位于同一个集群内的路由反射器配置相同的Cluster_ID)
在冗余的环境里,客户机会收到不同反射器发来的到达同一目的地的多条路由,这时客户机应用BGP选择路由的策略来选择最佳路由
Cluster_List的应用保证了同一AS内的不同RR之间不出现路由循环

同级反射器:一个AS中可能存在多个集群,各个RR之间是IBGP对等体的关系
一个骨干网被分成多个反射集群,每个RR将其它的RR配置成非客户机,各RR之间建立全连接。每个客户机只与所在集群的RR建立IBGP连接。这样该自治系统内的所有BGP路由器都会收到反射路由信息

分级反射器:将较低网络层次的RR配成更高网络层次中RR的客户机

BGP联盟:
使用场景:特大型BGP网络
联盟把一个AS化成多个子AS,子AS对外界表现为一个整体,子AS之间建立联盟EBGP邻居关系,子AS内部建立联盟IBGP邻居关系;子AS内部设备数量过多,可以采用RR

      配置联盟后,原AS号将作为每个路由器的联盟ID
      原有的IBGP 属性,包括Local Preference属性、MED属性和NEXT_HOP属性等;联盟相关的属性在传出联盟时会自动被删除,即管理员无需在联盟的出口处配置过滤子AS号等信息的操作

防环机制:

      在AS-path中为了支持联盟,新增AS_Confed_Sequence、AS_Confed_Set
      AS_Confed_Sequence:联盟内的有序AS列表
      AS_Confed_Set:联盟内的无序AS列表,用于联盟内路由聚合防环

      联盟内部的成员AS号对于其他非联盟AS是不可见的,所以路由在从联盟内部发送到其他非联盟AS时,联盟成员AS号被剥离

配置:

        不管是联盟EBGP还是联盟IBGP路由器都把它当成IBGP邻居关系
        Next-hop:从真正的EBGP邻居学来的路由通告给联盟IBGP,联盟EBGP下一跳不会改变;从联盟向外界传递路由信息,下一跳会改变
        AS-path:联盟EBGP之间通告路由经过的联盟的成员存放在AS_Confed_Sequence中;从联盟向外界通告路由时,丢弃所有的联盟AS-path列表,只有AS_Sequence中添加联盟AS号码
        联盟内子AS间MED值无效,因为在联盟内不管是联盟EBGP还是联盟IBGP路由器都把它当成IBGP邻居关系

BGP路由反射器和联盟的比较:
反射器 联盟
不需要更改现有的网络拓扑,兼容性好 需要修改逻辑拓扑,重新划分区域,对现网改动较大
配置方便,客户机不知道自己是客户机;只需要对RR进行配置,客户机不需要做任何其他的操作 所有设备需要重新进行配置,且所有设备必须支持联盟功能
集群与集群之间仍然需要全连接(RR与RR间需要IBGP全互联) 联盟的子AS之间是特殊的EBGP连接,不需要全连接
在大型网络中应用广泛 应用较少

BGP扩展特性:
BGP安全特性:
MD5:BGP认证,携带在TCP的option选项中
BGP的MD5认证并不能对BGP报文认证,它只是为TCP连接设置MD5认证密码,由TCP完成认证。如果认证失败,则不建立TCP连接
配置:BGP视图下:peer X.X.X.X password simple/cipher <1-255>

  GTSM :只要基于IP去传输协议报文的协议都有GTSM功能(OSPF、BGP、LDP)
         使能BGP的GTSM策略后:GTSM通过检测IP报文头中的TTL值是否在一个预先定义好的特定范围内,对IP层以上业务进行保护,增强系统的安全性;对于不符合TTL值范围的报文,默认丢弃(可以设置通过),避免了网络攻击者模拟的“合法”BGP报文占用CPU。该功能与EBGP多跳互斥
         配置:[Huawei-bgp]peer X.X.X.X valid-ttl-hops n        有效范围【255-n+1,】,在配置的范围内才会接受该数据包
         组播报文检查TTL值:只要是组播消息,路由器收到后首先检查TTL值,TTL值必须为1,否则可能会造成全网广播

  限制从对等体接收的路由数量:防止资源耗尽性攻击
                         配置:BGP视图下:peer 12.1.1.1 route-limit <1-300000>              路由信息超过<1-300000>后立即中断邻居关系,30s后重连
  AS_Path长度保护:限制接受路由的AS-path长度(AS_Sequence),直接丢弃AS_Path超限的报文
                          配置:BGP视图下:as-path-limit <1-2000>  

路由衰减(路由惩罚)(Route Dampening):抑制不稳定的路由
使用阈值(Reuse Value):低于该惩罚值时,路由可以加表
抑制阈值(Suppress Value):到达该惩罚值时,路由不能加入BGP或IP路由表
最大上限值(Maximum suppress Value):随着路由震荡,惩罚值会逐渐上升,直到最大值,不再增加
半衰期:缺省每过15分钟,惩罚值就会减少一半
配置:BGP视图下:Dampening 半衰期<1-45> 使用阈值<1-20000> 抑制阈值<1-20000> 最大上限值<1001-20000>

BGP增强特性:
BGP ORF:BGP基于前缀的ORF
路由器使用Route-Refresh消息把自己的入口策略发送给对端,对端根据收到的入口策略构造自己的出口策略,减少发送路由信息的数量,减少链路带宽的消耗
配置:

Active-Route-Advertise:只发送加入IP路由表的BGP路由(只有当BGP路由被成功的安装进IP或IPv6路由表,该路由才能被发送给邻居)
配置:BGP视图下:Active-Route-Advertise

4字节AS号协商能力:
4字节设备如何兼容2字节设备?:
4与4之间建立新会话(New Session)
4与2之间建立老会话(Old Session)
4向2传递路由时AS-sequence变为(23456,23456,23456),明细路由放在AS4-path属性中
2向4传递路由时AS4-path属性不修改,直接传递,将自己的AS号码放在AS-sequence的最左边

4字节AS号定义的角色:
New Speaker:支持4字节AS号扩展能力的对等体
Old Speaker:不支持4字节AS号扩展能力的对等体
New Session:New Speaker之间建立的BGP连接
Old Session:New Speaker和Old Speaker之间或者Old Speaker之间建立的BGP连接

协议扩展:
定义了一种新的Open能力码用于进行BGP连接的能力协商;
2种新的可选过渡属性,AS4_Path和AS4_Aggregator属性;
定义AS_TRANS(保留值为23456)用于衔接2字节AS和4字节AS。

按策略进行下一跳迭代:通过配置路由策略来限制迭代到的路由。如果路由不能通过路由策略,则该路由迭代失败
BGP需要对非直连的下一跳进行路由迭代,但是如果不对迭代到的路由进行过滤的话,可能会迭代到一个错误的转发路径上
配置:[Huawei-bgp]nexthop recursive-lookup route-policy huawei //在路由策略指定该路由的下一跳即可,路由迭代就会迭代到指定的下一跳

BGP高级配置:
配置BGP自动聚合和缺省路由:

            peer X.X.X.X default-route-advertise Conditional-route-match-all  匹配所有路由条目
                                                                       Conditional-route-match-any  匹配任意一条路由条目
                                                                       Route-policy  匹配路由策略
                                        只有满足条件才会下发缺省路由

OSPF下发缺省路由:
1.特殊区域ABR发缺省路由
2.nssa ASBR手动下发缺省路由:nssa default-route-advertise always
3.强制下发
4.非强制下发

配置对等体组:


配置BGP手动聚合:

Internet设计理念:
常见的企业网络拓扑类型:
单归属自治系统(一个出口设备且连接到一个ISP):仅有一个出口设备且只连接到一个ISP;可以不需要配置BGP协议。可在用户边界设备上添加一条默认路由,并宣告到用户自治系统内部
多归属到单自治系统(多个出口设备仅连接到一个ISP):增加了对链路和网络设备的冗余性,一般这种情况下用户网络用的会是私有AS号
若两条链路采用主备的方式,那么也不需要采用BGP。两台出口设备分别向本自治系统内的设备宣告metric值不同的默认路由即可。(若采用OSPF为IGP,外部路由的cost应该采用E2方式,仅考虑外部开销(cost))
若两台路由器采用负载分担方式:
方式一:两台路由器分别向自治系统内(IGP采用OSPF)宣告cost type为E1的默认路由,使得自治系统其他路由器选择距离自己最近的出口路由器到达外部网络。这种情况也可以不使用BGP。但是当两个出口路由器的物理间隔十分大,并且对时延有很高要求时,就可以考虑采取BGP来获取更精细的路由条目
方式二:与ISP设备之间建立BGP连接,从BGP接收更为精细的路由条目,配合上路由策略工具的使用,来达到针对不同目的地址使用不同出口路由的目的
多归属到多自治系统(多个出口设备且连接到多个ISP):不仅增加了对链路和网络设备的冗余性,同时使用了做到了ISP的冗余备份
对于这种自治系统,需要充分考虑到地址空间是否独立于运营商,是否拥有公有AS号等问题
理想情况下,当用户网络拥有独立于ISP的地址空间和公有AS号时,有三种部署方式
方式一:采取主备方式,出口路由器向内部宣告开销不一样的默认路由
方式二:负载分担方式,出口路由器向内部宣告默认路由,仅使用IGP的开销计算机制,由IGP自行决定使用哪一台出口路由器
方式三:部署BGP。考虑与ISP签署的合约,企业本身的业务流量特点等因素,使用各种路由策略工具,如有必要也可以使用默认路由宣告等方式。充分控制企业进和出方向的流量
一般情况下,多归属到多自治系统的网络会考虑部署BGP协议,因为前两种方法不利于路由的控制。但是不是绝对的,需要仔细权衡所得到的好处与增加路由复杂度所带来的代价

接入Internet的方式:
静态接入
双归静态接入:双归到同一个运营商网络
动态BGP:实时跟进运营商网络

什么样的网络需要BGP:
路由规模庞大且无法聚合
跨经营实体时(沟通不便利、信息保密)
一个路由选择域内运行了多种IGP协议
IGP无法提供相应的工具来实施所需策略
多ISP归属网络
…….

潜在危险:
BGP路由劫持:
产生原因:BGP协议里虽然有一些简单的安全认证的部分,但是对于两个已经成功建立BGP连接的AS来说,基本会无条件的相信对方AS所传来的信息,包括对方声称所拥有的IP地址范围
潜在危害:若无条件相信对方发送过来的Update消息,不排除恶意的AS宣告不存在的IP网段,通过修改AS_Path等BGP属性,让其他AS认为这条路径才是到达这个目的网段的最短路径,那么该恶意的AS就能截获到数据流量
不对称路由:
产生原因:不恰当的属性使用或者是路由聚合不合理导致路由精准性不足,导致流量的出方向和入方向不同
潜在危害:首先,不对称流量会使互联网络的流量模型变得难以预测,使得网络基准、容量规划、故障检测及排除变得困难;其次,不对称流量会使链路使用率出现不均衡,某些链路的带宽出现饱和,而其他链路的带宽却得不到有效利用;再次,不对称流量会使出流量和入流量的时延出现很大的差异,这种时延变化(即抖动)会对某些时延敏感型应用(如语音和直播视频)造成损害

BGP网络部署及维护注意事项:

优化BGP能力:
建立对等体会话
路由更新起源
优化路由策略
路由过滤和属性控制
路由聚合

提高BGP可用性:
冗余
流量对称
负载均衡

控制AS内部路由:
非BGP路由和BGP路由之间的交互:
一般情况下,IGP与BGP会有路由的引入。应采用合理的过滤策略,使合适的路由在IGP与BGP之间互相引入
默认路由的控制:
对于默认路由的发放,可以通过策略使默认路由根据某些具体条件来下发默认路由
策略路由:
通过策略路由来优化流量路径

控制大型AS:
BGP按组打包
路由反射器
联盟

设计稳定的Internet:
减少不稳定路由的产生
提升BGP稳定性


版权声明:本文为qq_43704340原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。