IP : 网络地址转换 (NAT)

NAT:本地和全局定义

2015 年 8 月 28 日 - 机器翻译
其他版本: PDFpdf | 英语 (2015 年 4 月 22 日) | 反馈


目录


简介

本文档定义并阐述了以下网络地址转换 (NAT) 术语:内部本地、内部全局、外部本地和外部全局。

先决条件

要求

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

使用的组件

本文档不限于特定的软件和硬件版本。

规则

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

术语定义

Cisco 定义了下列术语:

  • 内部本地地址 - 分配到内部网络上某一主机的 IP 地址。这是配置为计算机操作系统的参数的地址或通过 DHCP 等动态地址分配协议接收的地址。此地址可能不是由网络信息中心 (NIC) 或服务提供商分配的合法 IP 地址。

  • 内部全局地址 - 由 NIC 或服务提供商分配的合法 IP 地址,代表与外界通信的一个或多个内部本地 IP 地址。

  • 外部本地地址 - 外部主机显示给内部网络的 IP 地址。它不一定是合法地址,是从内部可路由地址空间中分配的。

  • 外部全局地址 - 由主机所有者为外部网络上的主机分配的 IP 地址。此类地址是从全局可路由地址或网络空间分配的。

这些定义所涉及的许多内容需要做进一步的解释。对于此示例,本文档首先定义了“本地地址”和“全局地址”,然后对这些术语进行了重新定义。请记住,内部和外部这两个术语属于 NAT 定义。在NAT路由器的接口定义作为与NAT配置命令、ip nat inside目的地ip nat outside source的内部或外部。然后,可以将这些接口连接到的网络分别视为内部网络或外部网络。

  • 本地地址 - 本地地址是出现在网络内部的所有地址。

  • 全局地址 - 全局地址是出现在网络外部的所有地址。

源自网络内部的数据包有一个内部本地地址充当数据包的源地址,有一个外部本地地址充当数据包的目标地址,而数据包驻留在网络的内部。当同一个数据包切换到外部网络时,数据包的来源当前称为“内部全局地址”,数据包的目标称为“外部全局地址”。

反之,如果数据包来源于网络的外部(尽管它位于外部网络),其源地址被称为“外部全局地址”。数据包的目标称为内部全局地址。如果同一个数据包切换到内部网络,则该数据包的源地址称为“外部本地地址”,该数据包的目标称为“内部本地地址”。

此图像提供一个示例。

8a.gif

示例

这些部分非常严密地检查了这些术语,并且使用此拓扑和示例。

/image/gif/paws/4606/8b.gif

定义内部本地地址和内部全局地址

在下面的配置中,当 NAT 路由器在其源地址为 10.10.10.1 的内部接口上接收数据包时,源地址会转换为 171.16.68.5。这也意味着当 NAT 路由器在其目标地址为 171.16.68.5 的外部接口上接收数据包时,目标地址会转换为 10.10.10.1。

ip nat inside source static 10.10.10.1 171.16.68.5 

!--- Inside host is known by the outside host as 171.16.68.5.


interface s 0
ip nat inside

interface s 1
ip nat outside

您可以发出 show ip nat translations 命令来验证路由器中的 NAT 转换。在理想的情况下,show ip nat translations 命令的输出如下所示:

Router#show ip nat translations

Pro     Inside global      Inside local       Outside local      Outside global
---     171.16.68.5        10.10.10.1            —                 ---

当数据包从内部网络移动到外部网络时,show ip nat translations 命令的输出如下所示:

Router#show ip nat translations

Pro    Inside global       Inside local        Outside local      Outside global
icmp   171.16.68.5:15      10.10.10.1:15       171.16.68.1:15     171.16.68.1:15
---    171.16.68.5         10.10.10.1             —                 ---

注意: 在 NAT 转换的此输出中,因为 Ping 用于验证条目,所以协议条目显示 ICMP。外部本地和外部全局条目将具有外部主机的同一个 IP 地址,即为 171.16.68.1。

本地地址是出现在内部网云中的地址。全局地址是出现在外部网云中的地址。根据 NAT 的配置方式,此内部地址是唯一被转换的地址。因此,内部本地地址与内部全局地址不同。

下面是当数据包位于内部网络和外部网络时的外观。

/image/gif/paws/4606/8c.gif

定义外部本地地址和外部全局地址

在下面的配置中,当 NAT 路由器在其源地址为 171.16.68.1 的外部接口上接收数据包时,源地址会转换为 10.10.10.5。这也意味着如果 NAT 路由器在其目标地址为 10.10.10.5 的内部接口上接收数据包时,目标地址会转换为 171.16.68.1。

ip nat outside source static 171.16.68.1 10.10.10.5

!--- Outside host is known to the inside host as 10.10.10.5.


interface s 0
ip nat inside

interface s 1
ip nat outside

在理想的情况下,show ip nat translations 命令的输出如下所示:

Router#show ip nat translations

Pro    Inside global       Inside local       Outside local      Outside global
         --- ---                ---            10.10.10.5          171.16.68.1

当数据包从外部网络移动到内部网络时,show ip nat translations 命令的输出如下所示:

Router#show ip nat translations

Pro     Inside global     Inside local       Outside local        Outside global
          --- ---           ---              10.10.10.5           171.16.68.1
icmp    10.10.10.1:37     10.10.10.1:37      10.10.10.5:37        171.16.68.1:37

注意: 内部全局和内部本地条目将具有内部主机的同一个 IP 地址,即为 10.10.10.1。

本地地址是出现在内部网云中的地址。全局地址是出现在外部网云中的地址。在本示例中,根据 NAT 的配置方式,仅会转换外部地址。因此,外部本地地址与外部全局地址不同。

下面是当数据包位于内部网络和外部网络时的外观。

/image/gif/paws/4606/8d.gif

定义所有本地和全局地址

在下面的配置中,当 NAT 路由器在其源地址为 10.10.10.1 的内部接口上接收数据包时,源地址会转换为 171.16.68.5。与IP地址10.10.10.1相应的接口是内部本地地址,而与IP地址171.16.68.5相应的接口是内部全局地址。当 NAT 路由器在其源地址为 171.16.68.1 的外部接口上接收数据包时,源地址会转换为 10.10.10.5。

这也意味着当 NAT 路由器在其目标地址为 171.16.68.5 的外部接口上接收数据包时,目标地址会转换为 10.10.10.1。此外,当 NAT 路由器在其目标地址为 10.10.10.5 的内部接口上接收数据包时,目标地址会转换为 171.16.68.1。

ip nat inside source static 10.10.10.1 171.16.68.5

!--- Inside host is known to the outside host as 171.16.68.5.


ip nat outside source static 171.16.68.1 10.10.10.5 

!--- Outside host is known to the inside host as 10.10.10.5.


interface s 0
ip nat inside

interface s 1
ip nat outside

在理想的情况下,show ip nat translations 命令的输出如下所示:

Router#show ip nat translations

Pro   Inside global      Inside local        Outside local       Outside global
         --- ---           ---                10.10.10.5          171.16.68.1
       171.16.68.5        10.10.10.1           —                   ---

本地地址是出现在内部网云中的地址,全局地址是出现在外部网云中的地址。根据这种情况下 NAT 的配置方式,内部地址和外部地址都需要转换。因此,内部本地地址不同于内部全局地址,外部本地地址不同于外部全局地址。

当从两端启动数据包转换时,show ip nat translations 命令的输出如下所示:

Router#show ip nat translations

Pro Inside global      Inside local       Outside local      Outside global
---      ---                ---           10.10.10.5         171.16.68.1
icmp 10.10.10.1:4      10.10.10.1:4       10.10.10.5:4       171.16.68.1:4
icmp 171.16.68.5:39    10.10.10.1:39      171.16.68.1:39     171.16.68.1:39
---  171.16.68.5       10.10.10.1           —                 ---

下面是当数据包位于内部网络和外部网络时的外观。

/image/gif/paws/4606/8e.gif

总之,当我们考虑数据包在网络中出现的位置时,术语“本地”和“全局”实际上相当直接。当全局地址出现在网络的外部时,本地地址出现在网络的内部。

相关的思科支持社区讨论

思科支持社区是您提问、解答问题、分享建议以及与工作伙伴协作的论坛。


相关信息


Document ID: 4606