安全HCIE防火墙精品实验之源NAT基础篇(二)

2020-06-09  本文已影响0人  誉天education

NAPT(Network Address Port Translation,网络地址端口转换),与NAT No-pat区别在于NAPT不仅转换IP包中的IP地址,还会对TCP、UDP等源端口执行转换。NAPT是多对一转换方式,多个内网主机可以使用一个公网IP实现对互联网的访问。

一、实验拓扑

拓扑图-1

实验拓扑图-1要求实现Trust区域 HTTP Client、PC1访问Untrust区域HTTP Server,因为Client、PC1在内网,Server在外网,需要在FW1部署NAPT技术实现。

1.1 基本配置

表1是拓扑中接口、IP地址、安全区域规划:

1.2 实验步骤

步骤1 在FW1上将各接口划入相应安全区域。

<FW1>system-view //进入system-view

Enter system view, return user view with Ctrl+Z.

[FW1]firewall zone trust

[FW1-zone-trust]addinterface GigabitEthernet 1/0/1//将FW1的内网接口G1/0/1划入Trust区域

[FW1-zone-trust]quit

[FW1]firewall zone untrust   

[FW1-zone-untrust]addinterface GigabitEthernet 1/0/2//将FW1的外网接口G1/0/2划入Utrust区域

[FW1-zone-untrust]quit

 

步骤2 在FW1上定义NAT地址池

[FW1]nat address-group 1

[FW1-address-group-1]mode pat //在公网地址池中定义NAPT转换方式

[FW1-address-group-1]section0 202.100.1.100 202.100.1.100 //定义公网地址池公网IP范围,只定义了一个公网IP

步骤3 在FW1配置NAT策略

[FW1]nat-policy

[FW1-policy-nat]rule name Source_NAT

[FW1-policy-nat-rule-Soure_NAT]source-zone trust

[FW1-policy-nat-rule-Soure_NAT]destination-zone untrust

[FW1-policy-nat-rule-Soure_NAT]source-address 172.16.1.0 24//定义哪些私网主机做源NAT转换访问外网server

[FW1-policy-nat-rule-Soure_NAT]action source-nat address-group 1 //关联公网地址池

步骤4 在FW1配置安全策略

[FW1]security-policy

[FW1-policy-security]rule name A

[FW1-policy-security-rule-A]source-address 172.16.1.1 32  

[FW1-policy-security-rule-A]source-address 172.16.1.2 32//定义NAT转换前的私网IP地址  *因为华为防火墙安全策略检查在NAT策略之前,如果源IP定义的是转换后的公网IP,则流量无法通过检查

[FW1-policy-security-rule-A]source-zone trust

[FW1-policy-security-rule-A]destination-zone untrust

[FW1-policy-security-rule-A]service http //允许HTTP业务通过

[FW1-policy-security-rule-A]service icmp //允许ICMP业务通过

[FW1-policy-security-rule-A]action permit

步骤5 在FW1、R1与R2上配置路由

[FW1]ip route-static 0.0.0.0 0.0.0.0 202.100.1.2 //在FW1配置默认路由指向公网下一跳R2

[FW1]ip route-static 172.16.1.0 255.255.255.0 10.1.11.1//在FW1配置去往私网主机的路由

[R1]ip route-static 0.0.0.0 0.0.0.0 10.1.11.2 //在R1配置默认路由指向FW1边界

[R2]ip route-static 202.100.1.100 32 202.100.1.1//防火墙FW1上NAT地址池与公网接口地址不在一个网段,路由器R2需配置一条到达NAT地址池的路由

NAPT配置与NAT No-PAT是一样的,区别在nat address group中需要定义mode pat表示NAPT转换模式。

二、实验分析

 A. 在HTTP Client上访问HTTP Server,在PC1 ping HTTP Server:

图-2

图-3

当HTTP Client的TCP流量、以及PC1的ICMP流量抵达防火墙,按照FW1对于报文处理流程,类似NAT No-PAT,在匹配NAT策略之前,首先安全策略需要检查通过。

 B. 安全策略检查通过之后,NAT策略对流量执行NAPT转换,查看防火墙会话表:

图-4

图4是HTTP Client访问Server的TCP协议报文流量172.16.1.1:2061[202.100.1.100:2049]--> 100.1.1.1:80,其中源IP 172.16.1.1被转换成nat address group中的公网IP 202.100.1.100,同时TCP源端口2061被转换成2049,因为TCP协议报文流有端口号,即可以被NAPT执行端口转换。

但是对于没有端口号的ICMP协议报文流,FW1上会话表中关于ICMP五元组信息的端口是如何生成的呢?

图-5

图5是PC1去ping访问Server的ICMP协议报文流 172.16.1.2:43637[ 202.100.1.100:2049] --> 100.1.1.1:2048,PC1访问Server的ICMP流量源IP也被转换成nat address group中的公网IP 202.100.1.100,即多对一转换,Client与PC公用一个公网IP访问外网Server,同时ICMP报文流的源端口43637被转换至2049。

那么ICMP协议报文流的端口号从何而来?对于ICMP报文流,是提取ICMP报文中的Id值做源端口,目的端口固定为2048,观察PC1访问Server的ICMP报文:

图-6

图6是FW1收到PC1发送至Server的初始ICMP报文,发现Id值43637,提取至会话表中当作ICMP协议的源端口(NAPT转换后是2049),这也就不难解释FW1会话表关于ICMP的五元组信息了。通过FW1的会话表我们还发现HTTP Client、PC1访问Server的流量源端口都被转成2049这个端口,考虑一下,转换后的公网IP、端口都是一样的,这好像是NAPT转换冲突啊。

其实TCP、ICMP协议在FW1会话表中体现的五元组还是有不不同的部分,那就是目的端口,TCP报文流目的端口是80、ICMP报文流目的端口是2048,我们还是可以通过目的端口区分两组不同的报文流的,只要五元组不完全相同,我们是不必担心NAPT转换冲突问题的。注意,NAPT不会像NAT No-PAT生成Server-map表项:

图-7

NAPT主要用于让内网大量主机访问互联网,如果为每个数据流建立Server-map表项,会占用设备资源。

以上是对源NAT基础实现的介绍,如果想让外网Client访问内网Server,我们应该怎么做呢?下期分享防火墙NAT Server实现方式:

下期再见!!

上一篇下一篇

猜你喜欢

热点阅读