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 路由
相关推荐
liulilittle5 小时前
关于拥塞控制的几点思考
网络·c++·tcp/ip·计算机网络·信息与通信·tcp·通信
AOwhisky5 小时前
MySQL 学习笔记(第四期):SQL 语言之多表查询
linux·运维·网络·数据库·笔记·学习·mysql
Phantom Void5 小时前
服务器处理客户端请求的设计方法
linux·运维·网络
王码码20355 小时前
办了500M宽带看视频还是卡?我用NAS搭了个测速服务器,宽带有没有缩水一测便知
网络·接口·nas
司悠5 小时前
【解决在vscode里开服务器登录codeX后发消息会一直reconnecting】
服务器·ide·vscode
倔强的石头1065 小时前
Fooocus开源神器+cpolarAI让绘画告别服务器依赖
运维·服务器·cpolar
Ajie'Blog5 小时前
Copilot Agent Tasks API 开放:AI 编程开始进入后台任务时代
服务器·前端·javascript·人工智能·copilot·ai编程
wei_shuo5 小时前
服务器挂了等用户投诉才发现?我用Beszel搭了轻量监控系统,宕机第一时间通知我
运维·服务器
王码码20356 小时前
多台服务器怎么统一看状态?Beszel 轻量监控,搭起来不费事
运维·服务器·后端·安全·阿里云·接口·web
ylscode6 小时前
Anthropic Claude Oceanus意外泄露:Mythos系列AI红队测试遭遇API代理滥用危机
网络·人工智能·安全·web安全·安全威胁分析