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 地址,R1 和 R4 配置环回口模拟业务网段,R2 和 R3 配置 Loopback0 口地址作为 OSPF 的 Router-id 和 IBGP 邻居地址
  2. AS 200 内部配置 OSPF,仅用于实现 BGP 的 TCP 可达,不允许宣告业务网段
  3. 配置 BGP,R1 和 R2/R3 建立 EBGP 邻居,R4 和 R2/R3 建立 IBGP 邻居,R1 和 R4 分别把业务网段宣告进 BGP
  4. 通过修改 MED 使 R1 到达 192.168.2.0/24 网段的路由经过 R3
  5. 通过修改 Preferred-value 属性,使 R4 到达 192.168.0.0/24 网段的路由经过 R3
  6. 通过修改 AS_path 属性,使 R1 到达 192.168.3.0/24 网段的路由经过 R3
  7. 通过修改 Local-pref 属性,使 R4 到达 192.168.1.0/24 网段的路由经过 R3

实验解法

  1. 配置 IP 地址部分略

  2. 配置 OSPF 部分略

  3. 配置 BGP 基本部分略

  4. 通过修改 MED 使 R1 到达 192.168.2.0/24 网段的路由经过 R3

      分析:按照 BGP 选路规则,在其他属性都一致的情况下,路由器优选 IP 地址最小的邻居发布的路由,R1 到达 192.168.2.0/24 网段的路由会优选 R2
      这里要求通过修改 MED 使 R1 优选 R3。MED 类似 IGP 中的 Cost,越小越优先,由 network 命令产生的 BGP 路由默认 MED 为 0。把 R2 传递至 R1 的该网段路由 MED 改大即可实现效果

      
    步骤 1:在 R2 上创建 ACL 抓取 192.168.2.0/24 网段路由

    [R2]acl basic 2000
    [R2-acl-basic-2000]rule permit source 192.168.2.0 0.0.0.255
    

    步骤 2:在 R2 上创建路由策略,匹配上一步创建的 ACL,修改 MED 为 100,并创建空节点用于放行其他路由

    [R2]route-policy x2 permit node 10
    [R2-route-policy-x2-10]if-match ip address acl 2000
    [R2-route-policy-x2-10]apply cost 100
    [R2]route-policy x2 permit node 20
    

    步骤 3:在 R2 上对 R1 的 EBGP 邻居中调用上一步创建的路由策略,应用方向为出方向

    [R2-bgp-default-ipv4]peer 100.1.1.1 route-policy x2 export
    

    效果测试:在 R1 上查看 BGP 路由表,发现到达 192.168.2.0/24 网段的路由已经变为选择 R3

    [R1]display bgp routing-table ipv4
    
        Network            NextHop         MED        LocPrf     PrefVal Path/Ogn
    
    * >  192.168.0.0        192.168.0.1     0                     32768   i
    * >  192.168.1.0        192.168.1.1     0                     32768   i
    * >e 192.168.2.0        100.3.3.3                             0       200i
    *  e                    100.1.1.2       100                   0       200i
    * >e 192.168.3.0        100.1.1.2                             0       200i
    *  e                    100.3.3.3                             0       200i
    
  5. 通过修改 Preferred-value 属性,使 R4 到达 192.168.0.0/24 网段的路由经过 R3

      分析:按照 BGP 选路规则,在其他属性都一致的情况下,路由器优选 IP 地址最小的邻居发布的路由,R4 到达 192.168.0.0/24 网段的路由会优选 R2
      这里要求通过修改 Preferred-value 使 R4 优选 R3。Preferred-value 是私有属性,越大越优先,默认 Preferred-value 为 0。把 R4 从 R3 学习的该网段路由 Preferred-value 改大即可实现效果

      
    步骤 1:在 R4 上创建 ACL 抓取 192.168.0.0/24 网段路由

    [R4]acl basic 2000
    [R4-acl-basic-2000]rule permit source 192.168.0.0 0.0.0.255
    

    步骤 2:在 R4 上创建路由策略,匹配上一步创建的 ACL,修改 Preferred-value 为 200,并创建空节点用于放行其他路由

    [R4]route-policy x0 permit node 10
    [R4-route-policy-x0-10]if-match ip address acl 2000
    [R4-route-policy-x0-10]apply preferred-value 200
    [R4]route-policy x0 permit node 20
    

    步骤 3:在 R4 上对 R3 的 EBGP 邻居中调用上一步创建的路由策略,应用方向为入方向

    [R4-bgp-default-ipv4]peer 3.3.3.3 route-policy x0 import 
    

    效果测试:在 R4 上查看 BGP 路由表,发现到达 192.168.0.0/24 网段的路由已经变为选择 R3

    [R4]display bgp routing-table ipv4
    
        Network            NextHop         MED        LocPrf     PrefVal Path/Ogn
    
    * >i 192.168.0.0        3.3.3.3         0          100        200     100i
    *  i                    2.2.2.2         0          100        0       100i
    * >i 192.168.1.0        2.2.2.2         0          100        0       100i
    *  i                    3.3.3.3         0          100        0       100i
    * >  192.168.2.0        192.168.2.1     0                     32768   i
    * >  192.168.3.0        192.168.3.1     0                     32768   i
    
  6. 通过修改 AS_path 属性,使 R1 到达 192.168.3.0/24 网段的路由经过 R3

      分析:按照 BGP 选路规则,在其他属性都一致的情况下,路由器优选 IP 地址最小的邻居发布的路由,R1 到达 192.168.3.0/24 网段的路由会优选 R2
      这里要求通过修改 AS_path 使 R1 优选 R3。AS_path 属性用于描述该路由传递所经过的 AS 路径,越短越优先,R1 收到的该网段路由从 AS 200 始发,然后进入本 AS,所以 AS_path 属性为 100。把 R1 从 R2 学习的该网段路由 AS_path 改长即可实现效果

      
    步骤 1:在 R1 上创建 ACL 抓取 192.168.3.0/24 网段路由

    [R1]acl basic 2000
    [R1-acl-basic-2000]rule permit source 192.168.3.0 0.0.0.255
    

    步骤 2:在 R1 上创建路由策略,匹配上一步创建的 ACL,添加 200 到 AS_path,并创建空节点用于放行其他路由

    [R1]route-policy x3 permit node 10
    [R1-route-policy-x3-10]if-match ip address acl 2000
    [R1-route-policy-x3-10]apply as-path 200
    [R1]route-policy x3 permit node 20
    

    步骤 3:在 R2 上对 R1 的 EBGP 邻居中调用上一步创建的路由策略,应用方向为入方向

    [R1-bgp-default-ipv4]peer 100.1.1.2 route-policy x3 import 
    

    效果测试:在 R1 上查看 BGP 路由表,发现到达 192.168.3.0/24 网段的路由已经变为选择 R3

    [R1]display bgp routing-table ipv4
    
        Network            NextHop         MED        LocPrf     PrefVal Path/Ogn
    
    * >  192.168.0.0        192.168.0.1     0                     32768   i
    * >  192.168.1.0        192.168.1.1     0                     32768   i
    * >e 192.168.2.0        100.3.3.3                             0       200i
    *  e                    100.1.1.2       100                   0       200i
    * >e 192.168.3.0        100.3.3.3                             0       200i
    *  e                    100.1.1.2                             0       200 200i
    
  7. 通过修改 Local-pref 属性,使 R4 到达 192.168.1.0/24 网段的路由经过 R3

      分析:按照 BGP 选路规则,在其他属性都一致的情况下,路由器优选 IP 地址最小的邻居发布的路由,R4 到达 192.168.1.0/24 网段的路由会优选 R2
      这里要求通过修改 Local-pref 使 R4 优选 R3。Local-pref 越大越优先,默认值为 100。把 R3 向 R4 发布的该网段路由 Local-pref 改大即可实现效果

      
    步骤 1:在 R3 上创建 ACL 抓取 192.168.1.0/24 网段路由

    [R3]acl basic 2000
    [R3-acl-basic-2000]rule permit source 192.168.1.0 0.0.0.255
    

    步骤 2:在 R1 上创建路由策略,匹配上一步创建的 ACL,修改 Local-pref 为 150,并创建空节点用于放行其他路由

    [R3]route-policy x1 permit node 10
    [R3-route-policy-x1-10]if-match ip address acl 2000
    [R3-route-policy-x1-10]apply local-preference 150
    [R3]route-policy x1 permit node 20
    

    步骤 3:在 R3 上对 R4 的 EBGP 邻居中调用上一步创建的路由策略,应用方向为出方向

    [R3-bgp-default-ipv4]peer 4.4.4.4 route-policy x1 export 
    

    效果测试:在 R4 上查看 BGP 路由表,发现到达 192.168.0.0/24 网段的路由已经变为选择 R3

     [R4]display bgp routing-table ipv4
    
        Network            NextHop         MED        LocPrf     PrefVal Path/Ogn
    
    * >i 192.168.0.0        3.3.3.3         0          100        200     100i
    *  i                    2.2.2.2         0          100        0       100i
    * >i 192.168.1.0        3.3.3.3         0          150        0       100i
    *  i                    2.2.2.2         0          100        0       100i
    * >  192.168.2.0        192.168.2.1     0                     32768   i
    * >  192.168.3.0        192.168.3.1     0                     32768   i