域内双向NAT技术

这篇博客探讨了如何通过部署域内双向NAT,解决内网客户端通过公网地址访问内部HTTP Server的问题。实验中,配置了NAT Server将内网服务器映射到公网地址10.1.12.100,使外部Client3可以访问。然而,内网Client1访问10.1.12.100时,TCP请求因未配置正确的NAT转换而被丢弃。通过在AR1的G0/0/0接口上额外配置转换,最终实现了域内双向NAT,使得Client1也能成功访问HTTP Server。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

域内双向NAT

实验目的

企业内部有需要想要将内网的HTTP Server中WEB服务映射到公网地址10.1.12.100的80端口上,一般该需求只需要我们部署NAT Server,就可以使得其他网络内的客户端通过公网地址10.1.12.100访问内网HTTP 服务器的目的。

此时如果我们内网客户端也想要通过该公网地址去访问HTTP Server,那么会出现错误导致无法访问。将HTTP Server的私网地址直接透露出来,也不利于保障WEB服务器的安全性。

本实验通过部署域内双向NAT,使得内网地址能够通过访问10.1.12.100(即映射出的公网地址)来达成访问HTTP Server的目的。

实验拓扑

图:域内双向NAT场景

正常情况下,我们需要将内网的HTTP Server映射到外网,以便其他网络内的主机对该地址进行资源访问。首先我们部署内网的映射配置,将内网HTTP Server(192.168.1.100)映射到10.1.12.100。并登录到Clietn3,测试Client3访问10.1.12.100

1、全网配置IP地址

Clietn 1 ip:192.168.1.2/24 GW 192.168.1.254(AR1的G0/0/0)
Clietn 3 ip:192.168.2.2/24 GW 192.168.2.254(AR2的G0/0/0)
AR1和AR2互联地址为10.1.12.1 和10.1.12.2。其余地址图内均有标识

2、在AR1和AR2的G0/0/1出接口上部署easy NAT,使得内网地址能够正常访问外网。

AR1和AR2的配置如下,就是双方的acl per地址网段有所差异。
[AR1]acl 2000
[AR1-acl-basic-2000]rule per sou 192.168.1.0 0.0.0.255
[AR1-acl-basic-2000]quit
//匹配source 地址为192.168.1.0/24

[AR1]int g0/0/1
[AR1-GigabitEthernet0/0/1]nat outbound 2000
//配置easy NAT,使得内网地址能够成功访问外网

3、配置基本的NAT Server,将内网服务器映射到10.1.12.100,以便处于其他网络的Clietn3能够正常访问。

在AR1的G0/0/1出接口上进行如下配置:

AR1的G0/0/1出接口配置如下:
[AR1]int g0/0/1
[AR1-GigabitEthernet0/0/1]nat server pro tcp glo 10.1.12.100 80 inside 192.168.1.100 80
// 用于将内网的Server 映射到10.1.12.100 .

在经过上述部署后,Clietn3能够正常通过公网地址10.1.12.100 访问内部的HTTP Server,

内部HTTP Server的配置很简单,就是一个启用的过程,这里就直接跳过了。

此时我们验证其他域的Client3访问10.1.12.100能否正常通信。

图:Client3成功访问HTTP Server

此时Client3能够正常通过10.1.12.100访问内部的HTTP Server服务器,但我们本次实验是为了探究域内双向NAT的过程。我们查看域内Client1能否正常访问内部的HTTP Server服务器。

图:Client1无法访问HTTP Server

此时本次实验的重点来了,由于Client1访问10.1.12.100时,他会将HTTP请求给到网关(或者说是TCP连接请求)。到达网关时,网关发现目的地址是10.1.12.100(AR1的G0/0/1同网段地址),于是想要将该数据包从G0/0/1发出,不过G0/0/1接口上配置了NAT Server,发现转换后的地址是AR1的G0/0/0网段地址,那么该HTTP请求又从G0/0/0接口发回,G0/0/0接口上并没有配置NAT Server进行转换。所以此时的HTTP 请求数据包,Src ip是Client1地址,Dst 地址为10.1.12.100。但内网又没人是这个地址,于是该TCP请求被丢弃。

**备注:**可以通过抓包发现,AR1的G0/0/1出接口并无数据包,而G0/0/0的接口存在TCP无回应。

于是为了解决该一现象,我们可以在AR1的G0/0/0接口上通过配置转换,将Dst 10.1.12.100转换回服务器地址。使得Client1或域内其他客户端能够通过公网地址服务器的访问操作。

4、在AR1的G0/0/0接口上执行如下命令,完成 “域内双向NAT” 的部署。

[AR1]acl 3000
[AR1-acl-adv-3000]rule per tcp des 10.1.12.100 0
[AR1-acl-adv-3000]quit
//配置ACL 3000,匹配目标地址为10.1.12.100的数据。

[AR1]int g0/0/0
[AR1-GigabitEthernet0/0/0]nat server pro tcp glo 10.1.12.100 80 inside 192.168.1.100 80
[AR1-GigabitEthernet0/0/0]nat outbound 3000
[AR1-GigabitEthernet0/0/0]

//在G0/0/0接口上也部署一个NAT Server转换。使得内网的HTTP请求数据包的目的地址能够转换成192.168.1.100

我们再次在Client1上面测试访问,看看能否成功通信!

)

图:Client1成功访问HTTP Server

成功完成通信!至此,域内双向NAT成功。

实验思考

Q:在AR1的G0/0/0上进行部署时,需要配置EASY NAT,若不配置,通信是否正常?

Q:需要EASY NAT的原因是:防止回包不经过网关接口而无法进行NAT server地址转换,若在交换机上部署隔离,能否正常通信呢?

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奋斗Zalvin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值