双向NAT应用场景和配置

2024-08-28 15:04
文章标签 配置 应用 场景 双向 nat

本文主要是介绍双向NAT应用场景和配置,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

域内双向NAT(端口回流)

局域网内有一台或多台服务器可能需要对外映射提供服务,如内网终端也需要访问,这时如终端通过映射后的公网地址访问会出现无法访问的情况,这时就需要域内双向NAT(华三很多路由器会有hairpin这个功能,勾选应用则开启,或在内网接口配置nat hairpin enable)

故障现象

故障分析

1、当客户端需要访问一台服务器,但是是通过域名访问,不知道服务器就在同局域网

2、通过域名访问会先寻找网关,网关会发现需要访问的服务器就在局域网内,会直接转发至服务器(源地址没有发生变化),未经过NAT

3、当服务器发现网关转发来的(重定向),源发送来的TCP-SYN,且是同网段,会直接回应源(不经过网关)

4、客户端收到服务器回应的TCP-ACK报文,客户端访问的服务器是公网地址,但是收到同网段的TCP-ACK,所以无法建立成功三次握手导致访问失败

解决方案

1、全局配置(防火墙)NAT映射不需要在内网接口重新映射,因为全局映射的会直接转换

2、需要在内网接口做NAT转换映射(在内网接口生成映射表象)

设备配置

AR1配置

#创建上网匹配源地址
acl number 2000  rule 5 permit 
#
acl number 3000
#匹配内网地址访问映射地址时的流量rule 5 permit ip source 192.168.1.0 0.0.0.255 destination 10.1.12.0 0.0.0.255 #interface GigabitEthernet0/0/0
#配置内网接口地址ip address 192.168.1.254 255.255.255.0 
#在内网接口配置内网服务器和公网地址对应关系nat static global 10.1.12.10 inside 192.168.1.2 netmask 255.255.255.255nat outbound 3000
#
interface GigabitEthernet0/0/1ip address 10.1.12.1 255.255.255.0 #在外网接口配置内网服务器和公网地址对应关系nat server protocol tcp global 10.1.12.10 www inside 192.168.1.2 wwwnat outbound 2000##默认路由指向外网下一跳ip route-static 0.0.0.0 0.0.0.0 10.1.12.2

AR2配置

interface GigabitEthernet0/0/0ip address 10.1.12.2 255.255.255.0

实验现象验证

域间双向NAT

故障场景

在两个不同的局域网(地址重叠的情况),其中一个局域网中的客户端需要访问另外一个局域网中的服务器时,例如双方局域网IP网段都为192.168.1.0/24,客户端会检测源地址,和服务器目的地址为相同网段,则直接发送ARP解析

解决方案

1、让客户端访问服务器时,故意不为同网段,实际服务器端IP还是冲突,两台路由器之间接口做NAT转换

2、配置静态路由,指向服务器端的路由器

3、服务器端的路由器做NAT转换

4、当服务器端回包时,原地址为同网段,会直接单播回应,所以客户端路由器需要做源地址转换

设备配置

AR1配置

sysname AR1##参考解决方案步骤4,做源地址转换匹配流量acl number 2000  rule 5 permit source 192.168.1.0 0.0.0.255 #interface GigabitEthernet0/0/0ip address 10.1.12.1 255.255.255.0 #客户端路由器做源地址转换nat outbound 2000#interface GigabitEthernet0/0/1ip address 192.168.1.254 255.255.255.0 ##配置去往AR2映射的虚拟地址静态路由ip route-static 192.168.2.0 255.255.255.0 10.1.12.2

AR2配置

sysname AR2#interface GigabitEthernet0/0/0ip address 10.1.12.2 255.255.255.0 #映射服务器地址(虚拟地址)nat server protocol tcp global 192.168.2.100 www inside 192.168.1.1 www#interface GigabitEthernet0/0/1ip address 192.168.1.254 255.255.255.0 

实验现象验证

NAT ALG

一般情况下,NAT只能对IP报文的头部地址和TCP/UDP头部的端口信息进行转换。对于一些多通道协议,例如DNS、FTP等,数据部分可能包含IP地址或端口信息,这些内容不能被NAT有效的转换,导致无法正确完成通信

如果要解决这个问题,就要求NAT可以识别报文数据部分的IP地址或端口信息。配置应用层网关ALG(Application Level Gateway),可以使NAT设备识别被封装在报文数据部分的IP地址或端口信息,并根据映射表项进行替换,实现报文正常穿越NAT,可以支持各种特殊的应用协议。目前ALG支持的协议包括:DNS、FTP、SIP、PPTP和RTSP

故障场景

未开启NAT-ALG时故障现象

AR1配置

sysname AR1##acl匹配源地址acl number 2000  rule 5 permit source 192.168.1.0 0.0.0.255 #开启alg功能nat alg ftp enable#interface GigabitEthernet0/0/0ip address 192.168.1.254 255.255.255.0 #interface GigabitEthernet0/0/1ip address 10.1.12.1 255.255.255.0 #映射内网ftp服务nat server protocol tcp global 10.1.12.100 ftp inside 192.168.1.1 ftp#上网esay-ip接口地址转换nat outbound 2000##指向运营商出接口下一跳ip route-static 0.0.0.0 0.0.0.0 10.1.12.2

AR2配置

sysname AR2##acl匹配源地址acl number 2000  rule 5 permit source 192.168.2.0 0.0.0.255#interface GigabitEthernet0/0/0ip address 10.1.12.2 255.255.255.0 #上网esay-ip接口地址转换nat outbound 2000#interface GigabitEthernet0/0/1ip address 192.168.2.254 255.255.255.0 

开启NAT-ALG后现象

转载:HCIA笔记-18、双向NAT应用场景和配置

这篇关于双向NAT应用场景和配置的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

mybatis映射器配置小结

《mybatis映射器配置小结》本文详解MyBatis映射器配置,重点讲解字段映射的三种解决方案(别名、自动驼峰映射、resultMap),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定... 目录select中字段的映射问题使用SQL语句中的别名功能使用mapUnderscoreToCame

防止Linux rm命令误操作的多场景防护方案与实践

《防止Linuxrm命令误操作的多场景防护方案与实践》在Linux系统中,rm命令是删除文件和目录的高效工具,但一旦误操作,如执行rm-rf/或rm-rf/*,极易导致系统数据灾难,本文针对不同场景... 目录引言理解 rm 命令及误操作风险rm 命令基础常见误操作案例防护方案使用 rm编程 别名及安全删除

Linux下MySQL数据库定时备份脚本与Crontab配置教学

《Linux下MySQL数据库定时备份脚本与Crontab配置教学》在生产环境中,数据库是核心资产之一,定期备份数据库可以有效防止意外数据丢失,本文将分享一份MySQL定时备份脚本,并讲解如何通过cr... 目录备份脚本详解脚本功能说明授权与可执行权限使用 Crontab 定时执行编辑 Crontab添加定

Java使用jar命令配置服务器端口的完整指南

《Java使用jar命令配置服务器端口的完整指南》本文将详细介绍如何使用java-jar命令启动应用,并重点讲解如何配置服务器端口,同时提供一个实用的Web工具来简化这一过程,希望对大家有所帮助... 目录1. Java Jar文件简介1.1 什么是Jar文件1.2 创建可执行Jar文件2. 使用java

PHP应用中处理限流和API节流的最佳实践

《PHP应用中处理限流和API节流的最佳实践》限流和API节流对于确保Web应用程序的可靠性、安全性和可扩展性至关重要,本文将详细介绍PHP应用中处理限流和API节流的最佳实践,下面就来和小编一起学习... 目录限流的重要性在 php 中实施限流的最佳实践使用集中式存储进行状态管理(如 Redis)采用滑动

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

Vite 打包目录结构自定义配置小结

《Vite打包目录结构自定义配置小结》在Vite工程开发中,默认打包后的dist目录资源常集中在asset目录下,不利于资源管理,本文基于Rollup配置原理,本文就来介绍一下通过Vite配置自定义... 目录一、实现原理二、具体配置步骤1. 基础配置文件2. 配置说明(1)js 资源分离(2)非 JS 资

MySQL8 密码强度评估与配置详解

《MySQL8密码强度评估与配置详解》MySQL8默认启用密码强度插件,实施MEDIUM策略(长度8、含数字/字母/特殊字符),支持动态调整与配置文件设置,推荐使用STRONG策略并定期更新密码以提... 目录一、mysql 8 密码强度评估机制1.核心插件:validate_password2.密码策略级

ShardingProxy读写分离之原理、配置与实践过程

《ShardingProxy读写分离之原理、配置与实践过程》ShardingProxy是ApacheShardingSphere的数据库中间件,通过三层架构实现读写分离,解决高并发场景下数据库性能瓶... 目录一、ShardingProxy技术定位与读写分离核心价值1.1 技术定位1.2 读写分离核心价值二

QT Creator配置Kit的实现示例

《QTCreator配置Kit的实现示例》本文主要介绍了使用Qt5.12.12与VS2022时,因MSVC编译器版本不匹配及WindowsSDK缺失导致配置错误的问题解决,感兴趣的可以了解一下... 目录0、背景:qt5.12.12+vs2022一、症状:二、原因:(可以跳过,直奔后面的解决方法)三、解决方