在思科路由器上实施网络地址转换(NAT)
在这篇文章中,我们将学习如何在思科路由器上实现网络地址转换(NAT)。在本文结束时,读者将了解什么是NAT,NAT的不同类型,以及如何在思科路由器上配置不同类型的NAT。
作为先决条件,思科命令行界面(CLI)和访问控制列表(ACL)的基础知识将有助于读者更好地理解本文。
要求
本教程使用思科数据包追踪器。
互联网协议
互联网协议地址(IP地址)是分配给连接到使用互联网协议通信的计算机网络的每个设备的数字标签。
IP地址可分为:
- 互联网协议版本4(IPv4)
- 互联网协议第6版(IPv6)
IPv4将IP地址定义为一个32位数字,而IPv6将IP地址定义为一个128位数字。
公共和私人IP地址
所有IPv4地址可进一步分为公共(全球)和私人(本地)地址。
公共地址是在互联网上使用的可路由地址,这些地址允许用户访问位于世界任何地方的计算机网络上的资源。
而私人地址是不可路由的,没有流量可以通过互联网发送给它们或由它们发送。
这些地址在以下范围内。
10.0.0.0
至10.255.255.255.255
172.16.0.0
到172.255.255.255
192.168.0.0
到192.168.255.255
私有地址
互联网协议版本4(IPv4)的主要限制是其地址耗尽问题。
作为一个短期解决方案,各种协议,如私有寻址和网络地址转换(NAT)被引入。
这两个标准密切配合,允许组织为其内部网络分配私人地址,同时将其翻译成公共地址,并允许其连接到互联网。
在建立这样的网络时,一个组织的网络中的一些设备可能不需要连接到互联网。所以,管理员要使用RFC 1918文件中定义的私有IP地址。
该文档定义了一组分配给一个组织的内部网络的网络地址,以便设备可以在本地进行通信。如果这些设备需要连接到互联网,它们的私有地址必须使用网络地址转换(NAT)翻译成公共地址。
网络地址转换
对于配置有私有地址的设备来说,要想访问互联网或远程网络,该地址必须被翻译成公共的可路由地址。
这种转换发生在一个NAT-enabled router
,它通常在存根网络的边界上运行。
网络地址转换 - 客户端-服务器连接
在上图中,PCA
,其IP地址为172.31.1.2
,想要访问网络服务器,但由于PCA
,其地址是不可路由的,所以它不能直接访问网络服务器。
相反,NAT-enabled router
将PC的私有地址172.31.1.2
转化为公共地址200.100.100.2
,该地址在互联网上是可路由的。
从服务器的角度来看,它把这个地址看作是源地址。假设服务器想向PC发送数据,它将使用相同的源地址作为其目标地址。
当数据到达NAT-enabled router
,公共地址就会被翻译回它原来的私有地址,数据就会被转发回PC。
NAT的类型
网络地址转换可以划分为三种类型。
它们是。
- 静态网络翻译(Static NAT)
- 动态网络地址转换(动态NAT)
- 端口地址转换 (PAT)
静态NAT
静态NAT在私人地址和公共地址之间建立了一个一对一的映射。
静态NAT通常是由网络管理员配置的,并且这种配置保持不变。
静态网络地址转换
在上图中,PCA
和PCB
想到达PCC
,这是一个远程网络。
但由于两者都配置了私有地址,它们不能直接访问PCC
。
为了访问PCC
,一个支持NAT的路由器被配置为静态NAT,它使用一对一的关系将它们的私有地址映射为公共地址,从而使它们能够与PCC
通信。
因此,静态NAT对于需要专用地址的设备来说是很有用的,如网络服务器。但是,它需要有相同数量的公共地址供用户同时使用。
动态NAT
与静态NAT类似,动态NAT在私人和公共地址之间提供一对一的映射。但是,这种映射是动态进行的。
动态NAT建立一个公共地址池,并以先到先得(FCFS)的方式将其分配给私人地址,以确定哪些私人地址应该被翻译。
动态网络地址转换
在上图中,一个组织被分配到四个不同的公共地址,但该组织可能有四个以上的内部设备需要访问互联网。
为了解决这个问题,网络管理员决定配置动态NAT,允许这些设备访问互联网。
如果所有的内部设备都被分配到了所有可用的全局地址,那么要求获得公共地址的设备就必须等待,直到有一个可用的地址。
端口地址转换(PAT)
动态NAT更常用于组织,以连接他们的设备到互联网。如果他们的网络很大,就需要一个巨大的注册公共地址集。因此,它完全违背了NAT的目标。
动态NAT在一定程度上减少了这个问题。然而,如果很大比例的内部主机需要访问互联网,那么,我们必须使用端口地址转换,也叫NAT过载。
要了解PAT是如何工作的,重要的是回顾一下主机如何使用传输控制协议(TCP)、用户数据报协议(UDP)和端口号来传输数据。
要了解更多关于TCP和UDP的信息,强烈建议在继续阅读之前,先翻阅这篇文章。
通过这些协议,PAT可以通过确保设备在每个会话中使用不同的TCP和UDP端口号,将多个私有地址映射到一个或多个公共地址。
端口地址转换
NAT配置
在本文的前半部分,我们简单地了解了NAT和不同类型的NAT。
在第二部分,我们将介绍如何在思科路由器上实现静态NAT、动态NAT和PAT。
静态NAT
配置静态NAT的步骤
静态NAT可以通过以下两个步骤进行配置。
它们是。
-
使用
ip nat inside source static [private-address] [public-address]
全局配置命令,在私有内部地址和公共全局地址之间创建一个映射。 -
映射完成后,参加NAT转换的接口被配置为与NAT有关的
inside
或outside
。
使用ip nat inside
接口模式命令,将局域网内相关的路由器接口分配为inside
接口。
同样地,与互联网相关的路由器接口使用ip nat inside
接口模式命令被分配为外部接口。
静态NAT拓扑结构
在上图中,千兆0/0(g0/0)
接口是inside
接口,因为它连接到了局域网。相比之下,S0/0/0
接口被配置为outside
接口,因为它连接到互联网。
配置静态NAT
要在私有地址172.31.1.2
和公共地址200.100.100.2
之间配置一个静态NAT。
- 使用命令
ip nat inside source static 172.31.1.2 200.100.100.2
将服务器的私有地址172.31.1.2
映射到公共可路由地址200.100.100.2
。 - 输入 "interface serial
s0/0/0/
" 命令,并使用命令ip nat outside
将该接口确定为外部接口。 - 输入 "interface gigabitethernet
g0/0
" 命令,并使用ip nat inside
命令将其识别为相对于NAT的内部接口。
静态NAT配置
动态NAT
配置动态NAT的步骤
动态NAT仍然需要配置内部和外部接口。
对于分配,它使用一个访问控制列表(ACL)来指定哪些私有地址要被转换,以及一个注册IP地址的NAT池。
- 使用
access-list 1 permit address wildcard mask
命令创建一个ACL。 - 使用
ip nat pool [name] [first-address] [last-address] [netmask] [subnet mask]
全局配置命令创建一个NAT池。
这个池将包含用于转换的公共地址。因为,ISP分配给组织的公共地址是相邻的。
first address
是给定地址范围中最小的。并且,last address
是该范围的最高地址。
netmask确定了这些地址所属的网络,使用ip nat inside source list [access-list] [number] pool [name]
命令来绑定ACL和创建的NAT Pool。
在这种情况下,ACL编号为1
,NAT POOL为LAN
。
注意:可以创建和使用不同的ACL号码和池名,但为了简单起见,本教程将使用ACL1
和池名LAN
。
- 使用
ip nat inside
接口命令启用inside
接口进行 NAT 转换。 - 使用
ip nat outside
interface命令,启用outside
接口进行NAT转换。
配置动态NAT
一个组织被分配了两个公共地址:200.100.100.1
和200.100.100.2
。它想让它的内部主机,在私有网络172.31.1.0
和255.255.255.0
,使用动态NAT到达互联网。
动态NAT拓扑结构
为了配置上述网络拓扑的动态NAT。
- 创建一个访问列表,指定允许使用
access-list 1 permit 172.31.1.0 0.0.0.255
翻译的私有地址。 - 创建一个包含公共地址的池,使用
ip nat pool LAN 200.100.100.1 200.100.100.1 netmask 255.255.255.0
进行翻译。 - 使用
ip inside source list 1 pool LAN
将访问列表和池绑定在一起。这允许动态翻译私人地址和NAT池中的公共地址,名为LAN
。 - 输入
interface serial 0/0/0/
命令并使用ip nat outside
命令将其识别为外部接口。 - 输入
interface gigabitethernet g0/0
命令,并使用ip nat inside
命令将其标识为inside
接口。
思科路由器上的动态NAT配置
具有多个地址的PAT
如果一个组织要被互联网服务提供商(ISP)分配一个以上的公共地址,那么配置PAT看起来和动态NAT完全一样,只是在ip nat inside source list--- pool
命令中,step 3
,最后加一个overload
的关键字。
配置具有多个公共地址的PAT的步骤
- 使用
access-list 1 permit [address][ wildcard mask]
,创建一个ACL。 - 使用
ip nat pool [name] [first-address] [last-address] [netmask] [subnet mask]
全局配置命令创建一个NAT池。这个池将包含用于转换的公共地址。 ip nat inside source list [ACL] [number] pool [name] overload
完整的命令是ip nat inside source list 1 pool LAN overload
。- 使用
ip nat inside
interface 命令启用inside
接口进行 NAT 转换。 - 使用
ip nat outside
接口命令启用outside
接口进行NAT转换。
配置具有多个公共地址的PAT
一个组织被分配到两个公共地址:200.100.100.1
和00.100.100.2
,它希望允许其内部主机,在私有网络172.31.1.0 - 255.255.255.0
,使用PAT到达互联网。
PAT拓扑结构
要为上述网络拓扑结构配置PAT,需要应用以下步骤。
- 创建一个王牌列表,该列表将指定哪些私有地址被允许使用翻译。
access-list 1 permit 172.31.1.0 0.0.0.255
ip nat pool LAN 200.100.100.1 200.100.100.1 [netmask] 255.255.255.0
创建一个包含用于翻译的公共地址的池。- 使用
ip inside source list 1 pool LAN overload
将访问列表和池绑定在一起。 这允许私人地址和名为LAN的NAT池中的公共地址的动态映射。这里使用的overload关键字是PAT和动态NAT之间唯一的配置差异。 - 输入
interface serial 0/0/0/
,使用ip nat outside
命令将该接口标识为outside
接口。 - 使用
interface gigabitethernet g0/0
命令输入gigabitethernet g0/0,用ip nat inside
命令将其识别为相对于NAT的inside
接口。
具有多个公共地址配置的PAT
使用单一公共地址的PAT
用单一地址配置PAT的步骤
如果一个组织被ISP分配了一个单一的公共地址。那么,与有多个地址的PAT相比,可以用一点变化来配置PAT。
在这种情况下,不创建NAT池,而是用一个用于转换的外部接口来代替上面step 3
中提到的NAT池。
- 使用
access-list 1 permit [address] [wildcard mask]
创建一个 ACL 。 - 使用
ip nat inside source list [ACL] [number] interface [interface-type/number] overload
启用PAT。用于此的接口是一个外部接口,它被配置为ISP分配给该组织的单一公共地址。 - 使用
ip nat inside
interface 命令启用inside
接口进行 Nat 转换。 - 使用
ip nat outside
interface命令,启用outside
接口进行NAT转换。
用一个公共地址配置PAT
一个组织被分配了一个公共地址200.100.100.1
,它想让它在私有网络172.31.1.0 - 255.255.255.0
的内部主机使用PAT到达互联网。
带有一个公共地址的PAT拓扑结构
为了配置上述拓扑结构的PAT,将采用以下步骤。
- 使用
access-list 1 permit 172.31.1.0 0.0.0.255
命令创建一个王牌列表,该列表将指定哪些私有地址允许被翻译。 - 使用
ip inside source list 1 interface s0/0/0 overload
,将访问列表和外部接口绑定在一起。 - 输入
interface serial 0/0/0/
命令,使用:ip nat outside
命令将其识别为一个相对于 NAT 的outside
接口。 - 输入
interface gigabitethernet g0/0
命令,使用ip nat inside
命令将其识别为相对于 NAT 的inside
接口。
带有一个公共地址的PAT配置
上图显示了Cisco路由器上使用一个公共地址的PAT的配置。
结论
私有寻址、公共寻址和网络地址转换的引入,有助于减缓互联网协议版本4(IPv4)的耗尽。
但实施NAT也有意想不到的后果,那就是通过隐藏其内部IP地址,为内部网络提供了一层安全保障。
总结一下。
- 读者了解了什么是网络地址转换。
- 读者了解了不同类型的NAT以及如何在思科路由器上配置它们。