eNSP 防火墙 NAT 策略配置(Easy IP/No-PAT/NAPT/ 黑洞路由)

一、项目背景与拓扑总览(Easy IP/No-PAT/NAPT/ 黑洞路由)

本项目模拟企业内网用户访问公网的场景,通过华为防火墙实现不同方式的源 NAT 转换,解决内网地址无法直接在公网路由的问题。核心拓扑如下:

  • Trust 区域(内网):PC1(10.1.1.1/24)、PC2(10.1.1.2/24)等用户主机,网关为防火墙 GE1/0/1(10.1.1.254/24)
  • Untrust 区域(公网):Server1(1.1.1.1/24)模拟公网服务器,防火墙出口 GE1/0/2(1.1.1.254/24)
  • 核心目标:让内网主机通过不同 NAT 方式,成功访问公网 Server1,并理解各 NAT 的适用场景与差异。


二、前置基础配置(所有任务通用"黑洞路由"除外)

1. 终端基础配置(PC/Server)

表格

设备 IP 地址 子网掩码 网关
PC1 10.1.1.1 255.255.255.0 10.1.1.254
PC2 10.1.1.2 255.255.255.0 10.1.1.254
Server1 1.1.1.1 255.255.255.0 1.1.1.254

2. 防火墙基础配置

(1)接口 IP 配置
复制代码
# 配置Trust区域接口
interface GigabitEthernet 1/0/1
 undo shutdown
 ip address 10.1.1.254 255.255.255.0
# 配置Untrust区域接口
interface GigabitEthernet 1/0/2
 undo shutdown
 ip address 1.1.1.254 255.255.255.0
(2)安全区域划分

bash

运行

复制代码
# 将接口加入对应安全区域
firewall zone trust
 add interface GigabitEthernet 1/0/1
firewall zone untrust
 add interface GigabitEthernet 1/0/2
(3)安全策略(允许 Trust→Untrust 访问)

bash

运行

复制代码
security-policy
 rule name Tru->Untru
  source-zone trust
  destination-zone untrust
  source-address 10.1.1.0 mask 255.255.255.0
  action permit

三、任务 1:Easy IP 方式访问外网

1. 原理说明

Easy IP 是一种特殊的 NAPT,直接使用防火墙出接口的公网 IP 作为转换后的源 IP,无需额外配置地址池,适合小型企业场景。

2. 配置命令

bash

运行

复制代码
# 配置Easy IP源NAT策略
nat-policy
 rule name tru->untru
  source-zone trust
  destination-zone untrust
  source-address 10.1.1.0 mask 255.255.255.0
  action source-nat easy-ip

3. 验证与结果

  • 在内网 PC 上 ping 1.1.1.1,可正常通
  • 查看防火墙会话表,可见 PC1 和 PC2 的源 IP 都被转换为出接口 IP 1.1.1.254,端口号不同,实现多用户复用同一公网 IP。


四、任务 2:No-PAT 方式访问外网

1. 原理说明

No-PAT(静态 NAT)为内网主机一对一分配公网地址池中的 IP,不进行端口转换,适合需要固定公网 IP 的场景,但地址池地址数量不能少于内网用户数。

2. 配置命令

bash

运行

复制代码
# 1. 配置NAT地址池(No-PAT模式)
nat address-group group1 0
 mode no-pat global
 section 0 1.1.1.10 1.1.1.11
# 2. 配置源NAT策略
nat-policy
 rule name no_pat
  source-zone trust
  destination-zone untrust
  source-address 10.1.1.0 mask 255.255.255.0
  action source-nat address-group group1

3. 验证与结果

  • PC1 ping Server1,会话表中 PC1 的源 IP 被转换为地址池中的 1.1.1.10
  • PC2 ping Server1,源 IP 被转换为 1.1.1.11,端口号未发生变化,实现一对一地址转换。
  • 当地址池地址耗尽时,后续内网用户将无法访问公网,这也是 No-PAT 的局限性。


五、任务 3:NAPT 方式访问外网

1. 原理说明

NAPT(端口地址转换)通过 "IP + 端口号" 的方式,让多个内网用户复用少量公网 IP,是企业最常用的 NAT 方式,兼顾地址利用率和访问需求。

2. 配置命令

bash

运行

复制代码
# 1. 配置NAT地址池(NAPT模式,默认即该模式)
nat address-group group1 0
 mode pat
 route enable
 section 0 1.1.1.10 1.1.1.11
# 2. 配置源NAT策略
nat-policy
 rule name Tru->Untru
  source-zone trust
  destination-zone untrust
  source-address 10.1.1.0 mask 255.255.255.0
  action source-nat address-group group1

3. 验证与结果

  • 多台内网 PC 同时 ping Server1,会话表中可见:
    • 不同 PC 的源 IP 被转换为地址池中的公网 IP(如 1.1.1.10/11)
    • 同一公网 IP 下通过不同端口号区分不同内网用户,实现 "多对一" 复用
  • 即使地址池地址数量少于内网用户数,也能通过端口复用支持更多用户访问。


六、任务 4:黑洞路由配置(解决 NAT 环路问题)

1. 问题背景

当公网用户访问 NAT 地址池中的公网 IP 时,防火墙会将报文回发到内网,导致路由环路和资源浪费,因此需要配置黑洞路由。

2. 配置命令

路由器基础配置

bash 复制代码
interface GigabitEthernet 0/0/1
 undo shutdown
 ip address 1.1.2.1 255.255.255.0

interface GigabitEthernet 0/0/2
 undo shutdown
 ip address 2.2.2.1 255.255.255.0

防火墙基础配置

(1)接口 IP 配置
复制代码
# 配置Trust区域接口
interface GigabitEthernet 1/0/1
 undo shutdown
 ip address 10.1.1.254 255.255.255.0
# 配置Untrust区域接口
interface GigabitEthernet 1/0/2
 undo shutdown
 ip address 1.1.2.254 255.255.255.0
(2)安全区域划分
复制代码
# 将接口加入对应安全区域
firewall zone trust
 add interface GigabitEthernet 1/0/1
firewall zone untrust
 add interface GigabitEthernet 1/0/2
(3)安全策略(允许 Trust→Untrust 访问)
复制代码
security-policy
 rule name Tru->Untru
  source-zone trust
  destination-zone untrust
  source-address 10.1.1.0 mask 255.255.255.0
  action permit
(4)配置NAT地址池,配置时开启允许端口地址转换,实现公网地址复用
bash 复制代码
nat addresss-group  group1 0
mode pat
section 0 1.1.1.10  1.1.1.11
(5)配置NAPT方式的源NAT策略,使用上面步骤地址池中地址来访问外网
bash 复制代码
nat-policy
rule  name Tru-Untru
source-zone trust
destination-zone  untrust
source-address 10.1.1.0  mask 255.255.255.0
action source-nat  address-group  group1
(6)在防火墙上配置静态路由,下一跳为路由器入口
bash 复制代码
ip  route-static  0.0.0.0  0.0.0.0  1.1.2.1
(7)在路由器上配置静态路由,下一跳为防火墙出接口
bash 复制代码
ip route-static  0.0.0.0   0.0.0.0  1.1.2.254

3.测试与结果

为便于测试,1.1.1.10启动黑洞路由,1.1.1.11不启用黑洞路由

bash 复制代码
# 在防火墙上配置黑洞路由,将地址池网段指向NULL0接口
ip route-static 1.1.1.10 255.255.255.255 NULL 0

(1)用公网PC去ping 1.1.1.11 -c 1,只发送一个ping包,在g1/0/2口抓包

发现报文的TTL值逐一递减,最后变为1。TTL是报文的生存时间,每经过一台设备的转发,TTL的值减1,当TTL的值为0时就会被设备丢弃。这说明公网PC主动访间NAT地址池地址的报文在防火墙和路由器之间相互转发,直到TTL变成0之后被最后收到该报文的设备丢弃,造成资源浪费。这是因为1.1.1.11没有配置黑洞路由,造成了路由环路。

(2)用位于公网的PC3去ping 1.1.1.10-c1,只发送一个ping包,在GE1/0/2口抓包,如图所示。

没有出现以上多个ping包在防火墙和路由器之间转发的现象,这是因为1.1.1.10配置了黑洞路由,没有形成路由环路。

(3)测试结论。需要为两个地址均配置黑洞路由,命令如下:

bash 复制代码
# 在防火墙上配置黑洞路由,将地址池网段指向NULL0接口
ip route-static 1.1.1.10 255.255.255.255 NULL 0
ip route-static 1.1.1.11 255.255.255.255 NULL 0

七、四种 NAT 方式对比总结

表格

NAT 类型 核心特点 地址利用率 适用场景
Easy IP 直接复用出接口 IP,端口复用 极高 小型企业、出口 IP 固定的场景
No-PAT 一对一 IP 转换,无端口复用 低(地址池地址数≥用户数) 需要固定公网 IP 的内网主机
NAPT IP + 端口复用,多对一转换 中大型企业,用户多公网 IP 少
黑洞路由 防止 NAT 地址回包环路 - 所有配置 NAT 地址池的场景

八、常见问题与排坑指南

  1. 内网 ping 不通公网
    • 检查安全策略是否允许 Trust→Untrust 方向的流量
    • 检查防火墙接口 IP 配置,确认 PC/Server 的网关指向正确
    • 检查 NAT 策略的源地址范围是否包含内网网段
  2. No-PAT 地址池耗尽后用户无法访问
    • 地址池地址数量不足,可增加地址池地址或改用 NAPT 模式
  3. NAT 环路问题
    • 忘记配置黑洞路由,导致公网访问地址池 IP 时出现环路,必须配置 NULL0 路由
相关推荐
2601_955256472 小时前
服务器日志管理最佳实践:logrotate配置详解、云日志服务对比与Docker日志限制方案
运维·服务器·docker
叶子上的考拉2 小时前
解决远程连接服务器反应较慢问题
linux·运维·服务器
小柯博客2 小时前
STM32MP2 RIF资源隔离框架详解:从架构到实践
网络·stm32·单片机·嵌入式硬件·架构·嵌入式·yocto
JackSparrow4142 小时前
彻底理解Java NIO(一)C语言实现 单进程+多进程+多线程 阻塞式I/O 服务器详解
java·linux·c语言·网络·后端·tcp/ip·nio
lazybird742 小时前
vmware装的ubuntu22.04, 在vmware中将磁盘由40G调整为50G后,ubuntu中还需要进行调整
linux·运维·服务器
Beiwen_2 小时前
在 Linux 服务器上配置 LaTeX Workshop 并解决 `ifsym.sty` 和 `llncs.cls` 错误
linux·服务器
IMPYLH2 小时前
Linux 的 stat 命令
linux·运维·服务器·bash
下地种菜小叶2 小时前
特征定义、特征计算、特征服务怎么配合?一次讲透
java·服务器·前端·数据库·spring cloud
error:(2 小时前
Linux系统Claude Code安装指南:绕过官方curl 403错误的解决方案
linux·运维·服务器