VRF 路由实例的 NAT
NAT 概述
网络地址转换 (NAT) 是一种用于修改或转换数据包标头中的网络地址信息的方法。RFC 1631 中介绍了 NAT,用于解决 IPv4 地址耗尽问题。NAT 是用于防火墙、流量重定向、负载共享和网络迁移的有用工具。
在 SD-WAN 部署中,防火墙部署在中心位置和分支位置。不同的站点连接到分支防火墙。数据包从这些站点发送到公共互联网服务器或远程站点。在中枢,完成安全处理后,将对数据包进行检查,以确定目标是公共互联网服务器还是 MPLS 下一跳设备。如果目标是公共互联网服务器,NAT 会将虚拟路由和转发 (VRF) 专用 IP 地址转换为公共 IP 地址并建立会话。同样,来自公共 Internet 服务器的流量需要 NAT 才能到达 VRF 专用网络。
瞻博网络设备支持以下类型的 NAT:
静态 NAT
目标 NAT
源 NAT
示例:配置源NAT以将VRF实例的私有IP地址转换为其他VRF实例的私有IP地址
此示例介绍如何在两个 MPLS 网络之间配置源 NAT。
要求
准备工作
-
了解防火墙如何在 NAT 的 SD-WAN 部署中工作。请参阅 NAT 概述。
-
了解虚拟路由和转发实例。请参阅 SD-WAN 部署中的虚拟路由和转发实例。
先决条件示例
-
软件要求:任何受支持的 Junos 版本。
-
硬件要求:在支持的设备上。
概述
源 NAT 是离开瞻博网络设备的数据包的源 IP 地址的转换。源 NAT 用于允许具有专用 IP 地址的主机访问公共网络。
在此示例中,防火墙连接两个 MPLS 专用网络,以将专用 IP 地址从一个 VRF 的专用 IP 地址转换为另一个 VRF 的专用 IP 地址。 在图 1 中,分支防火墙配置了连接到中心防火墙的 VRF-a 和 VRF-b 路由实例。站点 C 和站点 D 连接到另一个分支防火墙。在中心防火墙中,来自 VRF-a 和 VRF-b 路由实例的源 IP 地址 192.168.1.200 和 192.168.1.201 将转换为 203.0.113.200 和 203.0.113.201。
配置
程序
CLI 快速配置
要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改详细信息,以便与网络配置匹配,将命令复制并粘贴到层 [edit] 级的 CLI 中,然后从配置模式进入 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 实例。
要求
了解防火墙如何在 NAT 的 SD-WAN 部署中工作。请参阅 NAT 概述。
了解虚拟路由和转发实例。请参阅 SD-WAN 部署中的虚拟路由和转发实例。
概述
目标 NAT 是进入瞻博网络设备的数据包的目标 IP 地址的转换。目标 NAT 用于将发往虚拟主机(由原始目标 IP 地址标识)的流量重定向至实际主机(由转换后的目标 IP 地址标识)。
本示例中,防火墙配置了目标 NAT,用于将公网 IP 地址转换为 VRF 实例的 VRF 私有 IP 地址。可以为每个 VRF 实例配置公共 IP 地址。在 图 2 中,防火墙配置了两个 VRF 实例,VRF-a 和 VRF-b。防火墙将VRF实例的公网IP地址转换为私网IP地址。
配置
程序
CLI 快速配置
要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改详细信息,以便与网络配置匹配,将命令复制并粘贴到层 [edit] 级的 CLI 中,然后从配置模式进入 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映射。
要求
了解防火墙如何在 NAT 的 SD-WAN 部署中工作。请参阅 NAT 概述。
概述
本示例中,使用静态NAT配置了防火墙,用于将VRF实例的VRF私有IP地址转换为VRF实例的公网IP地址。静态 NAT 可以应用于源 NAT 和目标 NAT。在 图 3 中,防火墙配置了两个 VRF 实例,VRF-a 和 VFR-b。防火墙会将VRF实例的私有IP地址转换为公网IP地址。
配置
程序
CLI 快速配置
要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改详细信息,以便与网络配置匹配,将命令复制并粘贴到层 [edit] 级的 CLI 中,然后从配置模式进入 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 命令。在 Translation hits 字段中,验证是否存在与静态 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