配置AS_Path过滤器
组网需求
如图1,RouterA与RouterB、RouterB与RouterC之间建立EBGP连接。用户希望AS10的设备和AS30的设备无法相互通信。
配置思路
采用如下思路配置BGP的AS_Path过滤器:
-
在RouterA和RouterB之间、RouterB和RouterC之间分别配置EBGP连接,并引入直连路由,使AS之间通过EBGP连接实现相互通信。
-
在RouterB上配置AS_Path过滤器,并应用该过滤规则,使AS20不向AS10发布AS30的路由,也不向AS30发布AS10的路由。
操作步骤
- 配置各接口的IP地址
# 配置RouterA的各接口的IP地址。
<Huawei> system-view [Huawei] sysname RouterA [RouterA] interface gigabitethernet 1/0/0 [RouterA-GigabitEthernet1/0/0] ip address 9.1.1.1 255.255.255.0 [RouterA-GigabitEthernet1/0/0] quit [RouterA] interface gigabitethernet 2/0/0 [RouterA-GigabitEthernet2/0/0] ip address 200.1.2.1 255.255.255.0 [RouterA-GigabitEthernet2/0/0] quit
RouterB和RouterC的配置同RouterA此处略。
- 配置EBGP
# 配置RouterA。
[RouterA] bgp 10
[RouterA-bgp] router-id 1.1.1.1
[RouterA-bgp] peer 200.1.2.2 as-number 20
[RouterA-bgp] import-route direct
# 配置RouterB。
[RouterB] bgp 20
[RouterB-bgp] router-id 2.2.2.2
[RouterB-bgp] peer 200.1.2.1 as-number 10
[RouterB-bgp] peer 200.1.3.2 as-number 30
[RouterB-bgp] import-route direct
[RouterB-bgp] quit
# 配置RouterC。
[RouterC] bgp 30
[RouterC-bgp] router-id 3.3.3.3
[RouterC-bgp] peer 200.1.3.1 as-number 20
[RouterC-bgp] import-route direct
[RouterC-bgp] quit
# 查看RouterB的发布路由表。以RouterB发布给RouterC的路由表为例,可以看到RouterB发布了AS10引入的直连路由:
<RouterB> display bgp routing-table peer 200.1.3.2 advertised-routes
BGP Local router ID is 2.2.2.2 Status codes: * - valid, > - best, d - damped, h - history, i - internal, s - suppressed, S - Stale Origin : i - IGP, e - EGP, ? - incomplete Total Number of Routes: 5 Network NextHop MED LocPrf PrefVal Path/Ogn *> 9.1.1.0/24 200.1.3.1 0 20 10? *> 10.1.1.0/24 200.1.3.1 0 20 30? *> 200.1.2.0 200.1.3.1 0 0 20? *> 200.1.2.1/32 200.1.3.1 0 0 20? *> 200.1.3.0/24 200.1.3.1 0 0 20?
同样,查看RouterC的路由表,可以看到RouterC也通过RouterB学习到了这条路由,如下:
<RouterC> display bgp routing-table
BGP Local router ID is 3.3.3.3 Status codes: * - valid, > - best, d - damped, h - history, i - internal, s - suppressed, S - Stale Origin : i - IGP, e - EGP, ? - incomplete Total Number of Routes: 9 Network NextHop MED LocPrf PrefVal Path/Ogn *> 9.1.1.0/24 200.1.3.1 0 20 10? *> 10.1.1.0/24 0.0.0.0 0 0 ? *> 10.1.1.1/32 0.0.0.0 0 0 ? *> 127.0.0.0 0.0.0.0 0 0 ? *> 127.0.0.1/32 0.0.0.0 0 0 ? *> 200.1.2.0 200.1.3.1 0 0 20? *> 200.1.3.0/24 0.0.0.0 0 0 ? * 200.1.3.1 0 0 20? *> 200.1.3.2/32 0.0.0.0 0 0 ?
- 在RouterB上配置AS_Path过滤器,并在RouterB的出方向上应用该过滤器
# 创建编号为1的AS_Path过滤器,拒绝包含AS号30的路由通过(正则表达式“_30_”表示任何包含AS30的AS列表,“.*”表示与任何字符匹配)。
[RouterB] ip as-path-filter path-filter1 deny _30_
[RouterB] ip as-path-filter path-filter1 permit .*
# 创建编号为2的AS_Path过滤器,拒绝包含AS号10的路由通过。
[RouterB] ip as-path-filter path-filter2 deny _10_
[RouterB] ip as-path-filter path-filter2 permit .*
# 分别在RouterB的两个出方向上应用AS_Path过滤器。
[RouterB] bgp 20
[RouterB-bgp] peer 200.1.2.1 as-path-filter path-filter1 export
[RouterB-bgp] peer 200.1.3.2 as-path-filter path-filter2 export
[RouterB-bgp] quit
- 查看RouterB的发布路由表
查看RouterB发往AS30的发布路由表。可以看到表中没有RouterB发布的AS10引入的直连路由。
<RouterB> display bgp routing-table peer 200.1.3.2 advertised-routes
BGP Local router ID is 2.2.2.2 Status codes: * - valid, > - best, d - damped, h - history, i - internal, s - suppressed, S - Stale Origin : i - IGP, e - EGP, ? - incomplete Total Number of Routes: 2 Network NextHop MED LocPrf PrefVal Path/Ogn *> 200.1.2.0 200.1.3.1 0 0 20? *> 200.1.3.0/24 200.1.3.1 0 0 20?
同样,RouterC的BGP路由表里也没有这些路由。
<RouterC> display bgp routing-table
BGP Local router ID is 3.3.3.3 Status codes: * - valid, > - best, d - damped, h - history, i - internal, s - suppressed, S - Stale Origin : i - IGP, e - EGP, ? - incomplete Total Number of Routes: 8 Network NextHop MED LocPrf PrefVal Path/Ogn *> 10.1.1.0/24 0.0.0.0 0 0 ? *> 10.1.1.1/32 0.0.0.0 0 0 ? *> 127.0.0.0 0.0.0.0 0 0 ? *> 127.0.0.1/32 0.0.0.0 0 0 ? *> 200.1.2.0 200.1.3.1 0 0 20? *> 200.1.3.0/24 0.0.0.0 0 0 ? * 200.1.3.1 0 0 20? *> 200.1.3.2/32 0.0.0.0 0 0 ?
查看RouterB发往AS10的发布路由表。可以看到表中没有RouterB发布的AS30引入的直连路由。
<RouterB> display bgp routing-table peer 200.1.2.1 advertised-routes
BGP Local router ID is 2.2.2.2 Status codes: * - valid, > - best, d - damped, h - history, i - internal, s - suppressed, S - Stale Origin : i - IGP, e - EGP, ? - incomplete Total Number of Routes: 2 Network NextHop MED LocPrf PrefVal Path/Ogn *> 200.1.2.0 200.1.2.2 0 0 20? *> 200.1.3.0/24 200.1.2.2 0 0 20?
同样,RouterA的BGP路由表里也没有这些路由。
<RouterA> display bgp routing-table
BGP Local router ID is 1.1.1.1 Status codes: * - valid, > - best, d - damped, h - history, i - internal, s - suppressed, S - Stale Origin : i - IGP, e - EGP, ? - incomplete Total Number of Routes: 8 Network NextHop MED LocPrf PrefVal Path/Ogn *> 9.1.1.0/24 0.0.0.0 0 0 ? *> 9.1.1.1/32 0.0.0.0 0 0 ? *> 127.0.0.0 0.0.0.0 0 0 ? *> 127.0.0.1/32 0.0.0.0 0 0 ? *> 200.1.2.0 0.0.0.0 0 0 ? * 200.1.2.2 0 0 20? *> 200.1.2.1/32 0.0.0.0 0 0 ? *> 200.1.3.0/24 200.1.2.2 0 0 20?
配置文件
-
RouterA的配置文件
#
sysname RouterA
#
interface GigabitEthernet1/0/0
ip address 9.1.1.1 255.255.255.0
#
interface GigabitEthernet2/0/0
ip address 200.1.2.1 255.255.255.0
#
bgp 10
router-id 1.1.1.1
peer 200.1.2.2 as-number 20
#
ipv4-family unicast
undo synchronization
import-route direct
peer 200.1.2.2 enable
#
return
-
RouterB的配置文件
#
sysname RouterB
#
interface GigabitEthernet1/0/0
ip address 200.1.3.1 255.255.255.0
#
interface GigabitEthernet2/0/0
ip address 200.1.2.2 255.255.255.0
#
bgp 20
router-id 2.2.2.2
peer 200.1.2.1 as-number 10
peer 200.1.3.2 as-number 30
#
ipv4-family unicast
undo synchronization
import-route direct
peer 200.1.2.1 enable
peer 200.1.2.1 as-path-filter path-filter1 export
peer 200.1.3.2 enable
peer 200.1.3.2 as-path-filter path-filter2 export
#
ip as-path-filter path-filter1 deny _30_
ip as-path-filter path-filter1 permit .*
ip as-path-filter path-filter2 deny _10_
ip as-path-filter path-filter2 permit .*
#
return
-
RouterC的配置文件
#
sysname RouterC
#
interface GigabitEthernet1/0/0
ip address 10.1.1.1 255.255.255.0
#
interface GigabitEthernet2/0/0
ip address 200.1.3.2 255.255.255.0
#
bgp 30
router-id 3.3.3.3
peer 200.1.3.1 as-number 20
#
ipv4-family unicast
undo synchronization
import-route direct
peer 200.1.3.1 enable
#
return