链路负载均衡之策略路由

一、策略路由的概念

一般来说,防火墙是根据目的地址查看路由,这种情况下只能根据报文的目的地址为用户提供服务,没办法更加灵活对内网用户进行区分,让不同用户流量走不同的链路转发,如根据源地址、应用协议等区分流量,走各自期望的链路,因此出现了策略路由。

策略路由是在路由表已经产生的情况下,不按照现有的路由表进行转发,从更多的维度来决定报文如何转发,根据用户制定的策略进行路由选择的机制。

策略路由优先于路由表生效,更多维度包括了入接口、源安全区域、源/目的IP地址、用户、服务、应用。

1、策略路由的组成

匹配条件:源地址/目的地址、源安全区域/入接口、用户、服务、应用、时间段、DSCP优先级,默认为any,一条策略路由可以包含多个匹配条件,每个匹配条件可以有多个值,其中源安全区域和入接口是互斥的,二者必选其一。

动作:如果策略路由配置的所有匹配条件都匹配,则此流量成功匹配该策略路由规则,并执行策略路由的动作,可以指定转发报文的出接口(单出口/多出口),也可以不做策略路由,按照现有的路由表进行转发。

2、策略路由的匹配规则

每条策略路由中包含多个匹配条件,各个匹配条件之间是“与”的关系,报文的属性与各个条件必须全部匹配,才认为该报文匹配这条规则。

一个匹配条件中如果可以配置多个值,多个值之间是“或”的关系,报文的属性只要匹配任意一个值,就认为报文的属性匹配了这个条件。

策略路由列表默认是按照配置顺序排列的,越先配置的策略路由规则位置越靠前,优先级越高。策略路由从策略列表顶端开始逐条向下匹配,如果流量匹配了某个策略路由,将不再进行下一个策略的匹配。

默认存在一条默认策略路由“default”,匹配条件均为any,动作为不做策略路由,位于最底部,当前面策略路由均为命中,报文会命中默认策略路由,并按照现有路由表转发,可见,策略路由优先级高于路由表

3、策略路由的应用场景

某企业的防火墙两个出口分别连接到电信、联通两个运营商,考虑运营商带宽、费用等因素,企业希望采用策略路由来控制特定报文转发路径。

基于源IP地址的策略路由:让192.168.1.0/24网段报文通过电信访问互联网,192.168.2.0/24网段报文通过联通访问互联网。

基于目的IP地址的策略路由:让访问电信的报文通过电信访问互联网,访问联通的报文通过联通访问互联网。类似于ISP选路的效果。

基于用户的策略路由:根据用户所属用户组,分配不同质量的链路,如用户组A等级高,可以享受更稳定的链路,用户组B使用其他链路。

基于应用的策略路由:例如,配置语音与视频等应用走带宽高线路,数据应用走带宽小的线路。

二、策略路由的配置

以应用场景为例,进行策略路由的配置,分为命令配置以及web界面配置。

①配置防火墙接口IP地址以及安全区域

[USG6000V1]interface g1/0/0
[USG6000V1-GigabitEthernet1/0/0]ip add 192.168.1.254 24
[USG6000V1-GigabitEthernet1/0/0]q
[USG6000V1]interface g1/0/1
[USG6000V1-GigabitEthernet1/0/1]ip add 192.168.2.254 24
[USG6000V1-GigabitEthernet1/0/1]q
[USG6000V1]interface g1/0/2
[USG6000V1-GigabitEthernet1/0/2]ip add 10.1.1.1 24
[USG6000V1-GigabitEthernet1/0/2]q
[USG6000V1]interface g1/0/3
[USG6000V1-GigabitEthernet1/0/3]ip add 10.1.2.1 24
[USG6000V1-GigabitEthernet1/0/3]q
[USG6000V1]firewall zone trust
[USG6000V1-zone-trust]add interface g1/0/0
[USG6000V1-zone-trust]add interface g1/0/1
[USG6000V1-zone-trust]q
[USG6000V1]firewall zone untrust
[USG6000V1-zone-untrust]add interface g1/0/2
[USG6000V1-zone-untrust]add interface g1/0/3
[USG6000V1-zone-untrust]q

②配置安全策略和EASY-IP

[USG6000V1]nat-policy 
[USG6000V1-policy-nat]rule name policy_nat1
[USG6000V1-policy-nat-rule-policy_nat1]source-zone trust
[USG6000V1-policy-nat-rule-policy_nat1]destination-zone untrust
[USG6000V1-policy-nat-rule-policy_nat1]egress-interface g1/0/2
[USG6000V1-policy-nat-rule-policy_nat1]source-address 192.168.1.0 24
[USG6000V1-policy-nat-rule-policy_nat1]action source-nat easy-ip
[USG6000V1-policy-nat-rule-policy_nat1]quit[USG6000V1-policy-nat]rule name policy_nat2
[USG6000V1-policy-nat-rule-policy_nat2]source-zone trust
[USG6000V1-policy-nat-rule-policy_nat2]destination-zone untrust
[USG6000V1-policy-nat-rule-policy_nat2]egress-interface g1/0/3
[USG6000V1-policy-nat-rule-policy_nat2]source-address 192.168.2.0 24
[USG6000V1-policy-nat-rule-policy_nat2]action source-nat easy-ip
[USG6000V1-policy-nat-rule-policy_nat2]q[USG6000V1]security-policy 
[USG6000V1-policy-security]rule name policy1
[USG6000V1-policy-security-rule-policy1]source-zone trust
[USG6000V1-policy-security-rule-policy1]destination-zone untrust
[USG6000V1-policy-security-rule-policy1]source-address 192.168.1.0 24
[USG6000V1-policy-security-rule-policy1]source-address 192.168.2.0 24
[USG6000V1-policy-security-rule-policy1]action permit
[USG6000V1-policy-security-rule-policy1]q
[USG6000V1-policy-security]q

③配置IP-Link,探测两条链路状态,chinacheck为电信,chinacheck1为联通

[USG6000V1]ip-link check enable 
[USG6000V1]ip-link name chinacheck
[USG6000V1-iplink-chinacheck]destination 10.1.1.2 interface g1/0/2
[USG6000V1-iplink-chinacheck]q
[USG6000V1]ip-link name chinacheck1
[USG6000V1-iplink-chinacheck1]destination 10.1.2.2 interface g1/0/3
[USG6000V1-iplink-chinacheck1]q

④配置策略路由,使192.168.1.0/24网段报文通过电信访问互联网,192.168.2.0/24网段报文通过联通访问互联网,同时引用前面创建的IP-Link,防火墙是先检测策略路由再进行源NAT,因此策略路由源地址还是NAT前的地址。

[USG6000V1-policy-pbr]rule name chinaroute1
[USG6000V1-policy-pbr-rule-chinaroute1]source-zone trust
[USG6000V1-policy-pbr-rule-chinaroute1]source-address 192.168.1.0 24
[USG6000V1-policy-pbr-rule-chinaroute1]track ip-link chinacheck
[USG6000V1-policy-pbr-rule-chinaroute1]action pbr egress-interface GigabitEthern
et 1/0/2 next-hop 10.1.1.2
[USG6000V1-policy-pbr-rule-chinaroute1]q[USG6000V1-policy-pbr]rule name chinaroute2
[USG6000V1-policy-pbr-rule-chinaroute2]source-zone trust
[USG6000V1-policy-pbr-rule-chinaroute2]source-address 192.168.2.0 24
[USG6000V1-policy-pbr-rule-chinaroute2]track ip-link chinacheck1
[USG6000V1-policy-pbr-rule-chinaroute2]action pbr egress-interface GigabitEthern
et 1/0/3 next-hop 10.1.2.2

⑤测试,分别用192.168.1.0/24、192.168.2.0/24 ping 10.1.1.2、10.1.2.2

192.168.1.1通过NAT转换成出接口10.1.1.1地址下一跳为10.1.1.2、192.168.2.1通过NAT转换成出接口10.1.2.1地址下一跳为10.1.2.2。


参考资料:防火墙和VPN技术与实践——李学昭

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/724367.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

照片 200K 的尺寸是多大?如何调整照片到200k?

在数字时代,我们经常需要在互联网上上传和分享照片。在上传照片时,我们常常会遇到文件大小的限制,通常以“K”(千字节)为单位。如果您需要上传的照片大小为 200K,那么它的实际尺寸是多大呢?本文…

卫星通信基础知识

为了满足日益增长的卫星业务需求,多路径路由被用来通过多个传输路径并发地传输每个流。然而,动态变化的卫星拓扑结构带来了挑战,多路径路由规划和不同路径之间的业务分裂。 因此,在本文中,我们提出了一个GNN启用多路径…

栈【stack】 栈的【STL】运用 【单调栈】 【单调栈】的详细解释【图文讲解】 洛谷P5788 【模板】单调栈 【单调队列】

文章目录 栈的定义栈的STL运用 单调栈 & 单调队列单调栈的详细解释【图文讲解】例题:洛谷P5788 【模板】单调栈code↓洛谷P5788 【模板】单调栈 AC 栈的定义 栈的修改与访问是按照后进先出的原则进行的 栈通常被称为是后进先出(last in first out&…

centos ps命令

1. ps : Process Status的缩写,用于查询系统的进程状态 2. 常用参数:-ef 返回系统中所有用户的所有进程的完整列表 -A 显示所有进程(同-e) -a 显示当前终端的所有进程 -u 显示进程的用户信息 -o 以用户…

33、一致性哈希算法分区

33、一致性哈希算法分区 一、背景二、介绍三、步骤1、算法构建一致性哈希环2、Redis服务器IP节点映射3、key落到服务器的落键规则 四、优点1、一致性哈希算法的容错性2、一致性哈希算法的扩展性 五、缺点1、一致性哈希算法的数据倾斜问题2、拓展 六、总结 一、背景 一致性哈希…

sylar高性能服务器-日志(P57-P60)内容记录

文章目录 P57-P60:序列化模块Varint(编码)Zigzag(压缩)class ByteArrayNode(链表结构)成员变量构造函数写入读取setPositionaddCapacity 测试 P57-P60:序列化模块 ​ 序列化模块通常…

LeetCode2643. Row With Maximum Ones

文章目录 一、题目二、题解 一、题目 Given a m x n binary matrix mat, find the 0-indexed position of the row that contains the maximum count of ones, and the number of ones in that row. In case there are multiple rows that have the maximum count of ones, t…

某酷ckey140逆向(之前下架了重新上传补发)

声明: 本文章中所有内容仅供学习交流使用,不用于其他任何目的,不提供完整代码,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!wx a15018…

Win UI3开发笔记(六)设置软件最小尺寸

想设置最小尺寸为1000*100像素怎么做? 一、问gpt using Microsoft.UI.ViewManagement; using Windows.UI.ViewManagement;// 在应用程序启动时设置最小缩放尺寸 ApplicationView.PreferredLaunchViewSize new Size { Width 800, Height 600 }; ApplicationView.P…

代码随想录算法训练营(动态规划10,11 ,12 股票问题)| 121. 买卖股票的最佳时机 122.买卖股票的最佳时机II

动态规划10 动态规划5步曲,个人感觉应该加一步状态分析 状态分析: 列出所有的状态,将状态归纳后定义dp数组状态转移,状态怎么转移也就是递推公式是什么 买卖股票的动规五部曲分析如下: 1 确定dp数组(d…

Python - Pycharm 配置 autopep8 并设置快捷键

什么是 PEP8 官方:PEP 8 – Style Guide for Python Code | peps.python.org PEP8 是 Python 官方推出的一套编码的规范,只要代码不符合它的规范,就会有相应的提示,还可以让代码自动的格式化 Pycharm 自带的代码格式化 ​ 但这…

2024年Android笔试题总,如何系统全面性学习Android语言

开头 让我们一起来看看,字节跳动的第三面,面试官都问了什么?(第一二面的题目及答案已整理,需要的可以在文末领取) 从七月中旬开始,我前前后后差不多一共投递了八十份简历,到目前为…

游戏网站为了提升谷歌的搜索排名,应该在html等方面做什么优化?

一&#xff1a;为了提升谷歌的搜索排名&#xff0c;游戏网站可以在HTML等方面进行以下优化&#xff1a; 关键词优化&#xff1a;在HTML的标题标签&#xff08;<title>&#xff09;和Meta标签中包含与游戏相关的关键词&#xff0c;以便搜索引擎能够更好地理解网站内容。 …

PyTorch笔记:标量向量矩阵张量+维度+常用API+计算图+自动微分计算

PyTorch 张量 默认数据类型是torch.float32 维度 0&#xff1a;标量1&#xff1a;向量2&#xff1a;矩阵… 标量&向量&矩阵&张量 标量&#xff1a;0维空间中一个点向量&#xff1a;1维空间中一条线矩阵&#xff1a;2维空间中一个面三维张量&#xff1a;三维空…

刷题第10天

代码随想录刷题第10天 |● 239. 滑动窗口最大值 ● 347.前 K 个高频元素 239. 滑动窗口最大值 唉&#xff0c;好难&#xff0c;先记个思路吧 class Solution { private:class MyQueue { //单调队列&#xff08;从大到小&#xff09;public:deque<int> que; // 使用deq…

章鱼网络进展月报 | 2024.2.1-2.29

章鱼网络大事摘要 1、Omnity 完成了核心组件的原型开发&#xff0c;正在测试&#xff0c;未来将首先支持 Runes 资产跨链。 2、$NEAR Restaking 质押总量超过400万美元。 3、章鱼网络受邀参加 ETHDenver 2024&#xff0c;并且与 ICP 共同组织活动&#xff0c;介绍 Omnity 的…

速看!2024深圳国际电子化工新材料展览会

2024深圳国际电子化工新材料展览会 Shenzhen International Exhibition of New Electronic and chemical materials2024 基本信息&#xff1a; 时间&#xff1a;2024年6月26&#xff5e;28日 地点&#xff1a;深圳国际会展中心 组织机构&#xff1a; 主办单位&#xff1a…

【C语言】linux内核netif_receive_skb

一、中文注释 /*** netif_receive_skb - 从网络处理接收缓冲区* skb: 要处理的缓冲区** netif_receive_skb() 是主要的数据接收处理函数。* 它总是成功的。由于拥塞控制或协议层的原因&#xff0c;缓冲区可能在处理过程中被丢弃。** 这个函数只能在软中断&#xff08;softirq&…

洛阳旅游攻略

洛阳旅游攻略 第一天&#xff08;抵达当天&#xff09;&#xff1a; 1.先将行李放到酒店—2.老城十字街&#xff08;打车可能会堵车&#xff09;—3.洛邑古城—4.丽景门&#xff08;步行&#xff09; 第二天&#xff1a; 1.早起吃早餐—&#xff08;打车三十分钟&#xff0c…

guava的使用

对数组操作前判断是否会越界&#xff1a; List<String> s new ArrayList<>();System.out.println(Preconditions.checkElementIndex(2,s.size(),"下标长度超过了")); 是否为空 String s null;System.out.println(Preconditions.checkNotNull(s)); 判空…