BGP 联盟实验

实验拓扑


图 1-1

注:如无特别说明,描述中的 R1 或 SW1 对应拓扑中设备名称末尾数字为 1 的设备,R2 或 SW2 对应拓扑中设备名称末尾数字为 2 的设备,以此类推;另外,同一网段中,IP 地址的主机位为其设备编号,如 R3 的 g0/0 接口若在 192.168.1.0/24 网段,则其 IP 地址为 192.168.1.3/24,以此类推


实验需求

  1. 按照图示配置 IP 地址,R2,R3,R4,R5 分别配置 Loopback0 口地址作为 OSPF 的 Router_id 和 IBGP 邻居地址,地址格式为 X.X.X.X/32,X 为设备编号。R1 上配置 Loopback 口模拟业务网段
  2. AS 200 内部配置 OSPF,仅用于实现 BGP 的 TCP 可达
  3. AS 200 内部建立 BGP 联盟,联盟 AS 为 AS 200,包含 2个 子 AS 为 AS 65001 和 AS 65002。R1 和 R2 建立 EBGP 邻居,R4 和 R6 建立 EBGP 邻居,R2 和 R4 建立 EBGP 邻居,子 AS 内部建立 IBGP 全连接
  4. R1 把业务网段宣告进 BGP,要求 AS 200 内部所有路由器都能够学习到该业务网段路由
  5. 通过配置团体属性,使 192.168.0.0/24 网段路由只能传递至 AS 200

实验解法

  1. 配置 IP 地址部分略

  2. AS 200 内部配置 OSPF 部分略

  3. AS 200 内部建立 BGP 联盟,联盟 AS 为 AS 200,包含 2个 子 AS 为 AS 65001 和 AS 65002。R1 和 R2 建立 EBGP 邻居,R4 和 R6 建立 EBGP 邻居,R2 和 R4 建立 EBGP 邻居,子 AS 内部建立 IBGP 全连接

      分析:由于 AS 200 建立 BGP 联盟,所以 R2 和 R3 的 BGP 运行在 AS 65001 中,R4 和 R5 的 BGP 运行在 AS 65002 中,子 AS 之间通过 R2 和 R4 建立 EBGP 邻居来解决 BGP 路由黑洞问题
      真实 AS 之间的 EBGP 邻居仍然使用真实 AS 编号,子 AS 之间的 EBGP 邻居使用子 AS 编号

      
    步骤 1:R1 上使用直连接口地址配置与 R2 的 EBGP 邻居,AS 编号为真实 AS

    [R1]bgp 100
    [R1-bgp-default]peer 100.1.1.2 as-number 200
    [R1-bgp-default]address-family ipv4 unicast
    [R1-bgp-default-ipv4]peer 100.1.1.2 enable
    

    步骤 2:R2 上创建 BGP 进程运行在 AS 65001 中,联盟 ID 为 200,与 R1 和 R4 建立 EBGP 邻居,与 R3 建立 IBGP 邻居,联盟内邻居 AS 为 AS 65002

      注意:R4 虽然是 R2 的 EBGP,但由于是联盟内的 EBGP,所以仍然需要配置下一跳变更为本机

    [R2]bgp 65001
    [R2-bgp-default]confederation id 200
    [R2-bgp-default]confederation peer-as 65002
    [R2-bgp-default]peer 3.3.3.3 as-number 65001
    [R2-bgp-default]peer 3.3.3.3 connect-interface LoopBack0
    [R2-bgp-default]peer 100.1.1.1 as-number 100
    [R2-bgp-default]peer 100.2.2.4 as-number 65002
    [R2-bgp-default]address-family ipv4 unicast
    [R2-bgp-default-ipv4]peer 3.3.3.3 enable
    [R2-bgp-default-ipv4]peer 3.3.3.3 next-hop-local
    [R2-bgp-default-ipv4]peer 100.1.1.1 enable
    [R2-bgp-default-ipv4]peer 100.2.2.4 enable
    [R2-bgp-default-ipv4]peer 100.2.2.4 next-hop-local
    

    步骤 3:R3 创建 BGP 进程运行在 AS 65001 中,联盟 ID 为 200,仅与 R2 建立 IBGP 邻居

    [R3]bgp 65001
    [R3-bgp-default]confederation id 200
    [R3-bgp-default]peer 2.2.2.2 as-number 65001
    [R3-bgp-default]peer 2.2.2.2 connect-interface LoopBack0
    [R3-bgp-default]address-family ipv4 unicast
    [R3-bgp-default-ipv4]peer 2.2.2.2 enable
    

    步骤 4:R4 的配置与 R2 类似,对照拓扑进行配置

    [R4]bgp 65002
    [R4-bgp-default]confederation id 200
    [R4-bgp-default]confederation peer-as 65001
    [R4-bgp-default]peer 5.5.5.5 as-number 65002
    [R4-bgp-default]peer 5.5.5.5 connect-interface LoopBack0
    [R4-bgp-default]peer 100.6.6.6 as-number 300
    [R4-bgp-default]peer 100.2.2.2 as-number 65001
    [R4-bgp-default]address-family ipv4 unicast
    [R4-bgp-default-ipv4]peer 5.5.5.5 enable
    [R4-bgp-default-ipv4]peer 5.5.5.5 next-hop-local
    [R4-bgp-default-ipv4]peer 100.6.6.6 enable
    [R4-bgp-default-ipv4]peer 100.2.2.2 enable
    [R4-bgp-default-ipv4]peer 100.2.2.2 next-hop-local
    

    步骤 5:R5 的配置与 R3 类似,对照拓扑进行配置

    [R5]bgp 65002
    [R5-bgp-default]confederation id 200
    [R5-bgp-default]peer 4.4.4.4 as-number 65002
    [R5-bgp-default]peer 4.4.4.4 connect-interface LoopBack0
    [R5-bgp-default]address-family ipv4 unicast
    [R5-bgp-default-ipv4]peer 4.4.4.4 enable
    

    步骤 6:R6 的配置与 R1 类似,对照拓扑进行配置

    [R6]bgp 300
    [R6-bgp-default]peer 100.6.6.4 as-number 200
    [R6-bgp-default]address-family ipv4 unicast
    [R6-bgp-default-ipv4]peer 100.6.6.4 enable
    
  4. R1 把业务网段宣告进 BGP,要求 AS 200 内部所有路由器都能够学习到该业务网段路由

      分析:由于上一步配置的 BGP 联盟已经解决了 BGP 路由黑洞问题,AS 200 内部所有路由器都能够学习到 R1 的业务网段路由
      
    步骤 1:在 R1 上把业务网段宣告进 BGP

    [R1-bgp-default-ipv4]network 192.168.0.0 24
    [R1-bgp-default-ipv4]network 192.168.1.0 24
    

    效果测试:AS 200 内部所有路由器都学习到 R1 的业务网段路由,步骤略

  5. 通过配置团体属性,使 192.168.0.0/24 网段路由只能传递至 AS 200

      分析:BGP 公认团体属性中,No_export 为不能被发布到本AS之外,如果存在联盟,则不能发布到联盟之外,但可以发布到其他子AS。根据需求,需要在 R1 上对 192.168.0.0/24 网段的路由赋予团体属性 No_export,并且在 AS 100 到 AS 300 的途径路由器中都开启团体属性传递
      
    步骤 1:在 R1 上配置 ACL 抓取 192.168.0.0/24 网段路由

    [R1]acl basic 2000
    [R1-acl-ipv4-basic-2000]rule permit source 192.168.0.0 0.0.0.255
    

    步骤 2:创建路由策略,赋予 192.168.0.0/24 网段路由 No_export 团体属性。并配置空节点放行其他路由

    [R1]route-policy tt permit node 10
    [R1-route-policy-tt-10]if-match ip address acl 2000
    [R1-route-policy-tt-10]apply community no-export
    [R1]route-policy tt permit node 20
    

    步骤 3:在 R1 上对 R2 调用上一步创建的路由策略

    [R1-bgp-default-ipv4]peer 100.1.1.2 route-policy tt export 
    

    步骤 4:在 R1 上开启对 R2 传递团体属性,在 R2 上开启对 R4 传递团体属性

    [R1-bgp-default-ipv4]peer 100.1.1.2 advertise-community 
    
    [R2-bgp-default-ipv4]peer 100.2.2.4 advertise-community 
    

    效果测试:R6 已经无法学习到 192.168.0.0/24 网段路由

    [R6]display bgp routing-table ipv4
    
        Network            NextHop         MED        LocPrf     PrefVal Path/Ogn
    
    * >e 192.168.1.0        100.6.6.4                             0       200 100i