路由选路控制双点双向重分发(HCIP)

2023-12-06 17:20

本文主要是介绍路由选路控制双点双向重分发(HCIP),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、路由控制介绍

二、对流量行为的控制需求分析

1、控制网络流量的可达性:

if-match匹配实验:

route-policy应用实验:

实验:(ACL)

IP-Prefix List实验:

2、调整网络流量路径:

策略路由实验:

三、多协议复杂场景的流量路径(双点双向重分发引入的路由环路、回馈)

双点双向路由引入实验:


学习目标:

1、了解路由控制方式方法

2、了解ACL、ip-prefix list、route-policy的区别和使用

3、掌握双点双向重分发的问题以及解决方法

一、路由控制介绍

路由控制是一种工具,需要熟练使用。

企业网络中经常面临一些非法流量(非授权)访问产生安全性和流量路径不优等问题。

新的SDN基于业务的网络,APP1的流量走上边,APP2的流量走下边更适合现在网络,比传统的基于协议的网络更适合现在。

高端操作:SR、Evpn。

分段路由SR,学习难度比较高,得学习OSPF、ISIS、BGP、MPLS-vpn。

传统网络中要保证数据安全性、提高带宽利用率,需要控制流量可达性(通与不通,不通最安全)、调整网络流量路径等。

二、对流量行为的控制需求分析

1、控制网络流量的可达性:

市场部不能访问财务、研发、资料部。

过滤路由的2种情况:

1、在引入路由时对路由进行过滤,filter-policy export

2、在发布路由或接收路由时进行过滤:

(1)、filter-policy export(对距离矢量协议有效,对链路状态协议无效)

(2)、filter-policy import 对接收的路由做过滤(对距离矢量协议、链路状态协议都有效)

ip ip-prefix-list 前缀列表:可以匹配网络号、掩码长度、掩码范围。

ACL 访问控制列表:定义路由只能匹配网络号,不能匹配掩码,功能有限。比如:192.168.11.0/28不能匹配。

ip ip-prefix-list和ACL共同特点,只能匹配网络号,对路由的其他属性无法匹配,所以某些情况下工作量比较大

3、通过route-policy做操作,可以匹配网络号、掩码长度、掩码范围以及其他属性。

(1)、route-policy 可以匹配各种路由的特征,匹配能力更强、灵活、高效。

(2)、可以对路由的属性进行修改,BGP协议大量需要做路由属性编辑就需要使用router-policy。

route-policy匹配规则,按照node号,从小到大进行匹配,一条匹配就不会继续向下匹配,没有则继续向下,默认隐藏就是拒绝所有。

route-policy中的permit代表允许,deny代表拒绝引入。

node中存在多个if-match时,相同的if-match是“或”的关系,不同if-match之间是“与”的关系。

        @存在的多个apply时,是“与”的关系(都要执行)

        @node中可以不存在if-match语句,没有if-match匹配所有路由。

        总结:if-match和apply可以单独出现。

如果if-match中引入的ACL或者前缀列表prefix-list,而ACL和prefix-list使用的deny语句,会跳过这个node匹配下一个node。

if-match匹配实验:

ip ip-prefix 1 index 10 deny 4.4.4.0 24

route-policy R4 permit node 10

if-match ip-prefix 1

apply cost 111

route-policy R4 permit node 20

apply cost 222

import-route rip 1 route-policy R4

结果是引入了cost为120

R6结果:

route-policy应用实验:

6.6.6.6放行了,这个有问题:

两种手段:路由策略、流量过滤

(1)、路由策略:对接收或发布的路由进行过滤,来控制流量可达性(不发或者不收)

@Filter-Policy:RIP、OSPF、ISIS、BGP协议都可以使用Filter-Policy对路由进行过滤。

实验:(ACL)

ACL只能匹配网络号,不能匹配掩码长度(思科可以用扩展ACL匹配掩码长度,华为不行)

华为Firster-Policy只能匹配ACL2000-2999,扩展3000的不能用。

链路状态协议(OSPF/ISIS),对引入路由做过滤:

1、在ASBR上做,使用Filter-Policy或者router-policy实现

[R1]acl 2000

[R1-acl-basic-2000]rule permit source 192.168.1.0 0.0.0.255

[R1-ospf-1]filter-policy 2000 export static

做之前:五类LSA两条

过滤之后:

过滤奇数路由:

过滤前:

执行过滤:

0 偶数 0000 0000

1 奇数 0000 0001

2 偶数 0000 0010

3 奇数 0000 0011

4 偶数 0000 0100

奇数和偶数只要关注最后1bit是否为0,为0就是偶数,不为0就是奇数

192.168.1.0

0 . 0 . 254 .0

写一个ACL

acl number 2000

rule 5 deny source 192.168.1.0 0.0.254.0

rule 10 permit

export:是在路由引入的时候做过滤,可以带参数。

import:对接收到的路由做过滤。

[R2-ospf-1]filter-policy 2000 import 对于接收的路由做过滤,对于链路状态协议来说不会过滤LSA,LSA依然可以泛洪给邻居

(如果是:[R2-ospf-1]filter-policy 2000 export 对链路状态协议发送的路由一点用也没有,对距离矢量协议有用)

R2过滤后:五类LSA算出的路由在加表的时候过滤。

但是R2身后的R3依旧有这些外部路由:OSPF之间传递LSA,无法被过滤,只能过滤路由产生的结果,但LSA依旧会泛洪给邻居。

距离矢量:传递路由的结果,干掉结果就传不出去了。

链路状态:传递链路状态,产生路由的原因,需要计算结果。

IP-Prefix List:不能用于IP报文的过滤,只能用于路由信息的过滤。

重点:

1、ip ip-prefix 也存在默认语句,拒绝所有的路由。

2、leght

3、ip ip-prefix-list 不能匹配奇偶网段

[R3]ip ip-prefix test index 10 permit 10.0.0.0 16 greater-equal 24 less-equal 28

匹配地址范围是10.0.0.0 - 10.0.x.x,掩码范围是大于等于24小于等于28,例如:10.0.1.0/24,10.0.125.0/26

[R3]ip ip-prefix pp index 10 permit 1.1.1.0 24 精确匹配1.1.1.0/24

[R3]ip ip-prefix pp index 10 permit 1.1.1.0 24 greater-equal 24 less-equal 24 精确匹配1.1.1.0/24

[R3]ip ip-prefix pp index 10 permit 1.1.0.0 16 greater-equal 24 匹配1.1.x.x掩码大于等于24小于等于32的路由

[R3]ip ip-prefix pp index 10 permit 1.1.1.0 16 less-equal 24 匹配1.1.x.x掩码大于16小于等于24的路由

特殊用法:

[R3]ip ip-prefix pp index 10 permit 0.0.0.0 0 匹配缺省路由

[R3]ip ip-prefix pp index 10 permit 0.0.0.0 0 less-equal 32 匹配所有路由

问题:用一条语句把192.168.1.0/24的所有子网匹配出来:

[R3]ip ip-prefix s10 index 10 permit 192.168.1.0 24 greater-equal 25 less-equal 32

问题:用一条语句匹配所有A类网段

0开头都是A类地址

[R1]ip ip-prefix aa index 10 permit 1.0.0.0 1 greater-equal 8 less-equal 8

IP-Prefix List实验:

写好ip ip-prefix list

在OSPF中使用

R2效果:

删除ip ip-prefix list的R2:

问题:用一条语句匹配所有B类网段

10开头都是B类地址

[R2]ip ip-prefix B index 2 permit 128.0.0.0 2 greater-equal 16 less-equal 16

(2)、流量过滤:使用ACL工具对数据报文进行过滤。

对路由没有影响,只是对报文转发时会影响。

2、调整网络流量路径:

都走上边会造成链路浪费,让市场走上边,财务走下边。

默认华为路由器的负载分担方式是基于流的负载分担(数据包五元组定义一股流【报文源目IP、源目MAC、端口号】,非TCP/UDP的包是二元组,根据源目IP)

解决方法一:通过路由策略方式修改协议属性来控制路由表条目,从而调整流量路径(通过改开销,但是不会改变实际带宽)

只能根据目的地址做转发,可能导致分流。

解决方法二:采用策略路由(PBR)方式在查找路由表之前控制流量行为(通过filter-policy)

对流量的转发路径进行控制,控制的对象是报文,非路由表条目。

优点:在于灵活,不再根据目的IP进行报文转发,而是根据管理员定义的策略执行报文转发。

缺点:配置复杂,可能需要多台设备上做定制的配置,扩展性不是很好。

路由策略:

1、操作对象对象是路由表条目。

2、实现路由过滤,从而实现访问控制,引入时过滤,发送和接收路由过滤。

3、通过配置cost,来实现路径的控制。

策略路由:

1、对流量转发路径进行控制,可以基于报文的特征决定转发路径。

2、匹配报文的大小、入接口、优先级、端口号等特征。

第一步定义流量特征:

第二步流量分类:

第三步流量的行为:

重转发,指定下一跳

第四步流策略工具:

注释:策略之间关联定义的流分类做对应的流行为

策略路由实验:

第一步定义流量特征:

acl number 3000

rule 5 permit tcp source 192.168.1.0 0.0.0.255 destination 8.8.8.8 0 destination-port eq telnet

acl number 3001

rule 5 permit tcp source 192.168.2.0 0.0.0.255 destination 8.8.8.8 0 destination-port eq telnet

traffic classifier B operator or(or是默认加的,如果有多个if-match是逻辑“或”的意思,满足其中一个就行。and就是满足所有)

if-match acl 3001

traffic classifier A operator or

if-match acl 3000

第二步定义流量行为:(redirect重定向)

traffic behavior B

redirect ip-nexthop 10.1.24.4

traffic behavior A

redirect ip-nexthop 10.1.23.3

第三步策略工具:

traffic policy AA

classifier A behavior A

classifier B behavior B

第四步应用策略:

[R2-GigabitEthernet0/0/0]traffic-policy AA inbound

R2回包:

ip route-static 192.168.1.0 255.255.255.0 10.1.12.1

ip route-static 192.168.2.0 255.255.255.0 10.1.12.1

结果:

三、多协议复杂场景的流量路径(双点双向重分发引入的路由环路、回馈)

多点双向的次优路径:(路由回馈)

多点双向的路由环路

RIP优先级100,ISIS优先级15

双点双向路由引入存在的问题:

1、次优路径

2、路由回馈:从一台路由器引出去的路由,又从另一条路由器引回来了。

3、路由环路

这些问题产生的根因是什么?如何解决?

次优路径产生的原因?协议优先级导致的问题,优先级低的路由引入到路由优先级高的协议中,产生次优路径,反之没有。

路由回馈:次优路径之后,再次将路由引入所导致,导致环路风险。

双点双向要解决的问题:

1、无次优路径

2、无路由回馈

3、无路由环路

双点双向做成功的标准,就是路由表没做和做之后是一样的。

双点双向路由引入实验:

R1配置:

[R1-GigabitEthernet0/0/0]ip address 10.1.12.1 24

[R1-LoopBack0]ip address 1.1.1.1 32

[R1]ip route-static 192.168.1.0 24 NULL 0

双点双向重引入之前的路由表信息:

AR3的OSPF路由表:

AR3的ISIS路由表:

环路的样子:

AR4的OSPF引入ISIS中

会进入ISIS的路由:

OSPF内部正常路径:

OSPF外部次优路径了:

AR3的ISIS引入OSPF中

R1是ASBR,R3这个时候也成为了ASBR,在R2上学到两条去往相同目的网络的LSA(192.168.2.0),由于引入的ISIS度量值为1小,R1产生度量值大为2,这个时候环路就产生了。

环路

产生环路的根因就是OSPF已经有一条外部路由了,进入到ISIS后优先级发生改变,再到OSPF引入到ISIS,环路产生。

优先级高往优先级低的引入不会有路由回馈,优先级低的引入优先级高的会引发路由回馈。

现网中双点双向重分发如何解决所面临的问题?(引进去、引回来)

产生问题就因为192.168.2.0的外部路由优先级150,引入到ISIS会回馈

[R3]route-policy oti deny node 10

[R3-route-policy]if-match tag 20

[R3]route-policy oti permit node 20

[R3-route-policy]apply tag 10

[R3-isis-1]import-route ospf 1 route-policy oti

[R3]route-policy ito deny node 10

[R3-route-policy]if-match tag 30

[R3]route-policy ito permit node 20

[R3-route-policy]apply tag 40

[R3-ospf-1]import-route isis 1 route-policy ito

[R3]route-policy ase permit node 10

[R3-route-policy]if-match tag 20(ISIS引入的)

[R3-route-policy]apply preference 150

绝杀:

[R3-ospf-1]preference ase route-policy ase 10

针对192.168.2.0的路由优先级改为10,ISIS的默认150

[R3-isis-1]cost-style wide (ISIS改为宽度量值【ISIS才支持协带Tag】,只有这样才能让ISIS协带Tag信息)

[R4]route-policy ito deny node 10

[R4-route-policy]if-match tag 10

[R4]route-policy ito permit node 20

[R4-route-policy]if-match tag 20

[R4-ospf-1]import-route isis route-policy ito

[R4]route-policy oti permit node 10

[R4-route-policy]apply tag 30

[R4]route-policy oti deny node 10

[R4-route-policy]if-match tag 40

[R4]route-policy ase permit node 10

[R4-route-policy]if-match tag 40

[R4-route-policy]apply preference 150

[R4-ospf-1]preference ase route-policy ase 10

[R4-isis-1]cost-style wide

做之前:

做之后:

通过打路由策略打Tag,修改度量值,解决了双点双向重分发环路,解决了次优路径,所有路由器路由表和做之前一模一样。

这篇关于路由选路控制双点双向重分发(HCIP)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/462641

相关文章

用js控制视频播放进度基本示例代码

《用js控制视频播放进度基本示例代码》写前端的时候,很多的时候是需要支持要网页视频播放的功能,下面这篇文章主要给大家介绍了关于用js控制视频播放进度的相关资料,文中通过代码介绍的非常详细,需要的朋友可... 目录前言html部分:JavaScript部分:注意:总结前言在javascript中控制视频播放

SpringIntegration消息路由之Router的条件路由与过滤功能

《SpringIntegration消息路由之Router的条件路由与过滤功能》本文详细介绍了Router的基础概念、条件路由实现、基于消息头的路由、动态路由与路由表、消息过滤与选择性路由以及错误处理... 目录引言一、Router基础概念二、条件路由实现三、基于消息头的路由四、动态路由与路由表五、消息过滤

Python异步编程中asyncio.gather的并发控制详解

《Python异步编程中asyncio.gather的并发控制详解》在Python异步编程生态中,asyncio.gather是并发任务调度的核心工具,本文将通过实际场景和代码示例,展示如何结合信号量... 目录一、asyncio.gather的原始行为解析二、信号量控制法:给并发装上"节流阀"三、进阶控制

使用DrissionPage控制360浏览器的完美解决方案

《使用DrissionPage控制360浏览器的完美解决方案》在网页自动化领域,经常遇到需要保持登录状态、保留Cookie等场景,今天要分享的方案可以完美解决这个问题:使用DrissionPage直接... 目录完整代码引言为什么要使用已有用户数据?核心代码实现1. 导入必要模块2. 关键配置(重点!)3.

SpringSecurity 认证、注销、权限控制功能(注销、记住密码、自定义登入页)

《SpringSecurity认证、注销、权限控制功能(注销、记住密码、自定义登入页)》SpringSecurity是一个强大的Java框架,用于保护应用程序的安全性,它提供了一套全面的安全解决方案... 目录简介认识Spring Security“认证”(Authentication)“授权” (Auth

python之流程控制语句match-case详解

《python之流程控制语句match-case详解》:本文主要介绍python之流程控制语句match-case使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录match-case 语法详解与实战一、基础值匹配(类似 switch-case)二、数据结构解构匹

Spring Security注解方式权限控制过程

《SpringSecurity注解方式权限控制过程》:本文主要介绍SpringSecurity注解方式权限控制过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、摘要二、实现步骤2.1 在配置类中添加权限注解的支持2.2 创建Controller类2.3 Us

Python中如何控制小数点精度与对齐方式

《Python中如何控制小数点精度与对齐方式》在Python编程中,数据输出格式化是一个常见的需求,尤其是在涉及到小数点精度和对齐方式时,下面小编就来为大家介绍一下如何在Python中实现这些功能吧... 目录一、控制小数点精度1. 使用 round() 函数2. 使用字符串格式化二、控制对齐方式1. 使用

Springboot控制反转与Bean对象的方法

《Springboot控制反转与Bean对象的方法》文章介绍了SpringBoot中的控制反转(IoC)概念,描述了IoC容器如何管理Bean的生命周期和依赖关系,它详细讲解了Bean的注册过程,包括... 目录1 控制反转1.1 什么是控制反转1.2 SpringBoot中的控制反转2 Ioc容器对Bea

Go路由注册方法详解

《Go路由注册方法详解》Go语言中,http.NewServeMux()和http.HandleFunc()是两种不同的路由注册方式,前者创建独立的ServeMux实例,适合模块化和分层路由,灵活性高... 目录Go路由注册方法1. 路由注册的方式2. 路由器的独立性3. 灵活性4. 启动服务器的方式5.