四、防火墙-NAT Server
学习防火墙之前,对路由交换应要有一定的认识
- NAT Server
- 1.1.基本原理
- 1.2.多出口场景下的NAT Server
- 1.3.源进源出
——————————————————————————————————————————————————
NAT Server
一般对用户提供一些可访问的服务,这些服务器的地址一般都是私网地址,公网用户是无法直接访问私网地址。源NAT是对私网用户访问公网的报文的源地址进行转换,而服务器对公网提供服务时,是公网用户向私网发起访问,方向正好反过来了。于是,NAT转换的目标也由报文的源地址变成目的地址。针对服务器地址转换,称为:NAT Server(服务器映射)。
——————————————————————————————————————————————————
1.1.基本原理
结合下图所示来看防火墙上的NAT Server是如何实现。
NAT Server也需要用到公网IP地址,与源NAT不同的是,NAT Server的公网IP地址不需要放到NAT地址池这个容器中,直接使用即可。这里假设公网IP:210.1.1.1。

配置的过程如下:
[USG6000V2]nat server global 210.1.1.1 inside 192.168.100.1
按照上述配置会将服务器上所有的服务项都发布到公网,会带来严重风险,华为防火墙支持配置指定协议的NAT Server,只将服务器上特定的服务项对公网发布,可以按照如下方式,将服务器上的80端口映射为9980端口供公网用户使用。
nat server protocol tcp global 210.1.1.1 9980 inside 192.168.100.1 80
这里将80端口转换成9980端口,而不是转换成80端口,是因为一些地区的运营商默认会阻断80、8000、8080端口业务,而导致业务失败。
NAT Server配置完,也会生成server-map,但是是静态的,不需要报文来触发,只有配置被删除,server-map才会清除。

Server-map表项和之前一样,都存在正向和反向。不论是正向和反向,都仅只是实现地址转换。而不像ASPF的Server-map表项打开一个可以绕过安全策略检查的通道。所以无论公网用户要访问私网服务器还是私网服务器主动访问公网时,都需要配置安全策略。
这里有个经典的问题:NAT Server场景下,为了让公网用户能够访问私网服务器,配置安全策略时,策略的目的地址是服务器的私网地址还是公网地址?
当公网用户通过210.1.1.1:9980访问私网服务器时,防火墙收到报文的首包,首先查找匹配到Server-map表项,将报文的目的地址和端口转换为192.168.100.1:80。然后根据目的地址查找路由找到出接口。根据入接口和出接口所处的区域,判断报文在那两个安全区域流动,进行区域安全策略检查。
因此,配置安全策略,策略的目的地址应配置为服务器私网地址,而不是服务器对外映射的公网地址。
安全策略配置:
security-policyrule name Nat_Sersource-zone untrustdestination-zone trustdestination-address 192.168.100.0 mask 255.255.255.0service httpaction permit
报文通过安全检查后,会建立如下会话表,并将报文转发到私网服务器。

之后服务器对公网用户的请求做出响应,响应到达防火墙后匹配上面的会话表,防火墙将报文的源地址和源端口转换为210.1.1.1:9980,而后发送至公网。公网用户和私网服务器交互后续报文。防火墙都会直接根据会话表对其进行地址和端口转换,而不会再去查找Server-map表项。
配置黑洞路由
NAT Server也需要配置黑洞路由
ip route-static 210.1.1.1 32 NULL 0
——————————————————————————————————————————————————
1.2.多出口场景下的NAT Server
与源NAT相同,NAT Server也面临多出口问题。如图:通过ISP1和ISP2两条链路连接internet,将私网服务器提供给Internet上的用户访问。

防火墙作为出口网关,双出口、双ISP接入公网时,NAT Server配置通常需要一分为二,让一个私网服务器向两个ISP发布两个不同的公网地址供公网用户访问。一分为二方法有两种:
方法1:将接入不同ISP的公网接口规划在不同安全区域中,配置NAT Server时,带上Zone参数,使同一个服务器向不同安全区域发布不同的公网地址。

配置过程,假设私网服务器对ISP1发布公网地址:110.1.1.1,对ISP2发布的公网地址是210.1.1.1。
interface GigabitEthernet1/0/1 ip address 110.1.1.1 255.255.255.0
interface GigabitEthernet1/0/0ip address 210.1.1.1 255.255.255.0
interface GigabitEthernet1/0/2ip address 192.168.10.254 255.255.255.0firewall zone trustadd interface GigabitEthernet1/0/2firewall zone name ISP1set priority 10add interface GigabitEthernet1/0/1
firewall zone name ISP2 set priority 20add interface GigabitEthernet1/0/0配置带有zone参数的NAT Servernat server zone ISP1 protocol tcp global 110.1.1.1 9980 inside 192.168.10.2 80nat server zone ISP2 protocol tcp global 220.1.1.1 9980 inside 192.168.10.2 80基于不同域间关系配置两条安全策略
security-policyrule name ISP1source-zone ISP1destination-zone trustdestination-address 192.168.10.2 mask 255.255.255.255action permitrule name ISP2source-zone ISP2destination-zone trustdestination-address 192.168.10.2 mask 255.255.255.255action permit黑洞路由
ip route-static 110.1.1.1 255.255.255.255 NULL0
ip route-static 210.1.1.1 255.255.255.255 NULL0
配置完成后,防火墙会生成如下Server-map表项

从Server-map表项可以看出,正向和反向表项都已生成,Internet用户通过正向Server-map表项就可以访问私网服务器。私网服务器通过反向Server-map也可以主动访问Internet。
推荐在网络规划时,把防火墙与ISP1和ISP2两个接口分别加入到不同的安全区域,然后规划带有ZONE参数的NAT SERVER功能。
如果两个接口在同一区域如Untrust,并且现实情况不允许调整,那么还有另外一种配置方法。
方法二:配置NAT Server时候带上No-revers参数,使同一个服务器向外发布两个不同的公网地址。

为了保证可以正常配置NAT Server功能,必须使用no-reverse参数。
nat server 0 protocol tcp global 110.1.1.1 9980 inside 192.168.10.2 www no-reverse
nat server 1 protocol tcp global 210.1.1.1 9980 inside 192.168.10.2 www no-reverse
配置完成后,防火墙生成如下Server-map表项

从会话看出,只生成了正向表项,Internet上的公网用户通过正向表项可以访问私网服务器。但是如果私网服务器想要主动访问Internet,因为没有了反向表项,就必须在Trunst------Untrust域间配置源NAT策略。
如果在同一区域,不带No-reverse参数直接配置两条NAT SERVER命令,压根就不能同时下发。

思考下,假如这两条命令能同时下发,分两次下发。


第一条,反向表,将报文源地址192.168.10.2转换为110.1.1.1,第二条,反向表,将源地址192.168.10.2,转换为210.1.1.1,如果同时下发后,防火墙既可以将报文源地址由192.168.10.2转换为110.1.1.1,又可以将源地址192.168.10.2,转换为210.1.1.1,于是,防护墙凌乱了。这就是命令不带No-reverse参数同时下发出现的问题。如果带上no-reverse参数,就不会生成反向Server-map表项。
总结:
多出口下,两个接口分别配置两个区域,配置NAT Server时,配置zone参数,生成静态server-map表项,包含正向和反向,能区分反向的区域。
多出口下,两个接口同时配置一个区域,配置NAT Server时,配置no-reverse参数,生成静态server-map表项,只包含正向,无法区分反向的区域。
——————————————————————————————————————————————————
1.3.源进源出
上面介绍了NAT Server一分为二的配置方法,根据防火墙与ISP1和ISP2相连的2个接口是否加入到不同的安全区域,选择带有ZONE参数或带有No-Reverse参数来配置NAT Server。除此之外,双出口环境中,还需要考虑两个ISP中的公网用户使用哪个公网地址访问私网服务器的问题。

例如:ISP1网络中的公网用户如果通过防火墙发布了ISP2的公网地址来访问私网服务器,或者ISP1的公网用户访问服务器后,从ISP2回包的,基本就属于绕路了。而且有时候两个ISP之间由于利益冲突可能会存在无法互通的情况,就会导致访问过程很慢或干脆不通。
如第一种情况,要求我们向两个ISP中的公网用户告知公网地址时,避免两个ISP中的公网用户使用非本ISP的公网地址访问私网服务器。即对于ISP1的用户,就让其使用防火墙发布给ISP1的公网地址来访问私网服务器,对于ISP2的用户,就让使用防火墙发布的ISP2公网地址来访问。
第二种情况,就是上图情况,ISP1中的公网用户通过防火墙发布给ISP1的公网地址访问私网服务器,报文从防火墙G1/0/1进入,私网服务器回应报文到达防火墙后,虽然匹配了会话表并进行地址转换,但还是要根据目的地之查找路由来确定出接口。如果防火墙没有配置到该公网用户的明细路由,只配置了缺省路由,就可能会导致回应报文从连接ISP2的链路G1/0/0接口发出,该报文在ISP2的网络中传输时凶多吉少,有可能会变慢,也可能干脆就不能回到公网用户处,访问就会中断。
为了解决这个问题,可以在防火墙配置明细路由,让防火墙严格按照ISP1和ISP2各自的公网地址来选路。但ISP1和ISP2的公网地址数量很大,配置起来不太现实。为此,防火墙提供了源进源回(或源进源出)功能,即请求报文从某条路径进入,响应报文依然沿着同样的路径返回,而不用查找路由表来确定接口,保证了报文从一个接口进出。
源进源回功能在接口上配置,防火墙连接ISP1和ISP2的两个接口上都需要配置。假设,ISP1提供的下一跳接口是:110.1.1.254,ISP2提供的下一跳接口:210.1.1.254
interface GigabitEthernet1/0/1
redirect-reverse next-hop 110.1.1.254
interface GigabitEthernet1/0/0
redirect-reverse next-hop 210.1.1.254
其他根据版本不同所使用的命令:
reverse-route nexthop 110.1.1.254gateway 110.1.1.254
reverse-route enable
相关文章:
四、防火墙-NAT Server
学习防火墙之前,对路由交换应要有一定的认识 NAT Server1.1.基本原理1.2.多出口场景下的NAT Server1.3.源进源出 —————————————————————————————————————————————————— NAT Server 一般对用户提供一些可访问的…...
Rust - cargo项目里多个二进制binary crate的编译运行
目录 foo - Cargo.toml - src - - main.rs - - bin - - - other-bin.rs将除默认入口文件外待作为二进制crate处理的文件放在src/bin目录下 方法一: 命令行增加配置项 --bin xxx cargo run --bin foo // 注意! 这里是包名,不是main cargo run --bin o…...
python爬虫教程:selenium常用API用法和浏览器控制
文章目录 selenium apiwebdriver常用APIwebelement常用API 控制浏览器 selenium api selenium新版本(4.8.2)很多函数,包括元素定位、很多API方法均发生变化,本文记录以selenium4.8.2为准。 webdriver常用API 方法描述get(String url)访问目标url地址&…...
2024年天津天狮学院专升本食品质量与安全专业《分析化学》考纲
2024年天津天狮学院食品质量与安全专业高职升本入学考试《分析化学》考试大纲 一、考试性质 《分析化学》专业课程考试是天津天狮学院食品质量与安全专业高职升本入学考试 的必考科目之一,其性质是考核学生是否达到了升入本科继续学习的要求而进行的选拔性考试。《…...
2023年亚太地区数学建模大赛 C 题
我国新能源电动汽车的发展趋势 新能源汽车是指以先进技术原理、新技术、新结构的非常规汽车燃料为动力来源(非常规汽车燃料指汽油、柴油以外的燃料),将先进技术进行汽车动力控制和驱动相结合的汽车。新能源汽车主要包括四种类型:…...
TDlib readme
不同开发语言使用TDlib的连接入口:td/example/README.md at master tdlib/td (github.com) 如golang:td/example/README.md at master tdlib/td (github.com)...
紧急救援【Dijkstra】
作为一个城市的应急救援队伍的负责人,你有一张特殊的全国地图。在地图上显示有多个分散的城市和一些连接城市的快速道路。每个城市的救援队数量和每一条连接两个城市的快速道路长度都标在地图上。当其他城市有紧急求助电话给你的时候,你的任务是带领你的…...
「Verilog学习笔记」数据累加输出
专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点,刷题网站用的是牛客网 在data_out准备好,valid_b拉高时,如果下游的ready_b为低,表示下游此时不能接收本模块的数据,那么,将会拉低ready…...
typeof,instanceof
1.typeof typeof运算符返回的结果是以小写的字符串表示的变量的类型 2.instanceof instanceof运算符用于判断右边构造函数的原型对象是否在左边对象的原型链上 let arr[]let obj{}let datenew Dateconsole.log(arr instanceof Array)console.log(arr instanceof Object)conso…...
传统数仓和clickhouse对比
背景 传统数仓一般都是HiveSparkSql作为代表,不过也包括Kylin等,而clickhouse是实时OLAP的代表,我们简单看下他们的对比 传统数仓和clickhouse对比 HiveSparkSQL的传统数仓: 1.数据更新速度慢,由于传统数仓一般都是…...
burpsuite的大名早有耳闻,近日得见尊荣,倍感荣幸
问题: burpsuite中文乱码何解? burpsuite 与君初相识,犹如故人归。 burpsuite早有耳闻,近日得见真容,果然非同凡响。 Burp Suite is a comprehensive suite of tools for web application security testing. burp …...
Xshell连接VMware虚拟机中的CentOS
Xshell连接VMware虚拟机中的CentOShttps://www.cnblogs.com/niuben/p/13157291.html 步骤: 1. 检查Linux虚拟机的网络连接模式,确保它是NAT模式。(由于只在本机进行连接,所以没有选择桥接模式。当然,桥接模式的配置会…...
JVM类加载的过程和JVM垃圾回收机制
文章目录 一、JVM类加载的过程1.1类加载的基本流程1.1.1加载1.1.2验证1.1.3准备1.1.4解析1.1.5初始化 1.2双亲委派模型 二、JVM垃圾回收机制2.1找到垃圾2.1.1引用计数(比如Python,PHP中用到)2.1.2可达性分析(比如Java中用到) 2.2释放垃圾2.2.1标记清除2.2.2复制算法…...
【git error|SourceTree】error: bad signature 0x00000000 fatal: index file corrupt
报错 error: bad signature 0x00000000 fatal: index file corrupt 场景 在使用git add . 提交代码到缓冲区时或使用SourceTree时电脑宕机,重启后再次提交代码会出现该提示 原因分析 .git目录下的index文件损坏 解决方式 //删除索引文件 rm -f .git/index //回…...
读书笔记:《宽客人生:依曼纽尔·德曼》
金融工程,也叫数量金融,洞察了证券价值与不确定性之间的关系。 布莱克-斯科尔斯模型可以告诉我们如何利用标的股票来复制期权,以及复制期权的成本,做市商利用此来复制期权,以规避无法从其他人那里购买合适价格的期权的…...
车载通信架构 —— 传统车内通信网络LIN总线(低成本覆盖低速场景)
车载通信架构 —— 传统车内通信网络LIN总线(低成本覆盖低速场景) 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是…...
单例模式与多线程
目录 前言 正文 1.立即加载/饿汉模式 2.延迟加载/懒汉模式 1.延迟加载/懒汉模式解析 2.延迟加载/懒汉模式的缺点 3.延迟加载/懒汉模式的解决方案 (1)声明 synchronized 关键字 (2)尝试同步代码块 (3&am…...
Kafka系列 - Kafka一篇入门
Kafka是一个分布式流式处理平台。很多分布式处理系统,例如Spark,Flink等都支持与Kafka集成。 Kafka使用场景 消息系统:Kafka实现了消息顺序性保证和回溯消费。存储系统:Kafka把消息持久化到磁盘,相比于其他基于内存的…...
百度 文心一言 sdk 试用
JMaven Central: com.baidu.aip:java-sdk (sonatype.com) Java sdk地址如上: 文心一言开发者 文心一言 (baidu.com) ERNIE Bot SDK https://yiyan.baidu.com/developer/doc#Fllzznonw ERNIE Bot SDK提供便捷易用的接口,可以调用文心一言的能力&#…...
SQLite 和 SQLiteDatabase 的使用
实验七:SQLite 和 SQLiteDatabase 的使用 7.1 实验目的 本次实验的目的是让大家熟悉 Android 中对数据库进行操作的相关的接口、类等。SQLiteDatabase 这个是在 android 中数据库操作使用最频繁的一个类。通过它可以实现数据库的创建或打开、创建表、插入数据、删…...
uniapp 对接腾讯云IM群组成员管理(增删改查)
UniApp 实战:腾讯云IM群组成员管理(增删改查) 一、前言 在社交类App开发中,群组成员管理是核心功能之一。本文将基于UniApp框架,结合腾讯云IM SDK,详细讲解如何实现群组成员的增删改查全流程。 权限校验…...
深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录
ASP.NET Core 是一个跨平台的开源框架,用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录,以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...
超短脉冲激光自聚焦效应
前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应,这是一种非线性光学现象,主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场,对材料产生非线性响应,可能…...
Python:操作 Excel 折叠
💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...
【网络安全产品大调研系列】2. 体验漏洞扫描
前言 2023 年漏洞扫描服务市场规模预计为 3.06(十亿美元)。漏洞扫描服务市场行业预计将从 2024 年的 3.48(十亿美元)增长到 2032 年的 9.54(十亿美元)。预测期内漏洞扫描服务市场 CAGR(增长率&…...
连锁超市冷库节能解决方案:如何实现超市降本增效
在连锁超市冷库运营中,高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术,实现年省电费15%-60%,且不改动原有装备、安装快捷、…...
2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面
代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口(适配服务端返回 Token) export const login async (code, avatar) > {const res await http…...
Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级
在互联网的快速发展中,高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司,近期做出了一个重大技术决策:弃用长期使用的 Nginx,转而采用其内部开发…...
Caliper 配置文件解析:config.yaml
Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...
Typeerror: cannot read properties of undefined (reading ‘XXX‘)
最近需要在离线机器上运行软件,所以得把软件用docker打包起来,大部分功能都没问题,出了一个奇怪的事情。同样的代码,在本机上用vscode可以运行起来,但是打包之后在docker里出现了问题。使用的是dialog组件,…...
