Huawei USG firewall no-nat config for ipsec traffic

bash 复制代码
nat-policy
 rule name ipsec
  source-zone trust
  destination-zone untrust
  source-address 10.248.1.0 mask 255.255.255.0
  destination-address 10.250.1.0 mask 255.255.255.0
  action no-nat
  
 rule name To-Internet
  action source-nat easy-ip

In IPsec VPNs, "no-NAT" (often seen as no-NAT, no NAT, or NAT bypass) refers to a configuration rule that exempts VPN traffic from network address translation (NAT).

Here's a plain-English breakdown of what it means and why it matters:

The Core Idea

Normally, when a device on your local network sends traffic to the internet, your router performs Source NAT (specifically MASQUERADE or PAT). It changes the device's private IP (e.g., 192.168.1.10) into the router's public IP address so the traffic can travel over the internet.

"No-NAT" tells the router: "Do NOT do this for traffic going to the VPN." Instead of replacing the private IP with the public IP, the router leaves the original private IP intact and sends it directly through the VPN tunnel.

Why Do You Need This?

IPsec VPNs have two main modes:

复制代码
Tunnel Mode (most common for site-to-site): The entire original packet is encrypted and wrapped in a new IP header. In this case, NAT is often not needed because the new outer header handles routing. However, you still need a no-NAT rule to prevent the router from changing the inner (original) IP addresses.

Transport Mode (often used for client-to-site): The original IP header is not changed. If you NAT the traffic, the VPN gateway on the other side will see the router's public IP instead of the client's real private IP. This breaks:

    Access controls (firewall rules on the remote side that trust specific internal IP ranges).

    Logging (you lose track of which actual user made a request).

    Application functionality (some apps rely on the client's real IP for sessions or licenses).

How It Works in Practice

A typical router has a NAT rule like:

复制代码
Source IP = 192.168.1.0/24 → Interface = WAN → NAT (change to public IP)

To make the VPN work, you add a no-NAT rule that sits above the general NAT rule:

复制代码
Source IP = 192.168.1.0/24 → Destination = 10.0.0.0/8 (the remote VPN subnet) → DO NOT NAT

Because firewall rules are processed in order (top-down), the router sees the VPN-bound traffic first and skips NAT. All other internet traffic hits the general rule and gets NATed as usual.

What Happens If You Forget No-NAT?

复制代码
Site-to-site VPN: The remote side receives packets with your router's public IP, not the internal IP. If the remote side expects traffic only from 192.168.1.0/24, it will drop the packets because they appear to come from the wrong source.

Client-to-site VPN: The VPN server assigns an IP to the client, but the server sees all users coming from the same public IP. It cannot distinguish between different users, and internal network resources may not work correctly.

A Quick Analogy

Imagine you're in a large office building (your LAN). You want to send an internal memo to a colleague on the 5th floor (the VPN subnet).

复制代码
With NAT: The mailroom (router) erases your internal office number, writes the building's main street address on it, and sends it out. The colleague on the 5th floor gets it, but has no idea which office it came from.

With No-NAT: The mailroom sees the memo is destined for the 5th floor, leaves your internal office number intact, and delivers it directly. Your colleague knows exactly who sent it.

Key Terms You Might See Instead

复制代码
NAT Exemption

NAT Bypass

Policy-Based NAT (with a rule that excludes VPN destinations)

"Don't NAT" or "No SNAT" (Source NAT)

In Summary

No-NAT is a firewall/policy rule that ensures IPsec VPN traffic is not source-translated. It preserves the original internal IP addresses so the remote VPN endpoint can correctly route, log, and authenticate traffic---making secure connectivity between private networks work as intended. Without it, your VPN will likely fail or behave unpredictably.

相关推荐
大侠归来12 分钟前
Ubuntu 搭建 APUE 环境:从源码编译到第一个示例跑通
linux·运维·ubuntu
北京中科新远科技2 小时前
AI网卡五层检查法:协议、PCIe、NUMA、端口与验收
服务器·网络·人工智能
shdkfbbv2 小时前
【无标题】
linux·运维·服务器
wp123_12 小时前
TLVR 电感在 AI 服务器电源中的应用与市场前景分析
服务器·人工智能·科技·ai·硬件工程
周洲08303 小时前
STM32片内Flash读写深度详解|掉电参数保存、底层原理
linux·前端·stm32
shimly1234563 小时前
比 find + grep 更好用的 nm + addr2line
linux
迷途之人不知返3 小时前
【进程控制】-3-进程等待
linux
ycvv3 小时前
手机启动失败后的数据提取评估:系统状态、加密条件与文件验收
服务器·数据库·智能手机
_upupup3 小时前
包管理器和vim
linux·服务器
一颗小树x3 小时前
NVIDIA 驱动故障排查实录:内核升级导致 nvidia-smi 失效
linux·服务器·nvidia驱动·启动失败·内核升级