华为防火墙双向NAT实验

发布于:2025-06-28 ⋅ 阅读:(16) ⋅ 点赞:(0)

如图所示, 企业内网有一台Server2,通过在FW1上配置nat server,将Server2的www端口映射到了公网;

实验环境中,内网和外网都使用外网的server1提供的DNS服务,在DNS服务器上添加A记录,www.baidu.com映射给202.96.208.102

此时外网能访问该www.baidu.com,但是内网client2却无法访问。

为了实现内网client2也能访问www.baidu.com,在FW1上配置双向NAT。

注意:模拟器只能使用FW防火墙来实现双向NAT

一、配置FW1的访问策略为全通

实验需要,生产环境不可如此配置

配置nat server,将192.168.1.2的www映射成202.96.208.102的www

防火墙和路由器的区别是,防火墙配置nat server是在全局下配置,而路由器是在接口下配置

二、在Server1上添加A记录

三、在Client1上配置DNS服务器并访问www.baidu.com

此时在Client1上能正常访问www.baidu.com

且在防火墙上能看到会话

能看到202.96.208.101访问202.96.208.102的80端口是,将202.96.208.102转换成了192.168.1.2的80端口;

四、在Client2上配置DNS服务器并访问www.baidu.com

如果Client2要访问外网的DNS服务器,那么还需要在防火墙上配置SRC-NAT

测试Client2能ping通外网DNS服务器202.96.209.102

可以看到client2已经转换成了防火墙外网接口ip出去了

此时从Client2上访问www.baidu.com

可以看到失败了

我们在Client2的接口上抓包,能看到,当Client2去访问www.baidu.com的时候,首先进行了dns解析

然后DNS服务器返回的A记录是202.96.208.102

紧接着Client2去访问202.96.208.102的80端口

但由于防火墙上做了nat server,会将202.96.208.102转换成192.168.1.2,防火墙处理包的流程是先nat server,然后找路由,根据目的192.168.1.2,会将该报文(源192.168.1.1,目的192.168.1.2)直接从自己的内网口转发出去,转发给了Server2(192.168.1.2),Server2看到源是192.168.1.1,就直接通过2层局域网回应了Client2,所以在上图中能看到192.168.1.2回应192.168.1.1的SYN,ACK报文。但是192.168.1.1并没有发送给192.168.1.2 SYN报文,所以直接进行了reset,也就导致访问www.badiu.com失败了。这就是通常所说的“三角传输”。

为了解决这种情况,一般都会在防火墙上做“双向NAT”或叫“回流”或叫“二次NAT”,即,当内网访问内网所映射的公网地址的时候,将源ip转换成防火墙接口ip,让流量往返都能经过防火墙,来实现会话的对应。

五、防火墙配置双向NAT

我们的目的是将192.168.1.1去访问202.96.208.102的时候,让192.168.1.1转换成192.168.1.254,让202.96.208.102转换成192.168.1.2;目的转换已经由nat server实现,那么怎么让192.168.1.1转换成192.168.1.254呢?

前面我们已经配置nat-policy

这个策略是,当源区域trust去访问目的区域untrust的时候,就将源做转换,转换成出接口,那么我们只需要在该策略上添加目的区域为trust,就能实现将192.168.1.1转换成192.168.1.254

六、验证双向NAT后从Client2访问www.baidu.com

可以看到能正常访问

从抓包中能看到已经变成了正常交互,而非“三角传输”

在防火墙会话中也能看到双向NAT

即:

src:192.168.1.1[2073];dst:202.96.208.102[80]

双向NAT后

src:192.168.1.254[2051];dst:192.168.1.2[80]


网站公告

今日签到

点亮在社区的每一天
去签到