sdhgf 发表于 2015-7-20 10:50:21

利用BGP origin-code 属性修改BGP选路

实验拓扑



基本配置:
R1

L0:1.1.1.1/32
L1:11.1.1.1/32
E1/0:10.1.12.1/24
E1/1:10.1.14.1/24

R2
L0:2.2.2.2/32L1:22.2.2.2/32E1/0:10.1.12.2/24E1/1:10.1.24.2/24
R4
L0:4.4.4.4/32L1:44.4.4.4/32E1/0:10.1.24.4/24E1/1:10.1.14.4/24
配置IGP(RIP):

R1
router rip
version 2
network 1.0.0.0
network 10.0.0.0
no auto-summary
R2
router rip
version 2
network 2.0.0.0
network 10.0.0.0
no auto-summary
R4
router rip
version 2
network 4.0.0.0
network 10.0.0.0
no auto-summary

配置BGP:
router bgp 1
bgp router-id 1.1.1.1
bgp log-neighbor-changes
network 1.1.1.1 mask 255.255.255.255
network 2.2.2.2 mask 255.255.255.255 backdoor
network 4.4.4.4 mask 255.255.255.255 backdoor
network 11.1.1.1 mask 255.255.255.255
neighbor 2.2.2.2 remote-as 23
neighbor 2.2.2.2 ebgp-multihop 2
neighbor 2.2.2.2 update-source Loopback0
neighbor 4.4.4.4 remote-as 23
neighbor 4.4.4.4 ebgp-multihop 2
neighbor 4.4.4.4 update-source Loopback0

R2
router bgp 23
bgp router-id 2.2.2.2
bgp log-neighbor-changes
network 1.1.1.1 mask 255.255.255.255 backdoor
network 2.2.2.2 mask 255.255.255.255
network 22.2.2.2 mask 255.255.255.255
neighbor 1.1.1.1 remote-as 1
neighbor 1.1.1.1 ebgp-multihop 2
neighbor 1.1.1.1 update-source Loopback0
neighbor 4.4.4.4 remote-as 23
neighbor 4.4.4.4 update-source Loopback0
R4

router bgp 23
bgp router-id 4.4.4.4
bgp log-neighbor-changes
network 1.1.1.1 mask 255.255.255.255 backdoor
network 4.4.4.4 mask 255.255.255.255
network 44.4.4.4 mask 255.255.255.255
neighbor 1.1.1.1 remote-as 1
neighbor 1.1.1.1 ebgp-multihop 2
neighbor 1.1.1.1 update-source Loopback0
neighbor 2.2.2.2 remote-as 23
neighbor 2.2.2.2 update-source Loopback0

查看R1路由表:origin 为i,表示从IGP 学来的路由。
R1#sh ip bgp
BGP table version is 5, local router ID is 1.1.1.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
            r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
            x best-external, a additional-path, c RIB-compressed,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

   Network          Next Hop            Metric LocPrf Weight Path
r   2.2.2.2/32       4.4.4.4                              0 23 i
r>                   2.2.2.2                  0             0 23 i
r   4.4.4.4/32       4.4.4.4                  0             0 23 i
r>                   2.2.2.2                              0 23 i
*   22.2.2.2/32      4.4.4.4                              0 23 i
*>                   2.2.2.2                  0             0 23 i
*   44.4.4.4/32      4.4.4.4                  0             0 23 i
*>                   2.2.2.2                              0 23 i

查看22.2.2.2 44.4.4.4的路由表:
R1#sh ip bgp 22.2.2.2
BGP routing table entry for 22.2.2.2/32, version 4
Paths: (2 available, best #2, table default)
Advertised to update-groups:
   18      
Refresh Epoch 1
23
    4.4.4.4 (metric 1) from 4.4.4.4 (4.4.4.4)
      Origin IGP, localpref 100, valid, external
      rx pathid: 0, tx pathid: 0
Refresh Epoch 1
23
    2.2.2.2 (metric 1) from 2.2.2.2 (2.2.2.2)
    Origin IGP, metric 0, localpref 100, valid, external, best
      rx pathid: 0, tx pathid: 0x0
R1#sh ip bgp 44.4.4.4
BGP routing table entry for 44.4.4.4/32, version 5
Paths: (2 available, best #2, table default)
Advertised to update-groups:
   18      
Refresh Epoch 1
23
    4.4.4.4 (metric 1) from 4.4.4.4 (4.4.4.4)
      Origin IGP, metric 0, localpref 100, valid, external
      rx pathid: 0, tx pathid: 0
Refresh Epoch 1
23
    2.2.2.2 (metric 1) from 2.2.2.2 (2.2.2.2)
      Origin IGP, localpref 100, valid, external, best
      rx pathid: 0, tx pathid: 0x0

origin皆为IGP。修改 bgp origin-clde 属性,使R1到R2的22.2.2.2 永久的从R4走,到R4的44.4.4.4永久的从R2走。
在R1上配置:
第一步:配置prefix-list
ip prefix-list 22 seq 5 permit 22.2.2.2/32
ip prefix-list 44 seq 5 permit 44.4.4.4/32

第二步:配置route-map
route-map ori-r2 permit 10
match ip address prefix-list 22
set origin incomplete
route-map ori-r2 permit 20

route-map ori-r4 permit 10
match ip address prefix-list 44
set origin incomplete
route-map ori-r4 permit 20

第三步:在BGP中,对相应的邻居in方向调用route-map。
neighbor 2.2.2.2 route-map ori-r2 in
neighbor 4.4.4.4 route-map ori-r4 in

第四步:重置BGP邻居,重新学习路由
clea ip bgp *

查看R1 BGP路由表:
R1#sh ip bgp
BGP table version is 16, local router ID is 1.1.1.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
            r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
            x best-external, a additional-path, c RIB-compressed,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

   Network          Next Hop            Metric LocPrf Weight Path
*>1.1.1.1/32       0.0.0.0                  0         32768 i
r   2.2.2.2/32       4.4.4.4                              0 23 i
r>                   2.2.2.2                  0             0 23 i
r   4.4.4.4/32       4.4.4.4                  0             0 23 i
r>                   2.2.2.2                              0 23 i
*>11.1.1.1/32      0.0.0.0                  0         32768 i
*>22.2.2.2/32      4.4.4.4                              0 23 i
*                  2.2.2.2                  0             0 23 ?
*   44.4.4.4/32      4.4.4.4                  0             0 23 ?
*>                   2.2.2.2                              0 23 i

此是,BGP表显示从R2学来的22.2.2.2路由,origin-code属性已改为?(incomplete),从R4学来的44.4.4.4路由,属性也改为?(incomplete),优先选择origin-clde为i的路由。

IGP(i)优于EGP(e)优于incomplete(?)的路由。

R1#sh ip bgp 22.2.2.2
BGP routing table entry for 22.2.2.2/32, version 16
Paths: (2 available, best #1, table default)
Advertised to update-groups:
   18      
Refresh Epoch 1
23
    4.4.4.4 (metric 1) from 4.4.4.4 (4.4.4.4)
      Origin IGP, localpref 100, valid, external, best
      rx pathid: 0, tx pathid: 0x0
Refresh Epoch 1
23
    2.2.2.2 (metric 1) from 2.2.2.2 (2.2.2.2)
      Origin incomplete, metric 0, localpref 100, valid, external
      rx pathid: 0, tx pathid: 0
R1#sh ip bgp 44.4.4.4
BGP routing table entry for 44.4.4.4/32, version 15
Paths: (2 available, best #2, table default)
Advertised to update-groups:
   18      
Refresh Epoch 1
23
    4.4.4.4 (metric 1) from 4.4.4.4 (4.4.4.4)
      Origin incomplete, metric 0, localpref 100, valid, external
      rx pathid: 0, tx pathid: 0
Refresh Epoch 1
23
    2.2.2.2 (metric 1) from 2.2.2.2 (2.2.2.2)
      Origin IGP, localpref 100, valid, external, best
      rx pathid: 0, tx pathid: 0x0
实验完成。

页: [1]
查看完整版本: 利用BGP origin-code 属性修改BGP选路