思科培训 200-125 CCNA v3.0。 第 29 天.PAT 和 NAT

今天我们将学习PAT(端口地址转换),一种使用端口转换IP地址的技术,以及NAT(网络地址转换),一种用于转换中转数据包的IP地址的技术。 PAT 是 NAT 的一个特例。 我们将讨论三个主题:

— 私有或内部(内联网、本地)IP 地址和公共或外部 IP 地址;
- NAT 和 PAT;
— NAT/PAT 配置。

让我们从内部私有 IP 地址开始。 我们知道它们分为三类:A、B、C。

思科培训 200-125 CCNA v3.0。 第 29 天.PAT 和 NAT

内部A类地址占用10.0.0.0到10.255.255.255的十位范围,外部地址占用1.0.0.0到9和255.255.255到11.0.0.0的范围。

内部B类地址的范围为172.16.0.0至172.31.255.255,外部地址的范围为128.0.0.0至172.15.255.255和172.32.0.0至191.255.255.255。

内部C类地址的范围为192.168.0.0至192.168.255.255,外部地址的范围为192.0.0至192.167.255.255和192.169.0.0至223.255.255.255。

思科培训 200-125 CCNA v3.0。 第 29 天.PAT 和 NAT

A 类地址为 /8,B 类地址为 /12,C 类地址为 /16。 因此,不同类别的外部和内部IP地址占据不同的范围。

我们已经多次讨论了私有 IP 地址和公共 IP 地址之间的区别。 一般来说,如果我们有一个路由器和一组内部IP地址,当它们尝试访问互联网时,路由器会将它们转换为外部IP地址。 内部地址仅在本地网络上使用,而不在互联网上使用。

如果我使用命令行查看计算机的网络参数,我将看到我的内部 LAN IP 地址 192.168.1.103。

思科培训 200-125 CCNA v3.0。 第 29 天.PAT 和 NAT

为了找出您的公共 IP 地址,您可以使用诸如“我的 IP 是什么?”之类的互联网服务。 如您所见,计算机的外部地址 78.100.196.163 与其内部地址不同。

思科培训 200-125 CCNA v3.0。 第 29 天.PAT 和 NAT

在所有情况下,我的计算机通过其外部 IP 地址在 Internet 上都是可见的。 所以,我的计算机的内部地址是192.168.1.103,外部地址是78.100.196.163。 内部地址仅用于本地通信,您无法使用它访问互联网,为此您需要一个公共 IP 地址。 通过查看第 3 天的视频教程,您可以记住为什么要划分私人地址和公共地址。

我们先来看看什么是NAT。 NAT 分为三种类型:静态、动态和“过载”NAT(或 PAT)。

思科培训 200-125 CCNA v3.0。 第 29 天.PAT 和 NAT

Cisco 有 4 个术语来描述 NAT。 正如我所说,NAT 是一种将内部地址转换为外部地址的机制。 如果连接到互联网的设备接收到来自本地网络上另一个设备的数据包,它将简单地丢弃该数据包,因为内部地址格式与全球互联网上使用的地址格式不匹配。 因此,设备必须获得公网IP地址才能访问Internet。
因此,第一个术语是“内部本地”,表示内部本地网络上主机的 IP 地址。 简单来说,这是类型 192.168.1.10 的主要源地址。 第二个术语“内部全局”是在外部网络上可见的本地主机的 IP 地址。 在我们的例子中,这是路由器外部端口的 IP 地址 200.124.22.10。

思科培训 200-125 CCNA v3.0。 第 29 天.PAT 和 NAT

可以说Inside Local是私有IP地址,Inside Global是公有IP地址。 请记住,术语“内部”是指流量的源,“外部”是指流量的目的地。 Outside Local 是外部网络上的主机的 IP 地址,在该地址下对内部网络是可见的。 简单来说,这是从内部网络可见的收件人地址。 此类地址的一个示例是位于 Internet 上的设备的 IP 地址 200.124.22.100。

思科培训 200-125 CCNA v3.0。 第 29 天.PAT 和 NAT

外部全局是外部网络上可见的主机 IP 地址。 在大多数情况下,外部本地地址和外部全局地址看起来相同,因为即使在转换之后,目标 IP 地址对于源来说仍是可见的,就像转换之前一样。

思科培训 200-125 CCNA v3.0。 第 29 天.PAT 和 NAT

我们先来看看什么是静态NAT。 静态 NAT 是指内部 IP 地址到外部 IP 地址的一对一转换,或一对一转换。 当设备向 Internet 发送流量时,其内部本地地址将转换为内部全局地址。

思科培训 200-125 CCNA v3.0。 第 29 天.PAT 和 NAT

我们的本地网络上有 3 台设备,当它们上线时,每台设备都会获得自己的内部全局地址。 这些地址被静态分配给流量源。 一对一原则意味着如果本地网络上有 100 个设备,它们会收到 100 个外部地址。

NAT 的诞生是为了拯救公共 IP 地址耗尽的互联网。 借助NAT,许多公司和许多网络可以拥有一个公共的外部IP地址,设备在访问Internet时将本地地址转换为该地址。 您可以说,在静态 NAT 的情况下,不会节省地址数量,因为一百个本地计算机被分配了一百个外部地址,您是绝对正确的。 然而,静态 NAT 仍然具有许多优点。

例如,我们有一台内部IP地址为192.168.1.100的服务器。 如果互联网上的任何设备想要联系它,则无法使用内部目标地址进行联系,为此它需要使用外部服务器地址 200.124.22.3。 如果您的路由器配置了静态 NAT,则所有寻址到 200.124.22.3 的流量都会自动转发到 192.168.1.100。 这提供了对本地网络设备的外部访问,在本例中是公司的 Web 服务器,这在某些情况下可能是必要的。

让我们考虑一下动态 NAT。 它与静态非常相似,但不会为每个本地设备分配永久的外部地址。 例如,我们有 3 个本地设备,只有 2 个外部地址。 如果第二台设备想要访问互联网,它将被分配第一个空闲IP地址。 如果网络服务器想要在其之后访问互联网,路由器将为其分配第二个可用的外部地址。 如果此后第一台设备想要连接到外部网络,则它将没有可用的 IP 地址,路由器将丢弃其数据包。

思科培训 200-125 CCNA v3.0。 第 29 天.PAT 和 NAT

我们可能有数百台具有内部IP地址的设备,并且每台设备都可以访问互联网。 但由于我们没有静态分配的外部地址,因此一百台设备中不能同时访问互联网的设备不会超过 2 台,因为我们只有两个动态分配的外部地址。

Cisco设备有固定的地址转换时间,默认为24小时。 它可以更改为 1,2,3、10、XNUMX、XNUMX 分钟,任何您喜欢的时间。 过了这个时间,外部地址就会被释放并自动返回到地址池中。 如果此时第一台设备想要访问互联网并且有任何外部地址可用,那么它将接收该地址。 路由器包含动态更新的 NAT 表,并且在转换时间到期之前,分配的地址将由设备保留。 简而言之,动态 NAT 的工作原理是“先到先得”。

让我们看看什么是过载 NAT(PAT)。 这是最常见的 NAT 类型。 您的家庭网络上可能有许多设备 - PC、智能手机、笔记本电脑、平板电脑,它们都连接到具有一个外部 IP 地址的路由器。 因此,PAT 允许多个具有内部 IP 地址的设备在一个外部 IP 地址下同时访问 Internet。 这是可能的,因为每个私有内部 IP 地址在通信会话期间都使用特定的端口号。
假设我们有一个公共地址 200.124.22.1 和许多本地设备。 因此,当访问互联网时,所有这些主机都会收到相同的地址200.124.22.1。 唯一区分它们的是端口号。
如果您还记得传输层的讨论,您就会知道传输层包含端口号,源端口号是随机数。

思科培训 200-125 CCNA v3.0。 第 29 天.PAT 和 NAT

假设外网有一台IP地址为200.124.22.10的主机,它连接到Internet。 如果计算机 192.168.1.11 要与计算机 200.124.22.10 通信,它将创建一个随机源端口 51772。在这种情况下,外网计算机的目标端口将为 80。

当路由器收到发往外部网络的本地计算机数据包时,它会将其内部本地地址转换为内部全局地址 200.124.22.1,并分配端口号 23556。该数据包将到达计算机 200.124.22.10,并且必须根据握手过程发回响应,在这种情况下,目的地将是地址200.124.22.1和端口23556。

路由器有一个NAT转换表,所以当它收到外部计算机发来的数据包时,它会确定内部全局地址对应的内部本地地址为192.168.1.11:51772,并将数据包转发给它。 此后,两台计算机之间的连接就可以认为建立了。
同时,您可能有一百台设备使用相同的地址 200.124.22.1 进行通信,但端口号不同,因此它们都可以同时访问互联网。 这就是 PAT 如此流行的广播方法的原因。

让我们看看设置静态 NAT。 对于任何网络,首先需要确定输入和输出接口。 图中所示为一台路由器,流量从端口G0/0传输到端口G0/1,即从内部网络到外部网络。 所以我们有一个输入接口 192.168.1.1 和一个输出接口 200.124.22.1。

思科培训 200-125 CCNA v3.0。 第 29 天.PAT 和 NAT

要配置 NAT,我们转到 G0/0 接口并设置参数 ip addres 192.168.1.1 255.255.255.0 并使用 ip nat inside 命令指示该接口是输入接口。

思科培训 200-125 CCNA v3.0。 第 29 天.PAT 和 NAT

同样的,我们在输出接口G0/1上配置NAT,指定ip地址200.124.22.1,子网掩码255.255.255.0,ip nat Outside。 请记住,动态 NAT 转换始终是从输入到输出接口、从内部到外部执行的。 当然,对于动态NAT,响应是通过输出接口到达输入接口的,但是当发起流量时,触发的是in-out方向。 在静态 NAT 的情况下,流量启动可以发生在任一方向 - 输入-输出或输出-输入。

接下来,我们需要创建一个静态 NAT 表,其中每个本地地址对应一个单独的全局地址。 在我们的例子中,有 3 个设备,因此该表将包含 3 条记录,它们表示源的内部本地 IP 地址,该地址将转换为内部全局地址:ip nat inside static 192.168.1.10 200.124.22.1。
因此,在静态 NAT 中,您需要手动为每个本地主机地址编写转换。 现在我将进入 Packet Tracer 并进行上述设置。

思科培训 200-125 CCNA v3.0。 第 29 天.PAT 和 NAT

在顶部,我们有服务器 192.168.1.100,下面是计算机 192.168.1.10,最底部是计算机 192.168.1.11。 Router0的G0/0端口的IP地址为192.168.1.1,G0/1端口的IP地址为200.124.22.1。 在代表互联网的“云”中,我放置了 Router1,并为其分配了 IP 地址 200.124.22.10。

我进入 Router1 的设置并输入命令 debug ip icmp。 现在,一旦 ping 到达该设备,设置窗口中就会出现一条调试消息,显示数据包的内容。
让我们开始设置 Router0 路由器。 我进入全局设置模式并调用 G0/0 接口。 接下来,我输入 ip nat inside 命令,然后转到 g0/1 接口并输入 ip nat Outside 命令。 这样我就分配了路由器的输入和输出接口。 现在我需要手动配置IP地址,即将上表中的行转移到设置中:

IP nat 内部源静态 192.168.1.10 200.124.22.1
IP nat 内部源静态 192.168.1.11 200.124.22.2
IP nat 内部源静态 192.168.1.100 200.124.22.3

思科培训 200-125 CCNA v3.0。 第 29 天.PAT 和 NAT

现在,我将从每台设备 ping Router1 并查看它收到的 ping 显示的 IP 地址。 为此,我将 R1 路由器的打开 CLI 窗口放置在屏幕右侧,以便可以看到调试消息。 现在我进入 PC0 命令行终端并 ping 地址 200.124.22.10。 此后,窗口中会出现一条消息,表明已从 IP 地址 200.124.22.1 收到 ping。 这意味着本地计算机的 IP 地址 192.168.1.10 已转换为全局地址 200.124.22.1。

思科培训 200-125 CCNA v3.0。 第 29 天.PAT 和 NAT

我对下一台本地计算机执行相同的操作,看到其地址已转换为 200.124.22.2。 然后我 ping 服务器并看到地址 200.124.22.3。
这样,当来自本地网络设备的流量到达配置了静态NAT的路由器时,路由器会根据该表将本地IP地址转换为全局IP地址,并将流量发送到外部网络。 为了检查 NAT 表,我输入了 show ip nat Translations 命令。

思科培训 200-125 CCNA v3.0。 第 29 天.PAT 和 NAT

现在我们可以查看路由器所做的所有转换。 第一列Inside Global地址包含广播前设备的地址,即设备在外部网络中可见的地址,后面是Inside Local地址,即设备在本地网络上的地址。 第三列显示外部本地地址,第四列显示外部全局地址,两者相同,因为我们没有转换目标 IP 地址。 正如您所看到的,几秒钟后该表被清除,因为 Packet Tracer 设置了较短的 ping 超时。

我可以从路由器 R1 ping 位于 200.124.22.3 的服务器,如果我返回到路由器设置,我可以看到该表再次填充了四行 ping 行,其中包含转换后的目标地址 192.168.1.100。

思科培训 200-125 CCNA v3.0。 第 29 天.PAT 和 NAT

正如我所说,即使触发了转换超时,当从外部源发起流量时,NAT 机制也会自动激活。 仅当使用静态 NAT 时才会发生这种情况。

现在让我们看看动态 NAT 是如何工作的。 在我们的示例中,三个本地网络设备有 2 个公共地址,但可能有数十或数百个此类私有主机。 同时,只能有2台设备同时上网。 此外,我们还考虑一下静态 NAT 和动态 NAT 之间的区别。

和前面的情况一样,首先需要确定路由器的输入和输出接口。 接下来,我们创建一种访问列表,但这与我们在上一课中讨论的 ACL 不同。 该访问列表用于识别我们想要转换的流量。 这里出现了一个新词“有趣的流量”或者“有趣的流量”。 这是您出于某种原因感兴趣的流量,当该流量与访问列表的条件匹配时,它将进入 NAT 并进行转换。 该术语适用于许多情况下的流量,例如,对于 VPN,“感兴趣”是指将通过 VPN 隧道的流量。

我们必须创建一个 ACL 来识别感兴趣的流量,在我们的例子中,这是整个 192.168.1.0 网络的流量,并指定返回掩码 0.0.0.255。

思科培训 200-125 CCNA v3.0。 第 29 天.PAT 和 NAT

然后我们必须创建一个 NAT 池,为此我们使用命令 ip nat pool <pool name> 并指定 IP 地址池 200.124.22.1 200.124.22.2。 这意味着我们只提供两个外部 IP 地址。 接下来,该命令使用 netmask 关键字并输入子网掩码 255.255.255.252。 掩码的最后一个八位字节是(255 - 池地址数 - 1),因此如果池中有 254 个地址,则子网掩码将为 255.255.255.0。 这是一个非常重要的设置,因此在设置动态 NAT 时请务必输入正确的网络掩码值。

接下来我们使用启动 NAT 机制的命令:ip nat inside source list 1 pool NWKING,其中 NWKING 是池的名称,list 1 表示 ACL 编号 1。 请记住 - 为了使该命令起作用,您必须首先创建动态地址池和访问列表。

因此,在我们的条件下,想要访问互联网的第一个设备将能够执行此操作,第二个设备将能够执行此操作,但第三个设备将必须等到其中一个池地址空闲为止。 设置动态 NAT 包括 4 个步骤:确定输入和输出接口、识别“感兴趣”的流量、创建 NAT 池和实际配置。
现在我们将继续使用 Packet Tracer 并尝试配置动态 NAT。 首先,我们必须删除静态 NAT 设置,为此我们按顺序输入命令:

没有 IP nat 内部源静态 192.168.1.10 200.124.22.1
没有 IP nat 内部源静态 192.168.1.11 200.124.22.2
没有 Ip nat 内部源静态 192.168.1.100 200.124.22.3。

接下来,我使用命令 access-list 1 Permit 1 192.168.1.0 创建整个网络的访问列表 List 0.0.0.255,并使用命令 ip nat pool NWKING 200.124.22.1 200.124.22.2 netmask 255.255.255.252 创建 NAT 池。 在此命令中,我指定了池的名称、其中包含的地址以及网络掩码。

然后我指定它是哪个 NAT - 内部还是外部,以及 NAT 应该从中获取信息的源,在我们的例子中是列表,使用命令 ip nat inside source list 1。此后,系统将提示您是否需要整个池或特定的接口。 我选择池是因为我们有超过 1 个外部地址。 如果选择接口,则需要指定具有特定 IP 地址的端口。 在最终形式中,该命令将如下所示:ip nat inside source list 1 pool NWKING。 目前,该池由两个地址 200.124.22.1 200.124.22.2 组成,但您可以自由更改它们或添加与特定接口无关的新地址。

您必须确保更新路由表,以便池中的任何 IP 地址都必须路由到该设备,否则您将不会收到返回流量。 为了确保设置正常工作,我们将重复对云路由器执行 ping 操作的过程,这与静态 NAT 的操作相同。 我将打开路由器 1 的窗口,以便可以看到调试模式消息并从 3 个设备中的每一个设备对其进行 ping 操作。

思科培训 200-125 CCNA v3.0。 第 29 天.PAT 和 NAT

我们看到 ping 数据包来自的所有源地址都与设置相对应。 同时,从计算机 PC0 执行 ping 操作也不起作用,因为它没有足够的空闲外部地址。 如果进入路由器 1 的设置,您可以看到池地址 200.124.22.1 和 200.124.22.2 当前正在使用。 现在我把广播关掉,你就会看到台词是如何一一消失的。 我再次 ping PC0,如您所见,现在一切正常,因为它能够获取免费的外部地址 200.124.22.1。

如何清除 NAT 表并撤消给定的地址转换? 转至 Router0 路由器的设置并键入命令clear ip nat conversion *,并在行末尾添加星号。 如果我们现在使用 show ip nat Translation 命令查看转换状态,系统将给我们一个空行。

要查看 NAT 统计信息,请使用 show ip nat stats 命令。

思科培训 200-125 CCNA v3.0。 第 29 天.PAT 和 NAT

这是一个非常有用的命令,可让您找出动态、静态和高级 NAT/PAT 转换的总数。 可以看到它是0,因为我们用上一条命令清除了广播数据。 这显示输入和输出接口、成功和不成功的命中和未命中转换的次数(失败的次数是由于内部主机缺少可用的外部地址)、访问列表和池的名称。

现在我们将继续讨论最流行的 IP 地址转换类型 - 高级 NAT 或 PAT。 要配置 PAT,您需要遵循与配置动态 NAT 相同的步骤:确定路由器的输入和输出接口、识别“感兴趣”流量、创建 NAT 池并配置 PAT。 我们可以像前一种情况一样创建相同的多个地址池,但这不是必需的,因为 PAT 始终使用相同的外部地址。 配置动态 NAT 和 PAT 之间的唯一区别是结束最后一个配置命令的 override 关键字。 输入该字后,动态NAT自动转为PAT。

思科培训 200-125 CCNA v3.0。 第 29 天.PAT 和 NAT

此外,您仅使用 NWKING 池中的一个地址(例如 200.124.22.1),但将其指定两次作为起始和结束外部地址,网络掩码为 255.255.255.0。 通过使用源接口参数和 G1/200.124.22.1 接口的固定地址 200.124.22.1,而不是使用 ip nat 255.255.255.0 pool NWKING 200.124.22.1 0 netmask 1 行,可以更轻松地完成此操作。 这样的话,所有访问互联网的本地地址都会被转换为这个IP地址。

您还可以使用池中的任何其他 IP 地址,该地址不一定对应于特定的物理接口。 但是,在这种情况下,您必须确保网络上的所有路由器都可以将返回流量转发到您选择的设备。 NAT的缺点是它不能用于端到端寻址,因为当返回数据包返回到本地设备时,其动态NAT IP地址可能有时间改变。 也就是说,您必须确保所选 IP 地址在整个通信会话期间保持可用。

让我们通过 Packet Tracer 来看看。 首先,我必须使用命令 no Ip nat inside source list 1 NWKING 删除动态 NAT,并使用命令 no Ip nat pool NWKING 200.124.22.1 200.124.22.2 netmask 225.255.255.252 删除 NAT 池。

然后我必须使用命令 Ip nat pool NWKING 200.124.22.2 200.124.22.2 netmask 225.255.255.255 创建 PAT 池。 这次我使用的 IP 地址不属于物理设备,因为物理设备的地址为 200.124.22.1,而我想使用 200.124.22.2。 在我们的例子中它是有效的,因为我们有一个本地网络。

接下来,我使用源列表 1 池 NWKING 过载内的命令 Ip nat 配置 PAT。 输入此命令后,PAT 地址转换被激活。 为了检查设置是否正确,我转到我们的设备、服务器和两台计算机,并从计算机 ping PC0 Router1(地址为 200.124.22.10)。 在路由器设置窗口中,您可以看到调试行,显示 ping 的来源正如我们所料,是 IP 地址 200.124.22.2。 计算机 PC1 和服务器 Server0 发送的 ping 来自同一地址。

让我们看看 Router0 的转换表中发生了什么。 您可以看到所有转换均成功,每个设备都分配了自己的端口,并且所有本地地址都通过池 IP 地址 1 与 Router200.124.22.2 关联。

思科培训 200-125 CCNA v3.0。 第 29 天.PAT 和 NAT

我使用 show ip nat stats 命令来查看 PAT 统计信息。

思科培训 200-125 CCNA v3.0。 第 29 天.PAT 和 NAT

我们看到转换或地址转换的总数是12,我们看到池的特征和其他信息。

现在我将做其他事情 - 我将在源列表 1 接口千兆位以太网 g0/1 过载中输入命令 Ip nat。 如果然后从 PC0 ping 路由器,您将看到数据包来自地址 200.124.22.1,即来自物理接口! 这是一种更简单的方法:如果您不想创建池(这在使用家庭路由器时最常发生),那么您可以使用路由器物理接口的 IP 地址作为外部 NAT 地址。 这是公共网络的私有主机地址最常被转换的方式。
今天我们学了一个非常重要的话题,所以你需要练习一下。 使用 Packet Tracer 测试您针对实际 NAT 和 PAT 配置问题的理论知识。 我们已经结束了 ICND1(CCNA 课程的第一次考试)主题的学习,因此我可能会在下一个视频课程中总结结果。


感谢您与我们在一起。 你喜欢我们的文章吗? 想看更多有趣的内容? 通过下订单或推荐给朋友来支持我们, 在我们为您发明的独特的入门级服务器模拟上,Habr 用户可享受 30% 的折扣: VPS (KVM) E5-2650 v4(6 核)10​​4GB DDR240 1GB SSD 20Gbps XNUMX 美元或如何共享服务器的全部真相? (适用于 RAID1 和 RAID10,最多 24 个内核和最多 40GB DDR4)。

戴尔R730xd便宜2倍? 只有这里 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 电视低至 199 美元 在荷兰! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - 99 美元起! 阅读 如何建设基础设施公司同级使用价值730欧元的Dell R5xd E2650-4 v9000服务器一分钱?

来源: habr.com

添加评论