目录

简介

先决条件

要求

使用的组件

规则

示例配置

配置示例1

配置示例2

配置示例3

场景和配置示例

相关信息

简介

Cisco IOS®软件版本11.2(13)和11.3(3)引入了网络地址转换(NAT)功能，以支持非标准文件传输协议(FTP)端口号。在早期的Cisco IOS软件发布中，当支持NAT的路由器收到NAT转换IP地址的信息包，并且标准的TCP端口号提供给FTP控制连接(21)时，路由器将把信息包当作FTP信息包，并且在信息包有效载荷(数据部分)中进行必要的转换。然而，如果FTP服务器正在使用非标准的FTP端口号，那么NAT可以忽略信息包的有效载荷。这会阻止建立FTP数据连接。

要支持使用非标准 FTP 端口号，必须使用 ip nat 服务命令。下表介绍了此命令上可用的选项：

选项

定义

列表

指定描述全局地址的访问列表。

名称

服务器本地地址的访问列表名称。

号码

全局地址的访问列表编号。

ftp

FTP协议。

tcp

TCP协议。

端口

特殊非标准端口。

端口号

特殊非标准端口的数量。

以下是一个示例语法：

router-6(config)#ip nat service list 10 ftp tcp port 2021

需要注意的一些重要事项：

- 上述命令中的访问控制列表地址必须匹配供FTP服务器（带非标准的FTP控制端口）使用的内部本地IP地址。

- 如果已为FTP服务器配置非标准的FTP控制端口，NAT则停止检查使用端口21（供FTP服务器使用）的FTP控制连接。所有其他FTP服务器继续正常运行。

- 一台带由使用非标准控制端口FTP服务器的主机还可以拥有一个使用标准FTP控制端口(21)的FTP客户端。

- 如果FTP服务器同时使用端口21和非标准端口，那么您需要使用ip nat service list <acl> ftp tcp <port> 命令配置这两个端口。例如：

ip nat service list 10 ftp tcp port 2021

ip nat service list 10 ftp tcp port 21

但是，不能为同一端口和同一服务配置多个访问列表。例如：

router-6(config)#ip nat service list 17 ftp tcp port 2021

router-6(config)#ip nat service list 10 ftp tcp port 2021

% service "ftp tcp port 2021" is already configured for access-list 17

先决条件

要求

本文档没有任何特定的要求。

使用的组件

本文档中的信息基于以下软件和硬件版本：

- 思科IOS软件版本11.2(13)、11.3(3)及更高版本

本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始（默认）配置。如果您使用的是真实网络，请确保您已经了解所有命令的潜在影响。

规则

有关文档规则的详细信息，请参阅 Cisco 技术提示规则。

示例配置

在下面的每一示例中，NAT当作FTP控制连接处理的数据流在这些配置后面的表中有所描述。在每张表中，“任何本地地址”指那些不等于10.1.1.1 的所有地址。

配置示例1

假设这些FTP服务器在本地网络中运行：

- IP地址为10.1.1.1的FTP服务器，运行在TCP端口号2021上。

- IP地址为“any”（10.1.1.1除外）的TCP端口号为21的其他FTP服务器。

ip nat service list 10 ftp tcp port 2021

access-list 10 permit 10.1.1.1

源地址

源 TCP 端口

目标地址

目的 TCP 端口

任何本地地址

任何端口

10.1.1.1

2021

任何本地地址

任何端口

任何本地地址（请参阅注意）

21

10.1.1.1

任何端口

任何本地地址（请参阅注意）

21

注意：任何本地地址均不等于10.1.1.1。

此列表描述了上表中详述的NAT过程：

- 第一行：当信息包带任意源地址，且端口编号指定到带目的TCP端口2021的FTP服务器（10.1.1.1）时，它需要对NAT有效载荷进行必要的转换。

- 第二行：当信息包带任意源地址，且端口编号指定到带目的TCP端口21（通常时FTP控制端口）的本地地址（10.1.1.1除外）时，它需要对NAT有效载荷进行必要的转换。因此，启用在典型端口21上运行的所有FTP服务器（10.1.1.1除外），以便进行负载的必要NAT转换。

- 第三行：当信息包来源于10.1.1.1，且其端口编号指定到带目的TCP端口21的任何本地地址（10.1.1.1除外）时，它需要进行必要的NAT有效载荷转换。

配置示例2

假设这些FTP服务器在本地网络中运行：

- IP地址为10.1.1.1的FTP服务器，在TCP端口21和2021上运行。

- IP地址为“any”（10.1.1.1除外）的TCP端口号为21的某些FTP服务器。

ip nat service list 10 ftp tcp port 21

ip nat service list 10 ftp tcp port 2021

access-list 10 permit 10.1.1.1

源地址

源 TCP 端口

目标地址

目的 TCP 端口

任何本地地址

任何端口

10.1.1.1

2021

任何本地地址

任何端口

10.1.1.1

21

任何本地地址

任何端口

任何本地地址

21

任何本地地址

任何端口

任何本地地址

21

此列表描述了上表中详述的NAT过程：

- 第一行：当信息包带任意源地址，且端口编号指定到带目的TCP端口2021的FTP服务器（10.1.1.1）时，它需要对NAT有效载荷进行必要的转换。

- 第二行：当信息包带任意源地址，且端口编号指定到带目的TCP端口21的FTP服务器（10.1.1.1）时，它需要对NAT有效载荷进行必要的转换。

- 第三行：当信息包带任意源地址，且端口编号指定到带目的TCP端口21（通常为FTP控制端口）的本地地址时，它需要对NAT有效载荷进行必要的转换。因此，启用在典型端口21上运行的所有FTP服务器，以便对负载进行必要的NAT转换。

- 第四行：当信息包来源于10.1.1.1，且其端口编号指定到带目的TCP端口21的任何本地地址时，它需要对NAT有效载荷进行必要的转换。

配置示例3

假设这些FTP服务器在本地网络中运行：

- IP地址为10.1.1.1的FTP服务器，在TCP端口号21上运行。

- TCP端口号2021上IP地址为10.1.1.0/24（10.1.1.1除外）的FTP服务器。

ip nat service list 10 ftp tcp port 2021

access-list 10 deny 10.1.1.1

access-list 10 permit 10.1.1.0 0.0.0.255

源地址

源 TCP 端口

目标地址

目的 TCP 端口

任何本地地址

任何端口

10.1.1.1

21

任何本地地址

任何端口

10.1.1.x（见附注）

2021

10.1.1.x（见附注）

任何端口

除10.1.1.x之外的任何地址（请参阅注意）

21

注意：10.1.1.x不等于10.1.1.1。

此列表描述了上表中详述的NAT过程：

- 第一行：当信息包带任意源地址，且端口编号指定到带目的TCP端口21的FTP服务器（10.1.1.1）时，它需要对NAT有效载荷进行必要的转换。

注意：由于access-list中的deny 10.1.1.1语句，因此发往端口为2021的10.1.1.1的数据包没有NAT负载转换。

- 第二行：当信息包带任意源地址，且端口编号指定到带目的TCP端口2021的本地地址（10.1.1.1除外）时，它需要对NAT有效载荷进行必要的转换。

- 第三行：源自任何10.1.1.x（请参阅上表下的注释）（除10.1.1.1外）的数据包，其端口号发往任何地址（除10.1.1.x外）且目的TCP端口为21的地址，都需要对负载进行必要的NAT转换。

切记在为FTP服务器配置非标准FTP控制端口时，NAT终止为服务器提供端口21的FTP控制会话。如果FTP服务器同时使用标准和非标准端口，那么您需要使用ip nat service命令配置这两个端口。

场景和配置示例

TCP端口号为2021的FTP服务器10.1.1.1在内部网络上运行。配置NAT路由器的目的是：使FTP数据流能够进行网络地址转换(NAT)，以控制端口2021上的连接。

网络图

配置:

interface Ethernet0

ip address 10.1.1.2 255.255.255.0

ip nat inside

!

interface Serial0

ip address 192.168.10.1 255.255.255.252

ip nat outside

!

ip nat service list 10 ftp tcp port 2021

ip nat inside source static 10.1.1.1 20.20.20.1

!--- Static NAT translation for inside local address 10.1.1.1 !--- to inside global address 20.20.20.1.

!

access-list 10 permit 10.1.1.1

相关信息

- NAT 如何工作

- NAT 常见问题

- 使用 ip nat outside source static 命令的示例配置

- 验证 NAT 的运行和基本的 NAT 故障排除

- NAT 支持页

- 技术支持和文档 - Cisco Systems