欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

如何在思科路由器上实施网络地址转换 (NAT)

最编程 2024-03-13 15:21:53
...

在思科路由器上实施网络地址转换(NAT)

在这篇文章中,我们将学习如何在思科路由器上实现网络地址转换(NAT)。在本文结束时,读者将了解什么是NAT,NAT的不同类型,以及如何在思科路由器上配置不同类型的NAT。

作为先决条件,思科命令行界面(CLI)和访问控制列表(ACL)的基础知识将有助于读者更好地理解本文。

要求

本教程使用思科数据包追踪器。

互联网协议

互联网协议地址(IP地址)是分配给连接到使用互联网协议通信的计算机网络的每个设备的数字标签。

IP地址可分为:

  • 互联网协议版本4(IPv4)
  • 互联网协议第6版(IPv6)

IPv4将IP地址定义为一个32位数字,而IPv6将IP地址定义为一个128位数字。

公共和私人IP地址

所有IPv4地址可进一步分为公共(全球)和私人(本地)地址。

公共地址是在互联网上使用的可路由地址,这些地址允许用户访问位于世界任何地方的计算机网络上的资源。

而私人地址是不可路由的,没有流量可以通过互联网发送给它们或由它们发送。

这些地址在以下范围内。

  • 10.0.0.010.255.255.255.255
  • 172.16.0.0172.255.255.255
  • 192.168.0.0192.168.255.255

私有地址

互联网协议版本4(IPv4)的主要限制是其地址耗尽问题。

作为一个短期解决方案,各种协议,如私有寻址和网络地址转换(NAT)被引入。

这两个标准密切配合,允许组织为其内部网络分配私人地址,同时将其翻译成公共地址,并允许其连接到互联网。

在建立这样的网络时,一个组织的网络中的一些设备可能不需要连接到互联网。所以,管理员要使用RFC 1918文件中定义的私有IP地址。

该文档定义了一组分配给一个组织的内部网络的网络地址,以便设备可以在本地进行通信。如果这些设备需要连接到互联网,它们的私有地址必须使用网络地址转换(NAT)翻译成公共地址。

网络地址转换

对于配置有私有地址的设备来说,要想访问互联网或远程网络,该地址必须被翻译成公共的可路由地址。

这种转换发生在一个NAT-enabled router ,它通常在存根网络的边界上运行。

Network address translation

网络地址转换 - 客户端-服务器连接

在上图中,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的类型

网络地址转换可以划分为三种类型。

它们是。

  1. 静态网络翻译(Static NAT)
  2. 动态网络地址转换(动态NAT)
  3. 端口地址转换 (PAT)

静态NAT

静态NAT在私人地址和公共地址之间建立了一个一对一的映射。

静态NAT通常是由网络管理员配置的,并且这种配置保持不变。

Static NAT

静态网络地址转换

在上图中,PCAPCB 想到达PCC ,这是一个远程网络。

但由于两者都配置了私有地址,它们不能直接访问PCC

为了访问PCC ,一个支持NAT的路由器被配置为静态NAT,它使用一对一的关系将它们的私有地址映射为公共地址,从而使它们能够与PCC 通信。

因此,静态NAT对于需要专用地址的设备来说是很有用的,如网络服务器。但是,它需要有相同数量的公共地址供用户同时使用。

动态NAT

与静态NAT类似,动态NAT在私人和公共地址之间提供一对一的映射。但是,这种映射是动态进行的。

动态NAT建立一个公共地址池,并以先到先得(FCFS)的方式将其分配给私人地址,以确定哪些私人地址应该被翻译。

Dynamic NAT

动态网络地址转换

在上图中,一个组织被分配到四个不同的公共地址,但该组织可能有四个以上的内部设备需要访问互联网。

为了解决这个问题,网络管理员决定配置动态NAT,允许这些设备访问互联网。

如果所有的内部设备都被分配到了所有可用的全局地址,那么要求获得公共地址的设备就必须等待,直到有一个可用的地址。

端口地址转换(PAT)

动态NAT更常用于组织,以连接他们的设备到互联网。如果他们的网络很大,就需要一个巨大的注册公共地址集。因此,它完全违背了NAT的目标。

动态NAT在一定程度上减少了这个问题。然而,如果很大比例的内部主机需要访问互联网,那么,我们必须使用端口地址转换,也叫NAT过载。

要了解PAT是如何工作的,重要的是回顾一下主机如何使用传输控制协议(TCP)、用户数据报协议(UDP)和端口号来传输数据。

要了解更多关于TCP和UDP的信息,强烈建议在继续阅读之前,先翻阅篇文章。

通过这些协议,PAT可以通过确保设备在每个会话中使用不同的TCP和UDP端口号,将多个私有地址映射到一个或多个公共地址。

PAT

端口地址转换

NAT配置

在本文的前半部分,我们简单地了解了NAT和不同类型的NAT。

在第二部分,我们将介绍如何在思科路由器上实现静态NAT、动态NAT和PAT。

静态NAT

配置静态NAT的步骤

静态NAT可以通过以下两个步骤进行配置。

它们是。

  1. 使用ip nat inside source static [private-address] [public-address] 全局配置命令,在私有内部地址和公共全局地址之间创建一个映射。

  2. 映射完成后,参加NAT转换的接口被配置为与NAT有关的insideoutside

使用ip nat inside 接口模式命令,将局域网内相关的路由器接口分配为inside 接口。

同样地,与互联网相关的路由器接口使用ip nat inside 接口模式命令被分配为外部接口。

Static NAT topology

静态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 serials0/0/0/" 命令,并使用命令ip nat outside 将该接口确定为外部接口。
  • 输入 "interface gigabitethernetg0/0" 命令,并使用ip nat inside 命令将其识别为相对于NAT的内部接口。

Static NAT configuration on a router

静态NAT配置

动态NAT

配置动态NAT的步骤

动态NAT仍然需要配置内部和外部接口。

对于分配,它使用一个访问控制列表(ACL)来指定哪些私有地址要被转换,以及一个注册IP地址的NAT池。

  1. 使用access-list 1 permit address wildcard mask 命令创建一个ACL。
  2. 使用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

  1. 使用ip nat inside 接口命令启用inside 接口进行 NAT 转换。
  2. 使用ip nat outside interface命令,启用outside 接口进行NAT转换。
配置动态NAT

一个组织被分配了两个公共地址:200.100.100.1200.100.100.2 。它想让它的内部主机,在私有网络172.31.1.0255.255.255.0 ,使用动态NAT到达互联网。

Dynamic NAT topology

动态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 接口。

Dynamic NAT configuration on a Cisco router

思科路由器上的动态NAT配置

具有多个地址的PAT

如果一个组织要被互联网服务提供商(ISP)分配一个以上的公共地址,那么配置PAT看起来和动态NAT完全一样,只是在ip nat inside source list--- pool 命令中,step 3 ,最后加一个overload 的关键字。

配置具有多个公共地址的PAT的步骤

  1. 使用access-list 1 permit [address][ wildcard mask] ,创建一个ACL。
  2. 使用ip nat pool [name] [first-address] [last-address] [netmask] [subnet mask] 全局配置命令创建一个NAT池。这个池将包含用于转换的公共地址。
  3. ip nat inside source list [ACL] [number] pool [name] overload 完整的命令是ip nat inside source list 1 pool LAN overload
  4. 使用ip nat inside interface 命令启用inside 接口进行 NAT 转换。
  5. 使用ip nat outside 接口命令启用outside 接口进行NAT转换。

配置具有多个公共地址的PAT

一个组织被分配到两个公共地址:200.100.100.100.100.100.2 ,它希望允许其内部主机,在私有网络172.31.1.0 - 255.255.255.0 ,使用PAT到达互联网。

PAT topology

PAT拓扑结构

要为上述网络拓扑结构配置PAT,需要应用以下步骤。

  1. 创建一个王牌列表,该列表将指定哪些私有地址被允许使用翻译。access-list 1 permit 172.31.1.0 0.0.0.255
  2. ip nat pool LAN 200.100.100.1 200.100.100.1 [netmask] 255.255.255.0 创建一个包含用于翻译的公共地址的池。
  3. 使用ip inside source list 1 pool LAN overload 将访问列表和池绑定在一起。 这允许私人地址和名为LAN的NAT池中的公共地址的动态映射。这里使用的overload关键字是PAT和动态NAT之间唯一的配置差异。
  4. 输入interface serial 0/0/0/ ,使用ip nat outside 命令将该接口标识为outside 接口。
  5. 使用interface gigabitethernet g0/0 命令输入gigabitethernet g0/0,用ip nat inside 命令将其识别为相对于NAT的inside 接口。

PAT with multiple public address configuration on as Cisco router

具有多个公共地址配置的PAT

使用单一公共地址的PAT

用单一地址配置PAT的步骤

如果一个组织被ISP分配了一个单一的公共地址。那么,与有多个地址的PAT相比,可以用一点变化来配置PAT。

在这种情况下,不创建NAT池,而是用一个用于转换的外部接口来代替上面step 3 中提到的NAT池。

  1. 使用access-list 1 permit [address] [wildcard mask] 创建一个 ACL 。
  2. 使用ip nat inside source list [ACL] [number] interface [interface-type/number] overload 启用PAT。用于此的接口是一个外部接口,它被配置为ISP分配给该组织的单一公共地址。
  3. 使用ip nat inside interface 命令启用inside 接口进行 Nat 转换。
  4. 使用ip nat outside interface命令,启用outside 接口进行NAT转换。

用一个公共地址配置PAT

一个组织被分配了一个公共地址200.100.100.1 ,它想让它在私有网络172.31.1.0 - 255.255.255.0 的内部主机使用PAT到达互联网。

PAT topology

带有一个公共地址的PAT拓扑结构

为了配置上述拓扑结构的PAT,将采用以下步骤。

  1. 使用access-list 1 permit 172.31.1.0 0.0.0.255 命令创建一个王牌列表,该列表将指定哪些私有地址允许被翻译。
  2. 使用ip inside source list 1 interface s0/0/0 overload ,将访问列表和外部接口绑定在一起。
  3. 输入interface serial 0/0/0/ 命令,使用:ip nat outside 命令将其识别为一个相对于 NAT 的outside 接口。
  4. 输入interface gigabitethernet g0/0 命令,使用ip nat inside 命令将其识别为相对于 NAT 的inside 接口。

PAT with one public address configuration on a Cisco router

带有一个公共地址的PAT配置

上图显示了Cisco路由器上使用一个公共地址的PAT的配置。

结论

私有寻址、公共寻址和网络地址转换的引入,有助于减缓互联网协议版本4(IPv4)的耗尽。

但实施NAT也有意想不到的后果,那就是通过隐藏其内部IP地址,为内部网络提供了一层安全保障。

总结一下。

  • 读者了解了什么是网络地址转换。
  • 读者了解了不同类型的NAT以及如何在思科路由器上配置它们。