Dell Networking SONiC:网络地址转换 (NAT)

摘要: 本文介绍 Dell Networking SONiC 中的网络地址转换 (NAT)。本文使用运行 Dell SONiC 4.1 的交换机。

本文适用于 本文不适用于 本文并非针对某种特定的产品。 本文并非包含所有产品版本。

说明

 
前提条件
标准接口命名用于演示概念。请参阅戴尔文章 202172 Dell Networking S 系列:基本接口配置 - SONiC 4.0 ,了解有关接口命名的更多信息


指数

简介

提醒:网络地址转换 (NAT) 仅在 Cloud Standard、Cloud Premium、Enterprise Standard 和企业高级捆绑包中可用。NAT 在 Edge Standard 捆绑包中不可用。

网络地址转换支持将公用 IP 地址分配给访问网络外部资源的设备的过程。NAT 可节省本地网络中的 IP 地址使用量。

网络中不需要 NAT 即可在专用 IP 地址之间路由流量。NAT 网关在与远程设备通信时,会将本地网络设备的专用 IP 地址转换为全局唯一的公用 IP 地址。
 
提醒:Z9432F-ON 不支持网络地址转换。
 

启用 NAT

要在 NAT 配置模式下启用 NAT 并输入 NAT 配置命令,请执行以下操作:
  • 要启用 NAT:
sonic(config-nat)# enable

admin@DELLSONiC:~$ sonic-cli
DELLSONiC# configure terminal
DELLSONiC(config)# nat
DELLSONiC(config-nat)# enable
  • 要禁用 NAT:

DELLSONiC(config-nat)# no enable
 

NAT 配置顺序

启用 NAT 后,可以按任意顺序完成以下步骤:
  • 配置 NAT 分区
  • 添加静态 NAT 条目
  • 使用 L4 端口添加静态 NAT 条目
  • 创建 NAT 地址池
  • 配置 NAT 绑定
  • 配置动态 NAT 超时
 

创建 NAT 分区

要在 L3 接口上配置 NAT 分区,以便在数据包遍历已配置接口上的分区时对数据包执行 NAT 地址转换。可以在任何配置有 IP 地址的以太网、VLAN、端口通道或环回接口上配置 NAT 分区。NAT 分区编号的范围为 0 到 3。

数据包的源分区是接收数据包的入站接口的分区。数据包的目标分区是来自目标地址 L3 路由查找的 L3 下一跳接口的分区。
  • 在源接口上输入的入站流量使用静态目标网络地址转换 (DNAT) 转换进行 L3 转发。
  • 在目标接口上发送的出站流量将动态转换为源网络地址转换 (SNAT)。
  • 默认情况下,L3 接口位于 NAT 分区 0 中。NAT 分区 0 被视为内部分区。
 
  • 要创建 NAT 分区:
sonic(conf-if-interface)# nat-zone <0..3>

admin@DELLSONiC:~$ sonic-cli
DELLSONiC# configure terminal
DELLSONiC (config)# interface Eth1/2
DELLSONiC (conf-if-Eth1/2)# ip address 20.20.20.20/24
DELLSONiC (conf-if-Eth1/2)# nat-zone 1
DELLSONiC (conf-if-Eth1/2)# exit
DELLSONiC (config)# interface Vlan 5
DELLSONiC (conf-if-Vlan5)# ip address 23.23.23.23/24
DELLSONiC (conf-if-Vlan5)# nat-zone 1
DELLSONiC (conf-if-Vlan5)# exit
DELLSONiC (config)# interface PortChannel 2
DELLSONiC (conf-if-po2)# ip address 25.25.25.25/24
DELLSONiC (conf-if-po2)# nat-zone 1
DELLSONiC (conf-if-po2)# exit
DELLSONiC (config)# interface Loopback 1
DELLSONiC (conf-if-lo1)# ip address 10.10.10.10/32
DELLSONiC (conf-if-lo1)# nat-zone 2
  • 删除 NAT 分区:

sonic(conf-if-interface)# no nat-zone <0..3>

DELLSONiC (conf-if-lo1)# no nat-zone 2
 

创建静态 NAT 条目。

要通过互联网在网络外部进行通信,用户可以手动配置静态 NAT 条目,以将本地 IP 地址替换为全局唯一 IP 地址。可以使用或不使用 L4 端口转换创建静态 NAT。具有 L4 端口引用的静态 NAT 可以将本地 IP 地址和 TCP 或 UDP 端口号转换为具有 TCP 或 UDP 端口号的全局 IP 地址。
  • 要创建不带 L4 端口转换的静态 NAT,请执行以下操作:
sonic(conf-nat)# static basic global-ip local-ip [snat | dnat] [twice_nat_id value]
  • 源 NAT (SNAT) — 将本地网络中的源 IP 地址转换为发送到外部网络的全局 IP 地址。外部网络中的远程设备使用全局地址访问本地设备。
  • 目标 NAT (DNAT) — 将数据包中的目标 IP 地址(从外部网络接收并遍历本地网络)转换为本地网络中使用的本地 IP 地址。DNAT 是默认值
  • twice_nat_id值 — 对具有相同的静态条目执行源和目标 IP 地址的地址转换。
admin@DELLSONiC:~$ sonic-cli
DELLSONiC# configure terminal
DELLSONiC(config)# nat
DELLSONiC(config-nat)# static basic 125.4.4.4 12.1.1.1
DELLSONiC(config-nat)# static basic 100.100.100.100 15.15.15.15 snat twice-nat-id 5
DELLSONiC(config-nat)# static basic 200.200.200.5 17.17.17.17 dnat twice-nat-id 5
  • 要使用 L4 端口转换创建静态 NAT,请执行以下操作:
sonic(conf-nat)# static {tcp | udp} global-ip global-port local-ip local-port [snat | dnat] [twice_nat_id value]
  • 源 NAT (SNAT) — 将本地网络中的源 IP 地址和 TCP/UDP 端口转换为全局 IP 地址和发送到外部网络的 TCP/UDP 端口。外部网络中的远程设备使用全局地址和 L4 端口来访问本地设备。
  • 目标 NAT (DNAT) — 将从外部网络接收的数据包中的目标 IP 地址和 TCP/UDP 端口转换为本地 IP 地址和本地网络中使用的 TCP/UDP 端口。DNAT 是默认值。
  • twice_nat_id值 — 对具有相同 ID 的静态条目执行源和目标 IP 地址的地址转换。
admin@DELLSONiC:~$ sonic-cli
DELLSONiC# configure terminal
DELLSONiC(config)# nat
DELLSONiC(config-nat)# static udp 148.56.7.7 8991 10.11.1.12 2000
DELLSONiC(config-nat)# static tcp 123.3.4.1 901 11.11.1.1 1000
DELLSONiC(config-nat)# static tcp 65.55.46.6 106 20.0.0.6 206 dnat twice-nat-id 200
DELLSONiC(config-nat)# static tcp 65.55.45.5 100 20.0.0.5 200 snat twice-nat-id 200
  • 删除 NAT 静态条目:
sonic(conf-nat)# no static basic global-ip
sonic(conf-nat)# no static {tcp | udp} global-ip global-port

DELLSONiC(config-nat)# no static basic 125.4.4.4
DELLSONiC(config-nat)# no static basic 100.100.100.100
DELLSONiC(config-nat)# no static basic 200.200.200.5
DELLSONiC(config-nat)# no static udp 148.56.7.7 8991
DELLSONiC(config-nat)# no static tcp 123.3.4.1 901
DELLSONiC(config-nat)# no static tcp 65.55.46.6 106
DELLSONiC(config-nat)# no static tcp 65.55.45.5 100


静态 NAT 示例

下面的示例显示,网络 A 使用启用了 NAT 的路由器。当 LAN 分段上的主机 100.100.100.101 向外部目标 (200.200.200.201) 发送流量时,流量将发送到 NAT 路由器,以从 Internet 路由到主机 200.200.200.201。NAT 路由器将源 IP (SRC IP) 100.100.100.101 转换为新的源 IP 1.1.1.2。NAT 路由器正在执行源网络地址转换 (SNAT),其中 100.100.100.101 的内部专用地址转换为面向外部的地址 1.1.1.2。NAT 路由器对从主机 200.200.200.201 返回到网络 A 到主机 100.100.100.101 的返回流量执行目标网络地址转换 (DNAT)。
Statis NAT 示例
图 1:静态网络地址转换示例
  • 配置 NAT 分区:
admin@DELLSONiC:~$ sonic-cli
DELLSONiC# configure terminal
DELLSONiC (config)# interface Eth1/10
DELLSONiC (conf-if-Eth1/10)# ip address 100.100.100.1/24
DELLSONiC (conf-if-Eth1/10)# nat-zone 0
DELLSONiC (conf-if-Eth1/10)# exit
DELLSONiC (config)# interface Eth1/20
DELLSONiC (conf-if-Eth1/20)# ip address 1.1.1.2/30
DELLSONiC (conf-if-Eth1/20)# nat-zone 1
DELLSONiC (conf-if-Eth1/20)# exit
  • 启用 NAT:

admin@DELLSONiC:~$ sonic-cli
DELLSONiC# configure terminal
DELLSONiC(config)# nat
DELLSONiC(config-nat)# enable
  • 创建不带 L4 端口转换的静态 NAT:
admin@DELLSONiC:~$ sonic-cli
DELLSONiC# configure terminal
DELLSONiC(config)# nat
DELLSONiC(config-nat)# static basic 1.1.1.2 100.100.100.101

 

创建动态 NAT。 

动态 NAT 将本地地址替换为来自全局地址池的地址。
当专用网络上的多个用户访问互联网时,动态转换非常有用。
 

配置 NAT 地址池  

通过定义全局 IP 地址范围以及用于本地地址转换的 TCP/UDP 端口范围(可选)来配置可用全局地址池。 

  • 创建 NAT 地址池:
sonic(conf-nat)# pool pool-name global-ip-range [global-port-range]
  1. 以 ip-address-ip-address 格式输入全局 IP 地址范围。
  2. 以端口号-端口号格式输入 TCP/UDP 端口号范围。
admin@DELLSONiC:~$ sonic-cli
DELLSONiC# configure terminal
DELLSONiC(config)# nat
DELLSONiC(config-nat)# pool Pool1 19.19.19.19
DELLSONiC(config-nat)# pool Pool2 20.0.0.7 1024-65535
DELLSONiC(config-nat)# pool Pool3 65.55.45.10-65.55.45.15 500-1000
  • 删除 NAT 地址池:
sonic(conf-nat)# no pool pool-name

DELLSONiC(config-nat)# no pool Pool1
  • 删除所有 NAT 地址池:
sonic(conf-nat)# no pools
 

配置 NAT 绑定

  • 创建 NAT 绑定到 NAT 地址池:
sonic(conf-nat)# binding binding-name pool-name [acl-name] [snat | dnat] [twice_nat_id value]
  • SNAT — 将源 IP 地址转换为池中的全局 IP 地址。SNAT 是 NAT 绑定中的默认设置。
  • DNAT — 将目标 IP 地址转换为池中的全局 IP 地址。
  • twice_nat_id — 使用具有相同 ID 的静态条目的地址池在源和目标 IP 地址上执行地址转换。
  • acl-name — 要限制全局 NAT 地址池中的 IP 地址,您可以使用访问控制列表 (ACL)。允许语句允许在允许规则中配置属性的 IP 地址。拒绝语句拒绝在拒绝规则中配置属性的数据包。在 ACL 中, do_not_nat 条目允许路由数据包而不是翻译数据包。
提醒:ACL-NAME 是可选参数。如果未提供 ACL-NAME 参数,则 NAT 绑定适用于匹配所有流量。
admin@DELLSONiC:~$ sonic-cli
DELLSONiC# configure terminal
DELLSONiC(config)# nat
DELLSONiC(config-nat)# binding Bind1 Pool1 10_ACL_IPV4
DELLSONiC(config-nat)# binding Bind2 Pool2 12_ACL_IPV4 snat twice-nat-id 25
DELLSONiC(config-nat)# binding Bind3 Pool3 15_ACL_IPV4 dnat twice-nat-id 25
  • 删除 NAT 绑定:
sonic(conf-nat)# no binding binding-name

DELLSONiC(config-nat)# no binding Bind1
  • 删除所有 NAT 绑定:
sonic(conf-nat)# no bindings

 

配置动态 NAT 超时 

默认情况下,只有动态地址转换配置在没有活动流量

的 10 分钟(600 秒)后超时 静态 NAT 条目没有超时。要更改动态 NAT 超时值,请指定新值(以秒为单位)(300 到 432000)。

  • 修改动态地址转换配置超时:
sonic(conf-nat)# timeout <300..432000>

admin@DELLSONiC:~$ sonic-cli
DELLSONiC# configure terminal
DELLSONiC(config)# nat
DELLSONiC(config-nat)# timeout 1200

也可以调整 L4 UDP 和 TCP NAT 条目的 NAT 条目超时。
要更改用于地址转换的 TCP 超时,请输入新的超时值(以秒为单位)(300 到 432000;默认值为 86400)。要更改用于地址转换的 UDP 超时,请输入新值(以秒为单位)(120 到 600;默认值为 300)。

  • 修改动态地址转换配置 UDP/TCP 超时:
sonic(conf-nat)# udp-timeout <120..600>
sonic(conf-nat)# tcp-timeout <300..432000>

admin@DELLSONiC:~$ sonic-cli
DELLSONiC# configure terminal
DELLSONiC(config)# nat
DELLSONiC(config-nat)# udp-timeout 600
DELLSONiC(config-nat)# tcp-timeout 66460

 

动态 NAT 示例 

下面的示例显示,网络 A 使用启用了 NAT 的路由器。当 LAN 分段上的主机 100.100.100.101 向外部目标 (200.200.200.201) 发送流量时,流量将发送到 NAT 路由器,以从 Internet 路由到主机 200.200.200.201。NAT 路由器将源 IP (SRC IP) 100.100.100.101 转换为新的源 IP 1.1.1.2。NAT 路由器正在执行源网络地址转换 (SNAT),其中 100.100.100.101 的内部专用地址转换为面向外部的地址 1.1.1.2。NAT 路由器对从主机 200.200.200.201 返回到网络 A 到主机 100.100.100.101 的返回流量执行目标网络地址转换 (DNAT)。与 PC3 的 PC2 通信会发生相同的 NAT 转换。

动态 NAT 示例
图 2:
动态网络地址转换示例

  • 配置 NAT 分区:
admin@DELLSONiC:~$ sonic-cli
DELLSONiC# configure terminal
DELLSONiC (config)# interface Vlan 100
DELLSONiC (conf-if-Vlan100)# ip address 100.100.100.1/24
DELLSONiC (conf-if-Vlan100)# nat-zone 0
DELLSONiC (conf-if-Vlan100)# exit
DELLSONiC (config)# interface Vlan 300
DELLSONiC (conf-if-Vlan300)# ip address 300.300.300.1/24
DELLSONiC (conf-if-Vlan300)# nat-zone 0
DELLSONiC (conf-if-Vlan300)# exit
DELLSONiC (config)# interface Eth1/20
DELLSONiC (conf-if-Eth1/20)# ip address 1.1.1.2/30
DELLSONiC (conf-if-Eth1/20)# nat-zone 1
DELLSONiC (conf-if-Eth1/20)# exit
  • 启用 NAT:
admin@DELLSONiC:~$ sonic-cli
DELLSONiC# configure terminal
DELLSONiC(config)# nat
DELLSONiC(config-nat)# enable
  • 创建 NAT 池:
admin@DELLSONiC:~$ sonic-cli
DELLSONiC# configure terminal
DELLSONiC(config)# nat
DELLSONiC(config-nat)# pool Pool1 1.1.1.2
  • 创建 NAT 绑定:
admin@DELLSONiC:~$ sonic-cli
DELLSONiC# configure terminal
DELLSONiC(config)# nat
DELLSONiC(config-nat)# binding Bind1 Pool1
 

查看 NAT 配置 

使用这些命令可显示 NAT 配置和操作以及 NAT 表条目。

  • 查看 NAT 转换表
S5296F-Mid-SPINE# show nat translations
Protocol            Source              Destination         Translated Source   Translated Destination
----------------------------------------------------------------------------------------------------------------------------
all                 10.32.20.3          ----                100.100.100.1       ----
all                 ----                100.100.100.1       ----                10.32.20.3
udp                 ----                10.32.20.2:311      ----                100.100.100.100:63
udp                 100.100.100.100:63  ----                10.32.20.2:311      ----
  • 要清除 NAT 转换条目:
DELLSONiC# clear nat translations
  • 查看 NAT 转换统计信息:
DELLSONiC# show nat statistics
-----------------------------------------------------------------------------
Protocol       Source                        Destination                   Packets             Bytes
-----------------------------------------------------------------------------
udp            100.100.100.100:63            ---                           15522575563164      993444836042496
  • 查看 NAT 和 NAT 配置:
DELLSONiC# show nat config static
---------------------------------------------------------------------------------------------------------------------
Nat Type       IP Protocol         Global IP                     Global L4 Port      Local IP                      Local L4 Port       Twice-Nat Id
----------------------------------------------------------------------------------------------------------------------------
dnat           all                 100.100.100.1                 ----                10.32.20.3                    ----                ----
 
  • 查看 NAT 池:
DELLSONiC# show nat config pool
Pool Name           Global IP Range               Global L4 Port Range
-----------------------------------------------------------------------------
POOL1               100.100.100.2                 1024-6034
POOL2               100.100.100.3-100.100.100.4   ----
  • 查看 NAT 绑定配置:
DELLSONiC# show nat config bindings
Binding Name  Pool Name      Access-List         Nat Type       Twice-Nat Id
-----------------------------------------------------------------------------
EXT1          POOL1          ----                ----           ---
EXT2          POOL2          NAT_IPS             ----           ---
  • 查看全局 NAT 配置:
DELLSONiC# show nat config globalvalues
Admin Mode     : enabled
Global Timeout : 600 secs
TCP Timeout    : 86400 secs
UDP Timeout    : 300 secs
  • 查看 L3 接口分区:
DELLSONiC# show nat config zones
Port                Zone
-------------------------------------------------
Eth1/1              2
PortChannel12       2
Vlan200             1
Loopback1           1
  • 查看 NAT 转换计数:

DELLSONiC# show nat translations count
Static NAT Entries        ................. 2
Static NAPT Entries       ................. 0
Dynamic NAT Entries       ................. 0
Dynamic NAPT Entries      ................. 2
Static Twice NAT Entries  ................. 0
Static Twice NAPT Entries ................. 0
Dynamic Twice NAT Entries ................. 0
Dynamic Twice NAPT Entries ................ 0
Total SNAT/SNAPT Entries   ................ 2
Total DNAT/DNAPT Entries   ................ 2
Total Entries    .......................... 4

受影响的产品

Enterprise SONiC Distribution, PowerSwitch S5212F-ON, PowerSwitch S5224F-ON, PowerSwitch S5232F-ON, PowerSwitch S5248F-ON, PowerSwitch S5296F-ON, PowerSwitch Z9264F-ON, PowerSwitch Z9332F-ON
文章属性
文章编号: 000220835
文章类型: How To
上次修改时间: 08 2月 2024
版本:  5
从其他戴尔用户那里查找问题的答案
支持服务
检查您的设备是否在支持服务涵盖的范围内。