ip-prefix在OSPF和BGP中路由过滤的应用举例。-阿里云开发者社区

开发者社区> megaverse> 正文

ip-prefix在OSPF和BGP中路由过滤的应用举例。

简介: 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)进行过滤。

组网图

fb28edb6d847f8a45c7c6378c16bfc2332d04b31

配置步骤

(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

# 在Switch A上查看路由信息。

[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    

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
如何在 Cypress 测试代码中屏蔽(Suppress)来自应用代码报出的错误消息
如何在 Cypress 测试代码中屏蔽(Suppress)来自应用代码报出的错误消息
6 0
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
8635 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
10462 0
使用nodejs应用查询SAP HANA Express Edition里的数据
其实我们使用的是SAP针对SAP HANA Express Editor发布的nodejs SDK. npm init创建一个新的nodejs应用:
4 0
利用阿里云搭建WordPress网站 – 搭建基础网站应用
WordPress是一种非常流行的博客网站平台,也可以当作一个内容管理系统(CMS)来使用, 是世界上使用最广泛的博客系统之一。WordPress有非常多优秀的插件,使得这个开源产品变得非常容易扩展,满足不同的需求。
5190 0
16个wordpress博客中使用的Google服务和应用
Google 提供了很多不错的用户端服务和应用,虽然最初是一个搜索引擎,今天Google几乎为每一个用户提供解决方案。当为了满足需求的时候,Google并不忘 记满足web开发人员和设计人员的需求。在这篇文章中,我们将了解一下Google提供了那些主要的服务,并且如何应用到wordpress中的。
1044 0
《Node.JS学习—上篇》Visual Studio Code的使用—如何创建基本的Node.js + Express 应用
一、创建Express的项目 最近学习了一点点node.js,参与写了一下公司小程序的抽奖活动相关的接口,俺也是一个会写接口的移动端开发工程师了,哈哈,在此分享一下自己的学习经验,供初学者参考。
1949 0
+关注
11
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载