菜缤的世界 CairBin's Blog - NAT
type: channel
link: https://blog.cairbin.top/index.php/tag/NAT/
items: IPv4 NAT（含Cisco配置）

IPv4 NAT（含Cisco配置）
type: item
date: 2024-04-24T17:18:03+00:00
description: IPv4 NAT（含Cisco配置）IPv4私有空间地址类RFC 1918 内部地址范围前缀A10.0.0.0 - 10.255.255.25510.0.0.0/8B172.16.0.0 - 172.31.255.255172.16.0.0/12C192.168.0.0 - 192.168.255.255192.168.0.0/16这些私有地址可在企业或站点内使用，允许设备进行本地通信。但是，由于这些地址并不代表任何公司或组织机构，因此私有IPv4地址不能在互联网上路由。为了使具有私有 IPv4 地址的设备能够访问本地网络之外的设备和资源，必须首先将私有地址转换为公有地址。NAT 提供了私有地址到公有地址的转换，NAT的类型。这样做可以使拥有私有IPv4地址的设备可以访问私有网络外部的资源，比如互联网上的资源。NAT的概念NAT 有很多作用，但其主要作用是节省了公有 IPv4 地址。它通过允许网络在内部使用私有 IPv4地址，而只在需要时提供到公有地址的转换，从而实现这一作用。NAT还在一定程度上增加了网络的隐私性和安全性，因为它对外部网络隐藏了内部IPv4地址。可以为启用 NAT 的路由器配置一个或多个有效的公有 IPv4 地址。这些公有地址称为 NAT 地址池。当内部设备将流量发送到网络外部时，启用 NAT 的路由器会将设备的内部 IPv4 地址转换为NAT 池中的一个公有地址。对外部设备而言，所有进出网络的流量好像都有一个取自所提供地址池中的公有 IPv4 地址。NAT 路由器通常工作在末端网络边界。末节网络是指这一个或多个网络与它的邻居网络之间只有单条连接，网络流量只有单条路入、单条路出。在图中的示例中，R2 为边界路由器。对 ISP 来说，R2 构成末端网络。当末端网络内的设备想要与其网络外部的设备通信时，会将数据包转发到边界路由器。边界路由器会执行 NAT 过程，将设备的内部私有地址转换为公有的外部可路由地址。NAT术语由于本文主要讲IPv4的NAT，“地址”一词如果没有特殊说明默认指IPv4地址。内部本地地址：内部网络设备看到的源IPv4地址。内部全局地址：网络外部看到的源IPv4地址。当发至外部的数据包经过NAT网关时，源IPv4地址会变成内部全局IPv4地址。外部本地地址：外部设备看到的目的IPv4地址。这通常是分配给互联网主机的全局可路由地址。大多数情况，外部本地地址与外部全局地址是一样的。外部全局地址：网络内部设备看到的目的IPv4地址。在决定使用哪一种地址时，重要的是记住NAT术语始终是从具有转换后地址的设备的角度来应用的：内部地址：经过NAT转换的设备IP地址外部地址：目的设备的IP地址关于地址，NAT还会使用全局或本地的概念：本地地址：出现在网络内部的IP地址全局地址：出现在网络外部的IP地址静态NAT静态NAT使用本地地址和全局地址一对一映射，由管理员进行配置，保持不变。在图中，R2 上配置了 Svr1、PC2 和 PC3 的内部本地地址的静态映射。这些设备在向互联网发送流量时，它们的内部本地地址会转换为管理员配置的内部全局地址。对外部网络的设备而言，这些设备使用的是公有IPv4地址。如果Web服务器或设备必须拥有固定的地址，以便能够让其他设备从互联网发起访问的话 比如公司的Web服务器），静态NAT就尤为有用。静态NAT也适用于这种情况：只有拥有授权的人员才能够从互联网对设备进行访问，发起访问的并不是互联网上一般的公有设备。举例来说，网络管理员可以从PC4上使用SSH来访问SRV1的内部全局地址 209.165.200.226）。R2会把这个内部全局地址转换为内部本地地址192.168.10.10，然后把会话连接到SRV1。为了满足所有同时发生的用户会话需要，静态 NAT 要求有足够的公有地址可用。动态NAT动态 NAT 使用公有地址池，并以先到先得的原则分配这些地址。内部设备请求访问外部网络时，动态 NAT 分配该池中的可用公共 IPv4 地址。如图所示，PC3使用的是动态NAT池中第5个可用地址连接的互联网。而其他地址仍可供使用。与静态 NAT 类似，为了满足所有同时发生的用户会话需要，动态 NAT 要求有足够的公有地址可用。端口地址转换PAT端口地址转换（PAT），也称为NAT过载，可以可以将多个地址映射到一个或少数几个地址，因为每个私有地址也会用端口号加以跟踪。当设备发起 TCP/IP 会话时，它会生成一个 TCP 或 UDP源端口号，或专门为 ICMP 分配的查询 ID，用来唯一地标识这个会话。当 NAT 路由器收到来自客户端的数据包时，将使用其源端口号来唯一确定特定的 NAT 转换。当 R2 处理各数据包时，它使用端口号 本例中为 1331 和 1555）来识别发起数据包的设备。源地…