用于 VRF 路由实例的 NAT
NAT 概述
网络地址转换 (NAT) 是一种修改或转换数据包标头中的网络地址信息的方法。RFC 1631 中描述了用于解决 IPv4 地址耗尽问题的 NAT。NAT 是用于防火墙、流量重定向、负载共享和网络迁移的有用工具。
在 SD-WAN 部署中,SRX 系列防火墙部署在中心辐射位置。不同的站点连接到分支 SRX 系列防火墙。数据包从这些站点发送到公共互联网服务器或远程站点。在集线器上,安全处理完成后,将检查数据包以确定目标是公共互联网服务器还是 MPLS 下一跃点设备。如果目标是公共互联网服务器,NAT 会将虚拟路由和转发 (VRF) 专用 IP 地址转换为公共 IP 地址并建立会话。同样,来自公共互联网服务器的流量需要 NAT 才能到达 VRF 专用网络。
瞻博网络设备支持以下类型的 NAT:
静态 NAT
目标 NAT
源 NAT
示例:配置源 NAT 以将 VRF 实例的私有 IP 地址转换为另一个 VRF 实例的私有 IP 地址
此示例介绍如何在两个 MPLS 网络之间配置源 NAT。
要求
开始之前
-
了解 SRX 系列防火墙在 NAT 的 SD-WAN 部署中的工作原理。请参阅 NAT 概述。
-
了解虚拟路由和转发实例。请参阅 SD-WAN 部署中的虚拟路由和转发实例。
先决条件示例
-
软件要求:仅在 Junos OS 15.1X49-D160 版中受支持。
-
硬件要求:SRX 系列防火墙设备。
概述
源 NAT 是离开瞻博网络设备的数据包的源 IP 地址的转换。源 NAT 用于允许具有专用 IP 地址的主机访问公共网络。
在此示例中,SRX 系列防火墙连接两个 MPLS 专用网络,以将专用 IP 地址从一个 VRF 的专用 IP 地址转换为另一个 VRF 的专用 IP 地址。 在图 1 中,分支 SRX 系列防火墙配置了连接到中心 SRX 系列防火墙的 VRF-a 和 VRF-b 路由实例。站点 C 和站点 D 连接到另一个分支 SRX 系列防火墙。在中心 SRX 系列防火墙中,来自 VRF-a 和 VRF-b 路由实例的源 IP 地址 192.168.1.200 和 192.168.1.201 将转换为 203.0.113.200 和 203.0.113.201。

配置
程序
CLI 快速配置
要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改与您的网络配置匹配所需的任何详细信息,将命令复制并粘贴到层次结构级别的 CLI [edit]
中,然后从配置模式进入 commit
。
set routing-instances VRF-a instance-type vrf set routing-instances VRF-a route-distinguisher 30:200 set routing-instances VRF-a vrf-target target:100:100 set routing-instances VRF-a vrf-table-label set routing-instances VRF-b instance-type vrf set routing-instances VRF-b route-distinguisher 40:200 set routing-instances VRF-b vrf-target target:200:100 set routing-instances VRF-b vrf-table-label set routing-instances VRF-a1 instance-type vrf set routing-instances VRF-a1 route-distinguisher 60:200 set routing-instances VRF-a1 vrf-target target:300:100 set routing-instances VRF-a1 vrf-table-label set routing-instances VRF-b1 instance-type vrf set routing-instances VRF-b1 route-distinguisher 50:200 set routing-instances VRF-b1 vrf-target target:400:100 set routing-instances VRF-b1 vrf-table-label set security nat source pool vrf-a_p address 203.0.113.200 set security nat source rule-set vrf-a_rs from routing-instance VRF-a set security nat source rule-set vrf-a_rs to routing-instance VRF-a1 set security nat source rule-set vrf-a_rs rule rule1 match source-address 192.168.1.200 set security nat source rule-set vrf-a_rs rule rule1 then source-nat pool vrf-a_p set security nat source pool vrf-b_p address 203.0.113.201 set security nat source rule-set vrf-b_rs from routing-instance VRF-b set security nat source rule-set vrf-b_rs to routing-instance VRF-b1 set security nat source rule-set vrf-b_rs rule rule2 match source-address 192.168.1.201 set security nat source rule-set vrf-b_rs rule rule2 then source-nat pool vrf-b_p
分步过程
以下示例要求您在配置层次结构中导航各个级别。
要配置源 NAT 映射,请执行以下操作:
第 3 层 VPN 需要一个 VRF 表,用于在网络内分配路由。创建 VRF 实例并指定值 vrf。
[edit routing-instances] user@host#set VRF-a instance-type vrf user@host#set VRF-b instance-type vrf user@host#set VRF-a1 instance-type vrf user@host#set VRF-b1 instance-type vrf
将路由识别符分配给路由实例。
[edit routing-instances] user@host#set VRF-a route-distinguisher 30:200 user@host#set VRF-b route-distinguisher 40:200 user@host#set VRF-a1 route-distinguisher 60:200 user@host#set VRF-b1 route-distinguisher 50:200
创建社区策略以导入或导出所有路由。
[edit routing-instances] user@host#set VRF-a vrf-target target:100:100 user@host#set VRF-b vrf-target target:200:100 user@host#set VRF-a1 vrf-target target:300:100 user@host#set VRF-b1 vrf-target target:400:100
为 VRF 中的所有路由分配一个 VPN 标签。
[edit routing-instances] user@host#set VRF-a vrf-table-label user@host#set VRF-a1 vrf-table-label user@host#set VRF-b vrf-table-label user@host#set VRF-b1 vrf-table-label
创建源 NAT 池。
[edit security nat source] user@host#set vrf-a_p address 203.0.113.200 user@host#set vrf-b_p address 203.0.113.201
创建源 NAT 规则集。
[edit security nat source] user@host#set rule-set vrf-a_rs from routing-instance VRF-a user@host#set rule-set vrf-a_rs to routing-instance VRF-a1 user@host#set rule-set vrf-b_rs from routing-instance VRF-b user@host#set rule-set vrf-b_rs to routing-instance VRF-b1
配置匹配数据包并将源 IP 地址转换为源 NAT 池中的 IP 地址的规则。
[edit security nat source] user@host# set rule-set vrf-a_rs rule rule1 match source-address 192.168.1.200 user@host# set rule-set vrf-a_rs rule rule1 then source-nat pool vrf-a_p user@host# set rule-set vrf-b_rs rule rule2 match source-address 192.168.1.201 user@host# set rule-set vrf-b_rs rule rule2 then source-nat pool vrf-b_p
结果
在配置模式下,输入 show security nat
和 show routing-instances
命令确认您的配置。如果输出未显示预期的配置,请重复此示例中的配置说明以进行更正。
[edit] user@host# show security nat source { pool vrf-a_p { address { 203.0.113.200/32; } } pool vrf-b_p { address { 203.0.113.201/32; } } rule-set vrf-a_rs { from routing-instance VRF-a; to routing-instance VRF-a1; rule rule1 { match { source-address 192.168.1.200/32; } then { source-nat { pool { vrf-a_p; } } } } } rule-set vrf-b_rs { from routing-instance VRF-b; to routing-instance VRF-b1; rule rule2 { match { source-address 192.168.1.201/32; } then { source-nat { pool { vrf-b_p; } } } } } }
[edit] user@host# show routing-instances VRF-a { instance-type vrf; route-distinguisher 30:200; vrf-target target:100:100; vrf-table-label; } VRF-a1 { instance-type vrf; route-distinguisher 60:200; vrf-target target:300:100; vrf-table-label; } VRF-b { instance-type vrf; route-distinguisher 40:200; vrf-target target:200:100; vrf-table-label; } VRF-b1 { instance-type vrf; route-distinguisher 50:200; vrf-target target:400:100; vrf-table-label; }
如果完成设备配置,请从配置模式输入 commit
。
验证
验证源 NAT 规则使用情况
目的
验证是否存在与源 NAT 规则匹配的流量。
行动
在操作模式下,输入 show security nat source rule all
命令。在转换命中字段中,验证是否存在与源 NAT 规则匹配的流量。
user@host>show security nat source rule all Total rules: 2 Total referenced IPv4/IPv6 ip-prefixes: 2/0 source NAT rule: rule1 Rule-set: vrf-a_rs Rule-Id : 1 Rule position : 1 From routing instance : VRF-a To routing instance : VRF-a1 Match Source addresses : 192.168.1.200 - 192.168.1.200 Action : vrf-a_p Persistent NAT type : N/A Persistent NAT mapping type : address-port-mapping Inactivity timeout : 0 Max session number : 0 Translation hits : 0 Successful sessions : 0 Failed sessions : 0 Number of sessions : 0 source NAT rule: rule2 Rule-set: vrf-b_rs Rule-Id : 2 Rule position : 2 From routing instance : VRF-b To routing instance : VRF-b1 Match Source addresses : 192.168.1.201 - 192.168.1.201 Action : vrf-b_p Persistent NAT type : N/A Persistent NAT mapping type : address-port-mapping Inactivity timeout : 0 Max session number : 0 Translation hits : 0 Successful sessions : 0 Failed sessions : 0 Number of sessions : 0
示例:配置目标 NAT 以将公有 IP 地址转换为 VRF 实例的 VRF 单个私有 IP 地址
此示例介绍如何配置公共 IP 地址到单个 VRF 专用地址的目标 NAT 映射,以便将数据包定向到正确的 VRF 实例。
要求
了解 SRX 系列防火墙在 NAT 的 SD-WAN 部署中的工作原理。请参阅 NAT 概述。
了解虚拟路由和转发实例。请参阅 SD-WAN 部署中的虚拟路由和转发实例。
概述
目标 NAT 是进入瞻博网络设备的数据包的目标 IP 地址的转换。目标 NAT 用于将发往虚拟主机(由原始目标 IP 地址标识)的流量重定向到真实主机(由转换后的目标 IP 地址标识)。
此示例使用 SRX 系列防火墙配置了目标 NAT,用于将公有 IP 地址转换为 VRF 实例的 VRF 私有 IP 地址。可以为每个 VRF 实例配置公共 IP 地址。 在图 2 中,SRX 系列防火墙配置了两个 VRF 实例:VRF-a 和 VRF-b。SRX 系列防火墙将公有 IP 地址隐藏为 VRF 实例的私有 IP 地址。

配置
程序
CLI 快速配置
要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改与您的网络配置匹配所需的任何详细信息,将命令复制并粘贴到层次结构级别的 CLI [edit]
中,然后从配置模式进入 commit
。
set routing-instances VRF-a instance-type vrf set routing-instances VRF-a route-distinguisher 30:200 set routing-instances VRF-a vrf-target target:100:100 set routing-instances VRF-a vrf-table-label set routing-instances VRF-b instance-type vrf set routing-instances VRF-b route-distinguisher 40:200 set routing-instances VRF-b vrf-target target:200:100 set routing-instances VRF-b vrf-table-label set security nat destination pool vrf-a_p routing-instance VRF-a set security nat destination pool vrf-a_p address 192.168.1.200 set security nat destination rule-set rs from interface ge-0/0/0 set security nat destination rule-set rs rule vrf-a_r match destination-address 203.0.113.200 set security nat destination rule-set rs rule vrf-a_r then destination-nat pool vrf-a_p set security nat destination pool vrf-b_p routing-instance VRF-b set security nat destination pool vrf-b_p address 192.168.1.201 set security nat destination rule-set rs from interface ge-0/0/1 set security nat destination rule-set rs rule vrf-b_r match destination-address 203.0.113.201 set security nat destination rule-set rs rule vrf-b_r then destination-nat pool vrf-b_p
分步过程
以下示例要求您在配置层次结构中导航各个级别。
要为单个 VRF 配置目标 NAT 映射,请执行以下操作:
第 3 层 VPN 需要一个 VRF 表,用于在网络内分配路由。创建 VRF 实例并指定值 vrf。
[edit routing-instances] user@host#set VRF-a instance-type vrf user@host#set VRF-b instance-type vrf
将路由识别符分配给路由实例。
[edit routing-instances] user@host#set VRF-a route-distinguisher 30:200 user@host#set VRF-b route-distinguisher 40:200
创建社区策略以导入或导出所有路由。
[edit routing-instances] user@host#set VRF-a vrf-target target:100:100 user@host#set VRF-b vrf-target target:200:100
为 VRF 中的所有路由分配一个 VPN 标签。
[edit routing-instances] user@host#set VRF-a vrf-table-label user@host#set VRF-b vrf-table-label
指定目标 NAT IP 地址池。
[edit security nat destination] user@host# set pool vrf-a_p address 192.168.1.200 user@host# set pool vrf-b_p address 192.168.1.201
将路由实例分配给目标池。
[edit security nat destination] user@host# set pool vrf-a_p routing-instance VRF-a user@host# set pool vrf-b_p routing-instance VRF-b
创建目标 NAT 规则集。
[edit security nat destination] user@host# set rule-set rs from interface ge-0/0/0 user@host# set rule-set rs from interface ge-0/0/1
配置匹配数据包并将目标 IP 地址转换为目标 NAT IP 地址池中的 IP 地址的规则。
[edit security nat destination] user@host# set rule-set rs rule vrf-a_r match destination-address 203.0.113.200 user@host# set rule-set rs rule vrf-a_r then destination-nat pool vrf-a_p user@host# set rule-set rs rule vrf-b_r match destination-address 203.0.113.201 user@host# set rule-set rs rule vrf-b_r then destination-nat pool vrf-b_p
结果
在配置模式下,输入 show security nat
和 show routing-instances
命令确认您的配置。如果输出未显示预期的配置,请重复此示例中的配置说明以进行更正。
[edit] user@host# show security nat destination { pool vrf-a_p { routing-instance { VRF-a; } address 192.168.1.200/32; } pool vrf-b_p { routing-instance { VRF-b; } address 192.168.1.201/32; } rule-set rs { from interface [ ge-0/0/0.0 ge-0/0/1.0 ]; rule vrf-a_r { match { destination-address 203.0.113.200/32; } then { destination-nat { pool { vrf-a_p; } } } } rule vrf-b_r { match { destination-address 203.0.113.201/32; } then { destination-nat { pool { vrf-b_p; } } } } } }
[edit] user@host# show routing-instances VRF-a { instance-type vrf; route-distinguisher 30:200; vrf-target target:100:100; vrf-table-label; } VRF-b { instance-type vrf; route-distinguisher 40:200; vrf-target target:200:100; vrf-table-label; }
如果完成设备配置,请从配置模式输入 commit
。
验证
验证目标 NAT 规则使用情况
目的
验证是否存在与目标 NAT 规则匹配的流量。
行动
在操作模式下,输入 show security nat destination rule all
命令。在转换命中字段中,验证是否存在与目标 NAT 规则匹配的流量。
user@host> show security nat destination rule all Total destination-nat rules: 2 Total referenced IPv4/IPv6 ip-prefixes: 2/0 Destination NAT rule: vrf-a_r Rule-set: rs Rule-Id : 1 Rule position : 1 From interface : ge-0/0/0.0 : ge-0/0/1.0 Destination addresses : 203.0.113.200 - 203.0.113.200 Action : vrf-a_p Translation hits : 0 Successful sessions : 0 Failed sessions : 0 Number of sessions : 0 Destination NAT rule: vrf-b_r Rule-set: rs Rule-Id : 2 Rule position : 2 From interface : ge-0/0/0.0 : ge-0/0/1.0 Destination addresses : 203.0.113.201 - 203.0.113.201 Action : vrf-b_p Translation hits : 0 Successful sessions : 0 Failed sessions : 0 Number of sessions : 0
示例:配置静态 NAT 将 VRF 实例的内网 IP 地址转换为公网 IP 地址
此示例介绍如何配置 VRF 单个专用 IP 地址到公共 IP 地址的静态 NAT 映射。
要求
了解 SRX 系列防火墙在 NAT 的 SD-WAN 部署中的工作原理。请参阅 NAT 概述。
概述
在此示例中,SRX 系列防火墙配置了静态 NAT,用于将 VRF 实例的 VRF 私有 IP 地址转换为 VRF 实例的公有 IP 地址。静态 NAT 可以应用于源 NAT 和目标 NAT。 在图 3 中,SRX 系列防火墙配置了两个 VRF 实例:VRF-a 和 VFR-b。SRX 系列防火墙将 VRF 实例的私有 IP 地址转换为公有 IP 地址。

配置
程序
CLI 快速配置
要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改与您的网络配置匹配所需的任何详细信息,将命令复制并粘贴到层次结构级别的 CLI [edit]
中,然后从配置模式进入 commit
。
set routing-instances VRF-a instance-type vrf set routing-instances VRF-a route-distinguisher 30:200 set routing-instances VRF-a vrf-target target:100:100 set routing-instances VRF-a vrf-table-label set routing-instances VRF-b instance-type vrf set routing-instances VRF-b route-distinguisher 40:200 set routing-instances VRF-b vrf-target target:200:100 set routing-instances VRF-b vrf-table-label set security nat static rule-set rs from interface ge-0/0/0 set security nat static rule-set rs rule vrf-a_r match static-address 203.0.113.200 set security nat static rule-set rs rule vrf-a_r then static-nat prefix 192.168.1.200 set security nat static rule-set rs rule vrf-a_r then static-nat prefix routing-instance VRF-a set security nat static rule-set rs from interface ge-0/0/1 set security nat static rule-set rs rule vrf-b_r match static-address 203.0.113.201 set security nat static rule-set rs rule vrf-b_r then static-nat prefix 192.168.1.201 set security nat static rule-set rs rule vrf-b_r then static-nat prefix routing-instance VRF-b
分步过程
以下示例要求您在配置层次结构中导航各个级别。
要为单个 VRF 的 IP 地址配置静态 NAT 映射,请执行以下操作:
第 3 层 VPN 需要一个 VRF 表,用于在网络内分配路由。创建 VRF 实例并指定值 vrf。
[edit routing-instances] user@host#set VRF-a instance-type vrf user@host#set VRF-b instance-type vrf
将路由识别符分配给路由实例。
[edit routing-instances] user@host#set VRF-a route-distinguisher 30:200 user@host#set VRF-b route-distinguisher 40:200
创建社区策略以导入或导出所有路由。
[edit routing-instances] user@host#set VRF-a vrf-target target:100:100 user@host#set VRF-b vrf-target target:200:100
为 VRF 中的所有路由分配一个 VPN 标签。
[edit routing-instances] user@host#set VRF-a vrf-table-label user@host#set VRF-b vrf-table-label
创建静态 NAT 规则集。
[edit security nat static] user@host# set rule-set rs from interface ge-0/0/0 user@host# set rule-set rs from interface ge-0/0/1
配置匹配数据包并将数据包中的目标地址转换为专用 IP 地址的规则。
[edit security nat static] user@host# set rule-set rs rule vrf-a_r match static-address 203.0.113.200 user@host# set rule-set rs rule vrf-a_r then static-nat prefix 192.168.1.200 user@host# set rule-set rs rule vrf-a_r then static-nat prefix routing-instance VRF-a user@host# set rule-set rs rule vrf-b_r match static-address 203.0.113.201 user@host# set rule-set rs rule vrf-b_r then static-nat prefix 192.168.1.201 user@host# set rule-set rs rule vrf-b_r then static-nat prefix routing-instance VRF-b
结果
在配置模式下,输入 show security nat
和 show routing-instances
命令确认您的配置。如果输出未显示预期的配置,请重复此示例中的配置说明以进行更正。
[edit] user@host# show security nat static { rule-set rs { from interface [ ge-0/0/0.0 ge-0/0/1.0 ]; rule vrf-a_r { match { destination-address 203.0.113.200/32; } then { static-nat { prefix { 192.168.1.200/32; routing-instance VRF-a; } } } } rule vrf-b_r { match { destination-address 203.0.113.201/32; } then { static-nat { prefix { 192.168.1.201/32; routing-instance VRF-b; } } } } } }
[edit] user@host# show routing-instances VRF-a { instance-type vrf; route-distinguisher 30:200; vrf-target target:100:100; vrf-table-label; } VRF-b { instance-type vrf; route-distinguisher 40:200; vrf-target target:200:100; vrf-table-label; }
如果完成设备配置,请从配置模式输入 commit
。
验证
验证静态 NAT 规则使用情况
目的
验证是否存在与静态 NAT 规则匹配的流量。
行动
在操作模式下,输入 show security nat static rule
命令。在转换命中字段中,验证是否存在与静态 NAT 规则匹配的流量。
user@host> show security nat static rule all Total static-nat rules: 2 Total referenced IPv4/IPv6 ip-prefixes: 4/0 Static NAT rule: vrf-a_r Rule-set: rs Rule-Id : 1 Rule position : 1 From interface : ge-0/0/0.0 : ge-0/0/1.0 Destination addresses : 203.0.113.200 Host addresses : 192.168.1.200 Netmask : 32 Host routing-instance : VRF-a Translation hits : 0 Successful sessions : 0 Failed sessions : 0 Number of sessions : 0 Static NAT rule: vrf-b_r Rule-set: rs Rule-Id : 2 Rule position : 2 From interface : ge-0/0/0.0 : ge-0/0/1.0 Destination addresses : 203.0.113.201 Host addresses : 192.168.1.201 Netmask : 32 Host routing-instance : VRF-b Translation hits : 0 Successful sessions : 0 Failed sessions : 0 Number of sessions : 0