首页 > 其他分享 >路由策略入门指南

路由策略入门指南

时间:2023-12-22 13:55:17浏览次数:26  
标签:指南 24 策略 ip 172.16 SwitchA 路由 入门

对于网络工程师来说,路由策略的部署随处可见,无论在运营商IP网络还是在企业网中,路由策略的应用都是非常普遍的。同时,在网络规划中,路由策略的规划也是一个核心的内容。今天,我们来认识一下路由策略的庐山真面目。

什么是路由策略?

路由策略是通过一系列工具或方法对路由进行各种控制的“策略”。这种策略能够影响到路由产生、发布、选择等,进而影响报文的转发路径。这些工具包括ACL、route-policy、ip-prefix、filter-policy等,这些方法包括对路由进行过滤,设置路由的属性等。

很多人会把路由策略等同于route-policy,也有人会可能会说filter-policy也属于路由策略的范畴,其实这些理解都有点不太准确。实际上,路由策略不是一个特定的技术,也不是一个特定的特性。

路由策略各工具之间的调用关系

路由策略入门

如上图所示,我们把所有的工具划分成三类:

  • 条件工具:用于把需要的路由“抓取”出来。

  • 策略工具:用于把“抓取”出来的路由执行某个动作,比如允许、拒绝、修改属性值等。

  • 调用工具:用于将路由策略应用到某个具体的路由协议里面,使其生效。

调用工具中的filter-policy和peer又自带策略工具的功能,因此这两个东西又可以直接调用条件工具。其他的调用工具都必须通过route-policy来间接的调用条件工具。

注意peer不能调用ACL,可以调用其他的所有条件工具。

路由策略有什么用?

在IP网络中,路由策略的用途主要包括两个方面:

  • 对路由信息进行过滤。

  • 修改路由的属性

路由策略入门

1. 通过路由策略对路由信息进行过滤

路由策略入门

图1 通过路由策略对路由信息进行过滤

如图1所示,SwitchA属于双上行的组网结构,SwitchA会从SwitchB和SwitchC那里分别接收到路由。如果SwitchA仅希望接收来自SwitchB的路由,而不希望接收来自SwitchC的路由,此时应该怎么办呢?这种情况下就可以考虑在SwitchA上配置路由策略,允许来自SwitchB的路由,拒绝来自SwitchC的路由。

2. 通过路由策略修改路由的属性

路由策略入门

图2 通过路由策略修改路由的属性

如图2所示,SwitchA也是双上行的网络结构,但是,由于SwitchB这边的链路稳定性更好一点,带宽更大一点,因此用户想用SwitchB这边的链路作为主用链路,SwitchC这边的链路作为备用链路,当主用链路故障的时候流量自动切换至备用链路。这种场景下,可以使用路由策略,将来自SwitchB这边的路由开销值调小,将来自SwitchC这边的路由开销值调大,这样流量就会自动选取SwitchB这边的链路作为主用链路,SwitchC这边的链路作为备用链路,实现路由的主备份。

路由策略和策略路由的区别

1. 路由策略

路由策略的操作对象是路由信息。路由策略主要实现了路由过滤和路由属性设置等功能,它通过改变路由属性(包括可达性)来改变网络流量所经过的路径。

2. 策略路由

策略路由的操作对象是数据包,在路由表已经产生的情况下,不按照路由表进行转发,而是根据需要,依照某种策略改变数据包转发路径。

所以这样可以看出,策略路由是在路由表之前起作用,如果报文匹配了策略路由,那么这个报文就不会再去查路由表了,而是直接按照策略路由的“指引”进行转发。所以策略路由是一个不太按照套路出牌的“家伙”,也正因为这样,策略路由的应用会更加灵活一点。

路由策略和策略路由对比分析

为了更加具体的对比路由策略和策略路由,我们通过下表对两者进行一个全方位的对比。

路由策略入门

路由策略牛刀小试

路由策略入门

如上图所示,运行OSPF协议的网络中,SwitchA从Internet网络接收路由,并为OSPF网络提供了Internet路由, 现在用户希望OSPF网络仅接收172.16.16.0/24、172.16.17.0/24和172.16.18.0/24这三条外部路由,其他的外部路由都不接收。

上述用户需求可以通过多种方式去实现,接下来我们给出两个比较常见的实现方式供各位参考。

下面的实验中我们通过在SwitchA中配置黑洞路由做为测试路由,在OSPF中引入静态路由来模拟从Internet网络接收路由。SwitchA上的关键配置如下:

# ospf 1  import-route static  area 0.0.0.0  network 192.168.1.0 0.0.0.255 # ip route-static 172.16.16.0 255.255.255.0 NULL0 ip route-static 172.16.17.0 255.255.255.0 NULL0 ip route-static 172.16.18.0 255.255.255.0 NULL0 ip route-static 172.16.19.0 255.255.255.0 NULL0 ip route-static 172.16.20.0 255.255.255.0 NULL0 #

1. 通过ACL+route-policy实现路由过滤

(1) 定义一个ACL 2000,用于匹配需要放行的路由。

[SwitchA] acl 2000 [SwitchA-acl-basic-2000] rule 5 permit source 172.16.16.0 0  [SwitchA-acl-basic-2000] rule 10 permit source 172.16.17.0 0  [SwitchA-acl-basic-2000] rule 15 permit source 172.16.18.0 0  [SwitchA-acl-basic-2000] quit

(2) 创建一个route-policy,名字叫RP,同时配置一个编号为10的节点,调用ACL2000。

[SwitchA] route-policy RP permit node 10 [SwitchA -route-policy] if-match acl 2000

(3) 在OSPF引入静态路由的时候调用这个route-policy

[SwitchA] ospf 1 [SwitchA-ospf-1] import-route static route-policy RP [SwitchA-ospf-1] quit

由于route-policy默认隐含deny节点,因此172.16.19.0及172.16.20.0路由由于没有满足if-match语句,从而不被引入到OSPF中。

配置完上述路由策略以后SwitchB的路由表如下:

[SwitchB]display ip routing-table  Route Flags: R - relay, D - download to fib ----------------------------------------------------------------------------- Routing Tables: Public  Destinations : 7 Routes : 7    Destination/Mask Proto Pre Cost Flags NextHop Interface    127.0.0.0/8 Direct 0 0 D 127.0.0.1 InLoopBack0  127.0.0.1/32 Direct 0 0 D 127.0.0.1 InLoopBack0  172.16.16.0/24 O_ASE 150 1 D 192.168.1.1 Vlanif10  172.16.17.0/24 O_ASE 150 1 D 192.168.1.1 Vlanif10  172.16.18.0/24 O_ASE 150 1 D 192.168.1.1 Vlanif10  192.168.1.0/24 Direct 0 0 D 192.168.1.2 Vlanif10  192.168.1.2/32 Direct 0 0 D 127.0.0.1 Vlanif10

可以看到在SwitchA上配置完路由策略以后,SwitchB的IP路由表里面只有172.16.16.0/24、172.16.17.0/24和172.16.18.0/24这三条外部路由,其他的外部路由都没有了。

2. 通过ip-prefix+filter-policy实现路由过滤

(1) 定义一个地址前缀列表,用于匹配需要放行的路由。

[SwitchA] ip ip-prefix huawei index 10 permit 172.16.16.0 24 [SwitchA] ip ip-prefix huawei index 20 permit 172.16.17.0 24 [SwitchA] ip ip-prefix huawei index 30 permit 172.16.18.0 24

(2) 在SwitchA的OSPF视图中,通过filter-policy对发布的路由进行过滤。

[SwitchA] ospf 1 [SwitchA -ospf-1] filter-policy ip-prefix huawei export [SwitchA-ospf-1] quit

由于ip-prefix默认隐含deny节点,因此172.16.19.0及172.16.20.0路由由于不在ip-prefix允许的范围内,所以在SwitchA向SwitchB发布路由的时候,仅发布在ip-prefix允许的范围内的路由,其他的所有路由都不发布。

配置完上述配置以后SwitchB的路由表如下:

[SwitchB] display ip routing-table  Route Flags: R - relay, D - download to fib ----------------------------------------------------------------------------- Routing Tables: Public  Destinations : 7 Routes : 7    Destination/Mask Proto Pre Cost Flags NextHop Interface    127.0.0.0/8 Direct 0 0 D 127.0.0.1 InLoopBack0  127.0.0.1/32 Direct 0 0 D 127.0.0.1 InLoopBack0  172.16.16.0/24 O_ASE 150 1 D 192.168.1.1 Vlanif10  172.16.17.0/24 O_ASE 150 1 D 192.168.1.1 Vlanif10  172.16.18.0/24 O_ASE 150 1 D 192.168.1.1 Vlanif10  192.168.1.0/24 Direct 0 0 D 192.168.1.2 Vlanif10  192.168.1.2/32 Direct 0 0 D 127.0.0.1 Vlanif10

可以看到在SwitchA上配置完路由filter-policy以后,SwitchB的IP路由表里面只有172.16.16.0/24、172.16.17.0/24和172.16.18.0/24这三条外部路由,其他的外部路由都没有了。

标签:指南,24,策略,ip,172.16,SwitchA,路由,入门
From: https://www.cnblogs.com/officexie/p/17921432.html

相关文章

  • 【Java】Spring、SpringBoot、SpringCloud理解和入门
    关于Spring、SpringBoot、SpringCloud我总结了几点。Spring是轻量级的容器框架,目前大多数项目不直接使用Spring的。SpringBoot是Spring的升级版,主要应用单个微服务,关联性小的项目、规模小、硬件要求不高的项目。SpringCloud基于SpringBoot来实现微服务开发组件。主要应用于规......
  • 我们不可能永远都在救火 ——Scrum中技术债务“偿还”指南
    技术债务是指开发人员为了加速软件开发,在应该采用最佳方案时进行了妥协,改用了短期内能加速软件开发的方案,以至于未来给自己带来额外的开发负担。软件工程师 WardCunningham首次将技术的复杂比作为负债。 简单来说,技术债务类似于金融债务,软件开发就像是去银行 “贷款”,而技术债......
  • 我们不可能永远都在救火 ——Scrum中技术债务“偿还”指南
    技术债务是指开发人员为了加速软件开发,在应该采用最佳方案时进行了妥协,改用了短期内能加速软件开发的方案,以至于未来给自己带来额外的开发负担。软件工程师 WardCunningham首次将技术的复杂比作为负债。 简单来说,技术债务类似于金融债务,软件开发就像是去银行 “贷款”,而技术......
  • 上手 Linux:快速入门 Vim
    Vi和VimVi是Linux操作系统默认的文本编辑器。Vim是Vi的加强版。不仅可以做简单的文字编辑,它也有颜色高亮,语法提示等特性,可以用作编程。现在大部分的Linux发行版都同时包含Vi和Vim。在Linux操作系统中,Vim是必须掌握的一个工具:作为命令行模式下的文本编辑器非常好用......
  • 【SpringBootWeb入门-17】Mybatis-基础操作-动态SQL
    1、章节回顾上一篇文章我们讲解完了Mybatis基础操作,本篇继续学习Mybatis中非常重要的功能:动态SQL。什么是动态SQL:随着用户的输入或外部条件的变化而变化的SQL语句,我们称为动态SQL。简单说SQL语句不是固定的,是动态变化的。就拿我们上一篇所提到的根据条件来查询员工的SQL语句来......
  • Guava自加载缓存LoadingCache使用指南
    第1章:引言大家好,我是小黑,今天我们来聊聊缓存。在Java世界里,高效的缓存机制对于提升应用性能、降低数据库负担至关重要。想象一下,如果每次数据请求都要跑到数据库里取,那服务器岂不是要累趴了?这时候,缓存就显得尤为重要了。那么,怎么实现一个既高效又好用的缓存呢?别急,咱们今天的主......
  • Python 中迭代器与生成器:深度解析与实用指南
    Python作为一门强大而灵活的编程语言,提供了许多高效的工具来处理数据集合。在这些工具中,迭代器(Iterators)和生成器(Generators)是两个重要的概念,它们在数据遍历和惰性计算方面发挥着重要作用。本文将深入探讨Python迭代器和生成器的概念、用法以及它们之间的区别。1.什么是迭代器?迭代......
  • Unreal入门,开关02,通过蓝图接口开关电视
    1.创建一个蓝图接口改个名字BPI_Interactable设置第一个接口函数为Interact(就是把默认的NewFunction改个名)这里除了改名和新增接口函数,基本什么都干不了(不能添加实现)再添加一个有返回值的接口函数GetState2.创建一个TV创建基于Actor的蓝图并改名为BP_TV添加一个S......
  • 光猫连接两个路由器互通
    光猫的两个LAN口分别连了个路由器,一个在客厅一个在卧室,路由器默认使用DHCP,连接卧室路由器时访问不了连接客厅路由器的设备。此时可进行以下操作实现互联:如果两个路由器都支持AP(有线中继)功能,那么开启两个路由器的AP功能即可。不过我的一个路由器不支持AP,所以需要另外的操......
  • 软件测试/测试开发|Ubuntu系统入门教程
    前言上文我们介绍了Ubuntu系统的安装,还没有介绍Ubuntu系统的使用,对于习惯了使用Windows系统的我们来说,Ubuntu和Windows还是有着比较大的区别的,本文就来介绍一下Ubuntu系统的入门使用。Windows和Linux文件系统区别我们都知道,Windows操作系统的文件管理是分盘的,我们有C盘,D盘......