问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

双向NAT应用场景和配置详解

创作时间:
作者:
@小白创作中心

双向NAT应用场景和配置详解

引用
CSDN
1.
https://blog.csdn.net/Richardlygo/article/details/141638427

双向NAT(Network Address Translation)是一种网络地址转换技术,主要用于解决内网设备访问外网以及内网设备之间跨网段访问的问题。本文将详细介绍双向NAT的几种应用场景及其配置方法,包括域内双向NAT、域间双向NAT和NAT ALG。

域内双向NAT(端口回流)

在局域网中,当一台或多台服务器需要对外映射提供服务时,可能会遇到内网终端通过映射后的公网地址访问时无法访问的情况。这是因为当终端通过映射后的公网地址访问时,会出现源地址和目的地址在同一网段的情况,导致无法建立TCP连接。

故障现象

  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.255
 nat outbound 3000
#
interface GigabitEthernet0/0/1
 ip address 10.1.12.1 255.255.255.0 
#在外网接口配置内网服务器和公网地址对应关系
 nat server protocol tcp global 10.1.12.10 www inside 192.168.1.2 www
 nat outbound 2000
#
#默认路由指向外网下一跳
ip route-static 0.0.0.0 0.0.0.0 10.1.12.2

AR2配置

interface GigabitEthernet0/0/0
 ip 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
![](https://wy-static.wenxiaobai.com/chat-rag-image/16449727923553702595)
#
#参考解决方案步骤4,做源地址转换匹配流量
acl number 2000  
 rule 5 permit source 192.168.1.0 0.0.0.255 
#
interface GigabitEthernet0/0/0
 ip address 10.1.12.1 255.255.255.0 
#客户端路由器做源地址转换
 nat outbound 2000
#
interface GigabitEthernet0/0/1
 ip 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/0
 ip 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/1
 ip address 192.168.1.254 255.255.255.0 

NAT ALG

一般情况下,NAT只能对IP报文的头部地址和TCP/UDP头部的端口信息进行转换。对于一些多通道协议,例如DNS、FTP等,数据部分可能包含IP地址或端口信息,这些内容不能被NAT有效的转换,导致无法正确完成通信。配置应用层网关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/0
 ip address 192.168.1.254 255.255.255.0 
#
interface GigabitEthernet0/0/1
 ip 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/0
 ip address 10.1.12.2 255.255.255.0 
#上网esay-ip接口地址转换
 nat outbound 2000
#
interface GigabitEthernet0/0/1
 ip address 192.168.2.254 255.255.255.0   

开启NAT-ALG后现象

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号