BGP

 

     BGP特性

(1)边界网关协议BGP 是一种自治系统AS之间交换路由信息,
(AS内部运行IGP(OSPF ISIS RIP 静态路由)保证没有环路)并选择最佳路由的
距离矢量路由协议确保没有环路。
 (2)BGP用属性描述路径,也就是AS之间的传播方式,给路由添加非常丰富的属性。
同时BGP的路由通过携带AS的路径信息解决环路问题IGP(OSPF,ISIS)通过SPF算法防环,
路由每经过一台设备,路径就会带上AS标识
 (3)BGP使用TCP179号端口作为传输协议,并通过leeplive报文检验TCP连接。
可以通告IGP或静态路由提供TCP的IP可达性;BGP和IGP的邻居建立是不一样的,IGP设备建立邻居都是直连的
IGPTTL值通常为1  当两台设备直连加入第三台设备无法互通,因为TTL值变为0会丢弃报文。
但是BGP可以实现远距离(非直连)邻居的建立,建立邻居前提是互相可以通信。
 (4)BGP拥有自己的邻居表,路由表,IP表
         1邻居表    :对等体邻居清单列表
dis bgp peer 查看建立了多少组邻居 
         2路由表    :BGP路由信息库,保函本地BGP Speaker选择的路由信息 dis bgp Rrouting-table 查看BGP路由信息代表BGP学习到的路由信息
         3IP路由表:全局路由信息库,包括所有IP路由信息 dis ip routing-table
 (5)
为了保证BGP免受攻击 BGP采用以下两种验证 
         1MD5验证:TCP建立连接进行密码验证 
         2keychain验证:TCP连接进行密码验证同时也对报文进行验证
         3BGP只采用增量更新或者触发更新,只发送更新的路由信息减少带宽
         4BGP采用路由聚合和路由衰减减少路由震荡
         5BGP易于扩展,能够适用新技术的应用


     BGP术语

  (1)BGP对等体peer:当两台设备建立基于TCP连接,并互相交互报文,他们之间就成为对等体或者邻居。
若干采用相同策略的对等体称为对等体组
  (2)自治系统AS:由同一技术所管理的区域,使用统一选路策略的一些路由器的集合,每个自治系统都有独自的编号
由IANA统一发放,自治系统编号范围为1-65535(注册的因特网号)1-64531为因特网编号,65532-655325私网编号
查看申请的AS号https://dnslytics.com/bgp/cn
    (3)   BGP邻居类型
          1IBGP运行在同一个AS内部的BGP
          2EBGP运行在不同AS的BGP
  (4)网络层可达性信息NLRI,是BGP更新报文的一部分,用于列出该路径到达目的地的路由集合,由一个或者多个前缀的二元组前缀组成

 

 (5)IBGP水平切割:通告IBGP学习到路由信息不能通告给其他IBGP邻居,主要防止产生环路
1可以传给2,2可以传给3,3不可以传给4  路由反射器可以让2传递给4,或者2和4直接IBGP邻居关系,或者做BGP联盟

 
 (6)BGP五种报文:
               1 open报文:负责与对等体建立邻居关系,保持时间180s           
               2 keepalive报文:在对等体之间周期性发送用于维持邻居关系 发送周期60s
               3 Update报文:用于对等体之间传递路由信息,报文包含路由是否可达,撤销路由等
               4 Notification:BGP对等体检测到错误,发送给对方
               5 routing-refresh:刷新路由 ,报文主要包含地址,单播还是组播,占用带宽,导致业务中断,慎用
   1 TCP建立连接后发送OPEN报文
   2 建立连接后,路由信息发生变化,发送UPdate报文给对等体告知路由信息
   3 稳定后发送keepalive维持对等体关系,保持BGP的有效性
   4 路由信息发生错误发送NOtication告知对等体
   5 route-refresh告知对等体自己支持刷新路由的功能

 

 (7)BGP的邻居状态,对等体建立过程中,常见的三个状态为
         1 idle:请求连接,BGP初始状态
         2 alive :尝试TCP连接  BGP的中间状态
         3 established,对等体交换Update报文,route-refresh报文,notication,keepalive报文
         4 BGP对等体之间都成为estabished状态,才算BGP建立成功
         5 loopback口:物理接口down掉   不影响loopback口。

 BGP路径属性

 

 

   (1)BGP属性分类
             1 公认必遵:如果路由称为合法的BGP路由 必须携带以下属性:AS-path Origin NExt-hop
             2 公认任意:不是必须存在Upadte消息中,
             3 可选过渡:不一定所有BGP路由都支持或者识别这个属性,但任然发送给邻居
             4 可选非过度:这个属性不能识别,不发送给邻居   MED(cost)
1 origin 起源属性:定义路径的来源,标记路由怎么成为BGP路由,标记为I是network进来的  标记为?是import-router进来的

 

 

 2 AS-path AS路径信息属性:用于选路,记录经过的AS


 

 

 AS4-AS2-AS3-AS5-AS4属性信息包含本身的AS号 直接丢弃信息,防止环路
3 local-pre 设置本地路由BGP优先级:判断最佳路径,仅能在IBGP之间作用,不通告给其他AS的路由器

 

4 MED cost值 开销值:仅在相邻的AS之间传递,收到此属性的AS不通告给第三个路由,用于选路

 

 5 Community 团体属性:限定路由的传播范围,打标记,相同的标记统一管理。
                 1 公认团体属性:no-export no-adverser 打上这个属性 路由器不传递给其他设备
                 2 扩展团体属性:nn:xxx 自定义的
 6  AGGREGATE原子聚合属性:多个路由聚合成一条路由,下一台路由删除明细路由,更新一条带原子聚合路由信息的路由

 BGP路由引入和发布策略

(1)BGP本身不发现路由,因此需要其他路由引入到BGP路由表,实现AS间的路由互通
(2)当一个AS需要将路由发送给其他路由时,可以使用路由策略过滤或者设置路由属性MED进行选路
(3)引入路由有两种方式network和imoport
                ?   1 import:按协议类型引入,将OSPF和ISIS协议中的路由引入到BGP路由中,还可以直连路由和静态路由
                i      2 network:逐条IP路由条目引入,比import更精细,准确性和优先级更高。
  (4) BGP路由信息封装在UPdate报文中传递,BGP在邻居关系建立后通告路由。
(5)Update包含以下信息:
                1   NLRL 网络层可达信息 用来公布IP前缀和和前缀长度
                2   路径属性 防环
                3   撤销路由 无法到达的路由的前缀和前缀长度
(6)BGP通告路由规则
            1  仅将自己最优的路由发送给邻居。
            2  通告EBGP邻居学习到最优路由发送给所有BGP路由
            3  通告IBGP学习到的最优路由不发送给其他路由
            4  IGB和BGP同步  华为默认关闭,永远不会开启。解决路由黑洞
            5  路由黑洞:A由一条路由信息,传递给B,B和D为IBGP邻居传递给D,此时,C没有路由信息。
反之,E建立连接过程中,先找到D,D因为递归查询找到C,此时C没有路由信息会把数据丢掉,导致路由黑洞。
                 解决方案:C也建立BGP

   (7)BGP路由器通告给邻居后,每个BGP邻居会进行路由优选,路由选择有三种情况
           1 该路由是到达目的的唯一路由,直接优选
           2 对于到达同一目的的多条路由,选择优先级最高的
           3 对于到达同一目的多条优先级相同的,必须用更细的策略选择一条最优的。

 (8)路由选路原则
          1 优选协议首选值(Preval)最高的路由,华为设备特有,在本地无效
          2 优选本地优先级(Local-Pre)最高的路由
          3 依次优选 ,手动聚合,自动聚合 import引入  network引入
          4 优选As-path最短的
          5 依次优选起源属性(Origin)为IGP,EGP,incomplte
          6 优选MED值低的。
          7 依次优选EGP路由 IGP路由
          8 优选routerID小的路由
          9优选从较小的IP adress对等体学习到的路由。
 (9)路由衰减:用来解决路由器不稳定的问题。设置惩罚值,每次路由震荡增加惩罚值,15min增加到一定阈值不使用该路由,15min内路由没有发生震荡惩罚值减半
               1 路由器不稳定的主要表现是路由震荡,指某条路由反复出现和消失。
               2 发生路由震荡时,BGP对等体会反复发送Update报文确定连接,严重损耗设备CPU和带宽
               3 BGP采用路由衰减来减少路由震荡所造成的影响。
 (10)路由聚合只能聚合通过Import引入的路由信息,同时聚合路由时,会隐藏明细路由导致路由环路
                    解决方案:加入一条属性as-set,保留原有的AS-path

 (11)BGP反射器:因为水平切割机制,IBGP中的远距离设备无法到达,全互联导致会话过多占用带宽,
                 1  IBGP种有三种角色:
                                1 路由反射器 RR:路由反射器和他的客户机做一个集群
                                2 客户机:不需要建立BGP关系
                                3 非客户机:非客户机之间需要建立全互联
                 2  多台RR可能造成环路,此时可设置集群cluster防止环路的产生

  (11)BGP联盟:将大的AS分成多个小AS,解决水平切割机制导致的互联问题。这些小AS称为成员AS
成员AS之间需要EBGP连接,他们不需要全互联,但是IBGP同时需要
             1 BGP联盟种AS_PATH有四种
                         1 AS_set:由一系类AS号无序组成
                         2 AS_sequence:由一系类AS号有序组成
                         3 AS confed_set :只能在本地联盟传递
                         4 AS confed_sequence:只能在本地联盟传递

             2 联盟采用AS_confed防止环路,联盟内的AS-path无属性变化
                         1 联盟内的EBGP会话,子AS号会添加到AS confed_sequence前面
                         2 联盟内的IBGP会话,不修改AS属性
                         3 外部AS会话,子AS号会在AS_path种删除。大AS号会添加到前面。
            3 对于外部对等体来说,联盟内部的结构是不可见的


   

posted @ 2022-03-08 12:10  付华建  阅读(355)  评论(0编辑  收藏  举报