天天看點

ip-prefix在OSPF和BGP中路由過濾的應用舉例。

案例1、OSPF中的路由過濾: 組網需要:

(1)所有的交換機都運作OSPF,整個自治系統劃分為3個區域。

(2)其中Switch A和Switch B作為ABR來轉發區域之間的路由。

(3)在Switch C上配置為ASBR引入外部路由(靜态路由),并在Switch C上配置過濾政策,對引入的一條路由(3.1.3.0/24)進行過濾。

(4)在Switch A上配置路由政策,對路由(10.5.1.0/24)進行過濾。

組網圖
ip-prefix在OSPF和BGP中路由過濾的應用舉例。
配置步驟

(1)配置各接口的IP位址(略)

(2)配置OSPF(略)

(3)配置引入自治系統外部路由

# 在Switch C上配置一條到目的網段3.1.1.0/24的靜态路由。

<SwitchC> system-view
[SwitchC] ip route-static 3.1.1.0 24 10.4.1.2           

# 在Switch C上配置一條到目的網段3.1.2.0/24的靜态路由。

[SwitchC] ip route-static 3.1.2.0 24 10.4.1.2           

# 在Switch C上配置一條到目的網段3.1.3.0/24的靜态路由。

[SwitchC] ip route-static 3.1.3.0 24 10.4.1.2           

# 在Switch C上配置OSPF引入靜态路由。

[SwitchC] ospf 1
[SwitchC-ospf-1] import-route static
[SwitchC-ospf-1] quit           

# 在Switch A上檢視路由資訊。

<SwitchA> display ip routing-table
Routing Tables: Public
         Destinations : 12       Routes : 12

Destination/Mask    Proto  Pre  Cost         NextHop         Interface

3.1.1.0/24          O_ASE  150  1            10.2.1.2        Vlan200
3.1.2.0/24          O_ASE  150  1            10.2.1.2        Vlan200
3.1.3.0/24          O_ASE  150  1            10.2.1.2        Vlan200
10.1.1.0/24         Direct 0    0            10.1.1.1        Vlan200
10.1.1.1/32         Direct 0    0            127.0.0.1       InLoop0
10.2.1.0/24         Direct 0    0            10.2.1.1        Vlan200
10.2.1.1/32         Direct 0    0            127.0.0.1       InLoop0
10.3.1.0/24         OSPF   10   4            10.1.1.2        Vlan100
10.4.1.0/24         OSPF   10   13           10.2.1.2        Vlan200
10.5.1.0/24         OSPF   10   14           10.1.1.2        Vlan100
127.0.0.0/8         Direct 0    0            127.0.0.1       InLoop0
127.0.0.1/32        Direct 0    0            127.0.0.1       InLoop0           

(4)在Switch C配置對路由3.1.3.0/24進行過濾

# 配置IPv4位址字首清單。

[SwitchC] ip ip-prefix prefix1 index 1 deny 3.1.3.0 24
[SwitchC] ip ip-prefix prefix1 index 2 permit 3.1.1.0 24  
[SwitchC] ip ip-prefix prefix1 index 3 permit 3.1.2.0 24
           

# 配置對引入的靜态路由資訊進行過濾,過濾掉路由3.1.3.0/24。

[SwitchC] ospf 1
[SwitchC-ospf-1] filter-policy ip-prefix prefix1 export static           

# 在Switch A上檢視路由資訊。

<SwitchA> display ip routing-table
Routing Tables: Public
         Destinations : 11       Routes : 11

Destination/Mask    Proto  Pre  Cost         NextHop         Interface

3.1.1.0/24          O_ASE  150  1            10.2.1.2        Vlan200
3.1.2.0/24          O_ASE  150  1            10.2.1.2        Vlan200
10.1.1.0/24         Direct 0    0            10.1.1.1        Vlan100
10.1.1.1/32         Direct 0    0            127.0.0.1       InLoop0
10.2.1.0/24         Direct 0    0            10.2.1.1        Vlan200
10.2.1.1/32         Direct 0    0            127.0.0.1       InLoop0
10.3.1.0/24         OSPF   10   4            10.1.1.2        Vlan100
10.4.1.0/24         OSPF   10   13           10.2.1.2        Vlan200
10.5.1.0/24         OSPF   10   14           10.1.1.2        Vlan100
127.0.0.0/8         Direct 0    0            127.0.0.1       InLoop0
127.0.0.1/32        Direct 0    0            127.0.0.1       InLoop0
           

可以看到,到目的網段3.1.3.0/24的路由被過濾掉了。

(5)在Switch A上配置對路由10.5.1.1/24進行過濾

# 在Switch A上配置通路控制清單。

<SwitchA> system-veiw
[SwitchA] acl number 2000
[SwitchA-acl-basic-2000] rule 0 deny source 10.5.1.0 0.0.0.255
[SwitchA-acl-basic-2000] rule 1 permit source any
[SwitchA-acl-basic-2000] quit
           

# 配置對通過LSA計算出來的路由資訊10.5.1.0/24進行過濾。

[SwitchA] ospf 1
[SwitchA-ospf-1] filter-policy 2000 import
[SwitchA-ospf-1] quit
           
[SwitchA] display ip routing-table
Routing Tables: Public
         Destinations : 10       Routes : 10

Destination/Mask    Proto  Pre  Cost         NextHop         Interface

3.1.1.0/24          O_ASE  150  1            10.2.1.2        Vlan200
3.1.2.0/24          O_ASE  150  1            10.2.1.2        Vlan200
10.1.1.0/24         Direct 0    0            10.1.1.1        Vlan100
10.1.1.1/32         Direct 0    0            127.0.0.1       InLoop0
10.2.1.0/24         Direct 0    0            10.2.1.1        Vlan200
10.2.1.1/32         Direct 0    0            127.0.0.1       InLoop0
10.3.1.0/24         OSPF   10   4            10.1.1.2        Vlan100
10.4.1.0/24         OSPF   10   13           10.2.1.2        Vlan200
127.0.0.0/8         Direct 0    0            127.0.0.1       InLoop0
127.0.0.1/32        Direct 0    0            127.0.0.1       InLoop0           

可以看到,到10.5.1.1/24的路由被過濾掉了。

案例2,BGP中的路由過濾:

BGP路由過濾的實施點

BGP路由過濾的政策可以在本地對從對等體接收路由入方向、本地釋出路由以及對對等體發送路由出方向處實施。

1、接收路由(Import Policy)

在收到BGP對等體的路由時,我們可以執行路由政策,過濾我們不需要的BGP路由。

路由政策的執行在BGP往路由表添加路由之前,是以路由一旦被過濾掉,這些路由不添加到在執行政策的裝置的路由表中,在本地不負責轉發。

路由政策可以對所有接收的路由作過濾,也可以隻對特定的BGP對等體或對等體組作過濾。

2、本地釋出路由

對于本地釋出的路由,主要是指通過network、import方式本地釋出的BGP路由,我們可以執行路由政策,過濾我們不需要釋出的BGP路由。

路由政策的執行在BGP往路由表添加路由之前,這些路由可以有選擇的釋出給所有BGP對等體。

3、發送路由(Export Policy)

在給BGP對等體發送路由的時候,我們也可以執行路由政策,過濾我們不想釋出的BGP路由。

路由政策的執行在BGP往路由表添加路由之後,是以本地路由表中比對deny政策的路由依然生效,在本地可以轉發,隻不過不向配置政策的對等體發送該BGP路由,讓對等體無法從自己學習使用該路由。

路由政策可以對所有對等體做過濾,也可以隻對特定的BGP對等體或對等體組作過濾。

4、實際案例

IP Prefix

IP Prefix是一種針對路由目的位址資訊做過濾的工具,同樣是對路由目的位址做過濾,它使用名字而不是序号作為清單的辨別。

舉個例子,路由表裡有2條這樣的路由10.0.0.0/16和10.0.0.0/24,考慮路由表的容量,想将10.0.0.0/24這條路由過濾掉。這時我們可以使用IP Prefix,指定隻deny 10.0.0.0/24,允許其他路由通過。同時提醒兩點要注意:第一,無論是ACL還是IP Prefix過濾,預設都是deny all的,是以我們在配置需要過濾的路由條目後,最後還要配置一條permit指令讓其他路由通過。第二,裝置如果不支援Route refresh能力,需要手動reset bgp對等體過濾政策才生效;裝置如果支援Route refresh能力,對等體不支援Route refresh能力,需要和相應對等體配置peer x.x.x.x keep-all-routes。

ip ip-prefix test index 10 deny 10.0.0.0 24 greater-equal 24 less-equal 24
ip ip-prefix test index 20 permit 0.0.0.0 0 less-equal 32  
bgp 100
 filter-policy ip-prefix 1 import                 

檢視IP路由表,從路由表可以看出10.0.0.0/24路由已經從路由表中消失,10.0.0.0/16的路由依然在路由表中,就可以滿足我們的要求,從這個例子,我們可以看出IP Prefix可以更靈活地過濾路由,因為它不光可以比對位址資訊,而且可以比對掩碼的長度。

[H3C-bgp]display ip routing-table
Routing Tables: Public
         Destinations : 5        Routes : 5
 
Destination/Mask    Proto  Pre  Cost         NextHop         Interface
 
10.0.0.0/16         BGP    255  0            10.1.1.2        GE0/1
10.1.1.0/24         Direct 0    0            10.1.1.1        GE0/1
10.1.1.1/32         Direct 0    0            127.0.0.1       InLoop0
127.0.0.0/8         Direct 0    0            127.0.0.1       InLoop0
127.0.0.1/32        Direct 0    0            127.0.0.1       InLoop0             

IP Prefix也可以針對一段掩碼範圍做過濾。在原來的路由表中有多了很多11開頭的路由,我們精簡路由,要求隻需要掩碼是16的路由。

<H3C>display ip routing-table
Routing Tables: Public
         Destinations : 9        Routes : 9
 
Destination/Mask    Proto  Pre  Cost         NextHop         Interface
 
10.0.0.0/16         BGP    255  0            10.1.1.2        GE0/1
10.1.1.0/24         Direct 0    0            10.1.1.1        GE0/1
10.1.1.1/32         Direct 0    0            127.0.0.1       InLoop0
11.0.0.0/16         BGP    255  0            10.1.1.2        GE0/1
11.0.0.0/27         BGP    255  0            10.1.1.2        GE0/1
11.0.1.0/25         BGP    255  0            10.1.1.2        GE0/1
11.0.2.0/26         BGP    255  0            10.1.1.2        GE0/1
127.0.0.0/8         Direct 0    0            127.0.0.1       InLoop0
127.0.0.1/32        Direct 0    0            127.0.0.1       InLoop0             

我們可以在原來的配置基礎上再添加一條如下的指令即可。注意,IP Prefix比對順序是根據表項的index号比對的,index号越小,越先比對,本例中之前的兩條表項的index分别是10和20,我們要使再配置的表項資訊能在兩者之間作比對,隻需配置的index在兩者之間即可,例子中使用的index是11。

ip ip-prefix 1 index 11 deny 11.0.0.0 16 greater-equal 17 less-equal 32              

檢視IP路由表,路由表中除了11.0.0.0/16,其他的路由都沒有了,滿足了我們的要求,可以看出IP Prefix還是很好用的工具。

[H3C]dis ip routing-table
Routing Tables: Public
         Destinations : 6        Routes : 6
 
Destination/Mask    Proto  Pre  Cost         NextHop         Interface
 
10.0.0.0/16         BGP    255  0            10.1.1.2        GE0/1
10.1.1.0/24         Direct 0    0            10.1.1.1        GE0/1
10.1.1.1/32         Direct 0    0            127.0.0.1       InLoop0
11.0.0.0/16         BGP    255  0            10.1.1.2        GE0/1
127.0.0.0/8         Direct 0    0            127.0.0.1       InLoop0
127.0.0.1/32        Direct 0    0            127.0.0.1       InLoop0               

繼續閱讀