【控制篇 / 分流】(7.4) ❀ 02. 对不同运营商IP网段访问进行分流 ❀ FortiGate 防火墙

本文主要是介绍【控制篇 / 分流】(7.4) ❀ 02. 对不同运营商IP网段访问进行分流 ❀ FortiGate 防火墙,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  【简介】公司有两条宽带用来上网,一条电信,一条联通,访问常用的某些网站速度时快时慢。领导要求,根据上网流量的目标运营商IP归属,将流量送到相应的运营商出口去,避免跨运营商上网。那么应该怎么做?


 地址对象&地址组

  解决方案是:将运营商所属IP创建地址对象和地址组,通过路由走相应的宽带口。

  ① 可以网上找到很多有关于运营商所属IP的网站,例如 https://ispip.clang.cn 。可以看到联通有650条数据,网站会以HTML和TXT等格式显示IP数据,这里我们点击HTML下的联通IP数据。

  ② 可以看到联通所有的IP地址段表,并且是每日更新,值得信赖。但是有一个问题时,如何将这么多地址变成防火墙上的地址对象?一条一条输入显然是不合适,这样就需要用到批量处理工具。

  ③ 批量处理工具推荐NimbleText,可以在官方 https://nimbletext.com 下载免费版本。仅支持Windows。

  ④ 下载界面提示输入名称和邮件,也可以点击【skip that, download anyway.】跳过。

  ⑤ NimbleText程序文件下载成功,只有883KB。

  ⑥ 双击打开NimbleText,选择菜单【Tools】-【Options】。

  ⑦ 默认【Output a new line after each row】选项被钩选,这里要将它取消钩选择。

  ⑧ 将从 https://ispip.clang.cn 网站获取的前10条联通数据复制粘贴到NimbleText的数据区。为什么只复制10条?因为我们需要用少量数据创建一个可以使用的模板,避免后期排错走弯路。

  ⑨ 在模板区输入上图中的命令,第一大段是配置防火墙地址对象,第二大段是配置防火墙地址组。$0是变量,用来引用数据区的数据。$ONCE的作用是只执行一次,$EACH的作用是循环执行,自至$0变量取不到数据。

  ⑩ 点击【Calculate】或钩选【auto】,可以在下方看到最终在防火墙上执行的命令行。第一大段生成配置防火墙地址对象命令,将在防火墙上生成10条地址对象。

  ⑪ 第二大段命令,将10条自动生成的地址对象,加入一个地址组。注意这里地址对象都是连接在一起的,中间空格隔开。如果每个地址对象都是独立的一行,后面执行时会报错。

  ⑫ 选择菜单【File】-【Save result as...】。

  ⑬ 保存类型选择【Text files (*.txt)】,输入文件名,点击【保存】。

  ⑭ 用记事本打开刚刚保存的文本文件,可以看到将在在防火墙上运行的脚本内容。编码为UTF-8。

  执行脚本

  用批量工具创建好命令脚本后,下一步就是在防火墙上执行脚本了。

  ① 登录防火墙,点击右上角管理员旁下拉图标,弹出菜单选择【配置】-【脚本】。 

  ② 点击【运行脚本】。

  ③ 选择由NimbleText生成并保存的文本文件,点击确认。

  ④ 脚本成功运行,在【策略&对象】-【地址】,可以看到自动创建的10条联通IP地址对象。

  ⑤ 选择【Address Group】,可以到新建的地址组Unicom_GRP,由10条地址对象组成。

  批量执行

  少量数据的脚本可以完整执行后,就可以通过模板将其它数据导入了。

  ① 如果我们将剩下的640条数据都粘贴到数据区会怎么样?

  ② 从生成的脚本文件中可以看到,将地址对象加入地址组的命令是一行,所以命令会很长。

  ③ 再次执行脚本,出现报错信息,提示成员数最大为600。

  ④ 选择菜单【策略&对象】-【地址】,可以看到剩于的640条地址对象都已经创建好了,由于加入地址组命令报错,所以640条地址对象的关系项都为0,可以批量选择全部640条地址地象,点击鼠标右键,弹出菜单选择删除。

  ⑤ 因为要将全部650条数据分批创建脚本,那么给数据加上序号,就显得非常重要了。选择并复制全部650条数据。

  ⑥ 打开Execl,新建工作簿,在A1格中点击鼠标右键,弹出菜单选择【选择性粘贴】。

  ⑦ 方式选择【文本】,点击【确定】。

  ⑧ 650条数据显示在Execl中,由于左右有序号,这样就方便我们的选择,前10条数据已经回入防火墙,这次选择11-590,共复制580条数据。我们前面知道最大数据量是600,但是为了避免出错,建议留出一部空间,选择580条数据。

  ⑨ 580条数据粘贴到NimbleText的数据区。

  ⑩ 生成580条数据的脚本。

  ⑪ 这次执行脚本成功了。得到结果是一次性将580条地址对象加入一个地址组。

  ⑫ 查看地址组,里面有580条地址对象。

  ⑬ 再次生成最后60条数据脚本,成功的在防火墙上执行了脚本,但是。。。。地址组也只剩下60条地址对象了。这是为什么?原来每次 set member 命令都是重新设置成员,而不是加入成员,而且每个组的成员不能超过600个,那么联通的650个地址对象怎么办?很显然无法放入一个地址组中。

  ⑮ 建议将前500条数据,加入一个地址组。500是整数,好记,另外给地址组预留一些空间。

  ⑯ 将后150条数据加入另外一个组。分别生成两个脚本文件。

  ⑰ 删除防火墙上前面创建的关于联通的所有地址组和地址对象,然后重新运行脚本。两个脚本都运行成功。

  ⑱ 在菜单【策略&对象】-【地址】下,可以看到有650条联通的地址对象。

  ⑲ 而在地址组窗口,也可以看到有两个关于联通的地址组,一个有500条地址对象,另一个有150条地址对象。

  ⑳ 为了方便操作,可以将两个联通地址组再统一加入到Unicom_GRP组中,这样只要引用一个地址组就可以了。

  路由分流

  当我们拥有地址对象和地址组后,就可以通过路由分流了。

  ① 可以创建静态路由,目标地址选择【地址命名】,下拉选择联通地址组。接口选择联通宽带。这样当访问的IP是联通地址时,会走Wan2联通宽带出去。

  ② 可以创建策略路由,例如内网接口所有IP访问联通IP地址时走Wan2联通宽带出去。

  【总结】 将运营商所属IP网段创建地址对象和地址组,通过路由匹配,访问不同运营商IP时走所属运营商宽带出去,可以加快访问速度。每个地址组最多只能加600个地址对象。地址组可以加入另一个地址组。


这篇关于【控制篇 / 分流】(7.4) ❀ 02. 对不同运营商IP网段访问进行分流 ❀ FortiGate 防火墙的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Python在二进制文件中进行数据搜索的实战指南

《Python在二进制文件中进行数据搜索的实战指南》在二进制文件中搜索特定数据是编程中常见的任务,尤其在日志分析、程序调试和二进制数据处理中尤为重要,下面我们就来看看如何使用Python实现这一功能吧... 目录简介1. 二进制文件搜索概述2. python二进制模式文件读取(rb)2.1 二进制模式与文本

SQL Server 中的表进行行转列场景示例

《SQLServer中的表进行行转列场景示例》本文详细介绍了SQLServer行转列(Pivot)的三种常用写法,包括固定列名、条件聚合和动态列名,文章还提供了实际示例、动态列数处理、性能优化建议... 目录一、常见场景示例二、写法 1:PIVOT(固定列名)三、写法 2:条件聚合(CASE WHEN)四、

nginx跨域访问配置的几种方法实现

《nginx跨域访问配置的几种方法实现》本文详细介绍了Nginx跨域配置方法,包括基本配置、只允许指定域名、携带Cookie的跨域、动态设置允许的Origin、支持不同路径的跨域控制、静态资源跨域以及... 目录一、基本跨域配置二、只允许指定域名跨域三、完整示例四、配置后重载 nginx五、注意事项六、支持

JAVA SpringBoot集成Jasypt进行加密、解密的详细过程

《JAVASpringBoot集成Jasypt进行加密、解密的详细过程》文章详细介绍了如何在SpringBoot项目中集成Jasypt进行加密和解密,包括Jasypt简介、如何添加依赖、配置加密密钥... 目录Java (SpringBoot) 集成 Jasypt 进行加密、解密 - 详细教程一、Jasyp

在C#中调用Windows防火墙界面的常见方式

《在C#中调用Windows防火墙界面的常见方式》在C#中调用Windows防火墙界面(基础设置或高级安全设置),可以使用进程启动(Process.Start)或Win32API来实现,所以本文给大家... 目录引言1. 直接启动防火墙界面(1) 打开基本防火墙设置(firewall.cpl)(2) 打开高

Apache服务器IP自动跳转域名的问题及解决方案

《Apache服务器IP自动跳转域名的问题及解决方案》本教程将详细介绍如何通过Apache虚拟主机配置实现这一功能,并解决常见问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,... 目录​​问题背景​​解决方案​​方法 1:修改 httpd-vhosts.conf(推荐)​​步骤

Linux(centos7)虚拟机没有IP问题及解决方案

《Linux(centos7)虚拟机没有IP问题及解决方案》文章介绍了在CentOS7中配置虚拟机网络并使用Xshell连接虚拟机的步骤,首先,检查并配置网卡ens33的ONBOOT属性为yes,然后... 目录输入查看ZFhrxIP命令:ip addr查看,没有虚拟机IP修改ens33配置文件重启网络Xh

linux实现对.jar文件的配置文件进行修改

《linux实现对.jar文件的配置文件进行修改》文章讲述了如何使用Linux系统修改.jar文件的配置文件,包括进入文件夹、编辑文件、保存并退出编辑器,以及重新启动项目... 目录linux对.jar文件的配置文件进行修改第一步第二步 第三步第四步总结linux对.jar文件的配置文件进行修改第一步进

Go语言中如何进行数据库查询操作

《Go语言中如何进行数据库查询操作》在Go语言中,与数据库交互通常通过使用数据库驱动来实现,Go语言支持多种数据库,如MySQL、PostgreSQL、SQLite等,每种数据库都有其对应的官方或第三... 查询函数QueryRow和Query详细对比特性QueryRowQuery返回值数量1个:*sql

linux ssh如何实现增加访问端口

《linuxssh如何实现增加访问端口》Linux中SSH默认使用22端口,为了增强安全性或满足特定需求,可以通过修改SSH配置来增加或更改SSH访问端口,具体步骤包括修改SSH配置文件、增加或修改... 目录1. 修改 SSH 配置文件2. 增加或修改端口3. 保存并退出编辑器4. 更新防火墙规则使用uf