1、正向 NAT 和反向 NAT 建立映射关系当你与外部网络进行通信时,你可以转换自己的私有 IP 地址到全局唯一的 IP 地址。可以通过静态或动态 NAT 来实现以上目的。静态NAT 在内部本地址和内部全局地址之间建立一对一的映射关系,而动态 NAT 建立一个内部本地址到一个全局地址池的映射关系。一、静态 NAT 工作原理静态 NAT 是最基本的 NAT 方式,也是最常用的 NAT 方式之一。本节要利用网络拓扑结构和具体的示例介绍 Cisco 设备上的静态NAT 基本配置步骤。示例中的基本网络拓扑结构如图 1 所示。NAT路由器的两个接口(s0 和 s1)分别连接了内、外两个不同的网络(10.1
2、0.10.0/24 和 171.16.68.1/24) 。现要使内部网络中的 10.10.01.1主机和外部网络中的 171.16.68.5 主机间进行数据包传输。图 1 静态 NAT 基本配置示例网络结构在上一篇说到了,NAT 的应用可以是单方向(包括正向或反向) ,也可以是双方向的地址转换。我们把内部网络中的地址转换成外部网络中的地址,称之为正向转换,使用的 NAT 命令为“ip nat inside source static local-ip global-ip”,把本地网络的本地址转换成外部网络的全局地址。把外部网络中的地址转换成内部网络中的地址称之为反向转换,使用的 NAT 命令为
3、“ip nat outside source staticglobal-ip local-ip”,把外部网络的全地址转换成本地网络的本地地址。对比可以看出,两个命令中的本地 IP 地址(local-ip)和全局 IP 地址(global-ip)的位置是相互调换的。而把需要同时具有两方面的转换,称之为双向转换。正向转换时只需要定义内部本地址和内部全局地址;反方向的转换时则需要定义外部本地址和外部全局地址;双向转换时则需要同时定义内部本地址、内部全局地址、外部本地址和外部全局地址。下面分别予以介绍。1. 正向 NAT 地址转换配置仅需要正向 NAT 转换时,只需要定义内部本地地址和内部全局地址。下
4、面是一个配置示例(网络结构参见图 1) ,要实现以下目的:当NAT 路由器的内部网络 s0 接口上接收到一个源地址为 10.10.10.1 内部本地地址的数据包时,源地址被转换成 171.16.68.5 内部全局地址。同样,当在 NAT 路由器的外部网络接口 s1 上接收源地址为172.16.68.5 内部全局地址的数据包时,目的地址将被转换成10.10.10.1 这个内部本地地址。(1)使用 ip nat inside source static 全局配置命令创建从内网到外网的静态 NAT IP 地址转换。Router(config )#ip nat inside source static
5、10.10.10.1 171.16.68.5 # 在内部网络本地地址 10.10.10.1 与内部网络全局地址 171.16.68.5 之间建立静态 NAT 转换关系,使内部网络主机知道要以 171.16.68.5 这个地址到达外部网络主机(2)使用以下两条语句配置路由器的 NAT 内部接口 s0。Router(config )#interface s 0 # 进入 s0 串口配置模式Router(config-if)#ip nat inside # 把 s0 串口指定为内部网络接口(3)使用以下两条语句配置路由器的 NAT 外部接口 s1。Router(config )#interface
6、s 1 # 进入 s1 串口配置模式Router(config-if)#ip nat outside # 把 s1 串口指定为外部网络接口(4)使用 show ip nat translations 特权模式命令验证上述进行的路由器 NAT 配置。内部网络的本地地址为 10.10.10.1,内部网络的全局地址为 171.16.68.5。Router#show ip nat translations# 在特权模式下显示当前路由器 NAT配置Pro Inside global Inside local Outside local Outside global- 171.16.68.5 10.10.
7、10.1 - -此时如果对外网络目的主机进行 ping 操作,此时就会有有数据包从内部网络转发到外部网络后,再在路由器特权模式下执行“show ip nat translations”命令,显示的 NAT 信息如下。多了一条 icmp 协议类型数据包显示,但因为此时没有配置外部网络的本地和全局地址,所以显示的外部本地和全局地址都是一样的,都是 ping 操作目的主机地址 171.16.68.1。Router#show ip nat translationsPro Inside global Inside local Outside local Outside globalicmp 171.16
8、.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 - -通过以上配置后,从内部网络发往外部网络的数据包的源地址(SA)将在经过路由器后进行转换(由内部本地地址 10.10.10.1 转换成内部全局地址 171.16.68.5) ,但目标地址(DA)不变,但从外部网络发往内部网络的数据包的源地址没有改变,只是经过路由器后的数据目的地址发生了改变(由内部网络的全局地址 172.16.68.5转换成内部网络的本地地址 10.10.10.1) ,因为此时还没有为 NAT 路由器配置外部网络的本地地址
9、和全局地址转换。此时,数据包在内、外部网络中的源地址、目的地址的转换方式如图 2 所示。图 2 配置了正向 NAT 地址转换后的数据包地址转换示例2. 反向 NAT 转换配置反向 NAT 转换与正向 NAT 转换是相反的,它需要定义外部本地地址和外部全局地址。同样以一个示例进行介绍(网络结构仍参照图1) 。本示例要实现的目的是:当 NAT 路由器外部网络接口 s1 接收到源地址为 171.16.68.1 外部本地地址的数据包后,数据包的源地址将转变为 10.10.10.5 外部全局地址。当 NAT 路由器在内部网络接口s0 接收到源地址为 10.10.10.5 外部全局地址的数据包时,数据包的
10、目的地址将被转变为 171.16.68.1 外部本地地址。完整的的配置如下:(1)使用 ip nat outside source static 全局配置命令创建从外网到内网的静态 NAT IP 地址转换。Router(config )#ip nat outside source static171.16.68.1 10.10.10.5 # 在外部网络本地地址 171.16.68.1 与外部网络全局地址 10.10.10.5 之间建立静态 NAT 转换关系,使外部网络主机知道要以 10.10.10.5 这个地址到达内部网络主机(2)使用以下两条语句配置路由器的 NAT 内部接口 s0Route
11、r(config )#interface s 0Router(config-if)#ip nat inside(3)使用以下两条语句配置路由器的 NAT 内部接口 s1Router(config )#interface s 1Router(config-if)#ip nat outside(4)使用 show ip nat translations 特权模式命令验证上述进行的路由器 NAT 配置。外部网络的本地地址为 10.10.10.5,外部网络的全局地址为 171.16.68.1。Router#show ip nat translationsPro Inside global Inside
12、 local Outside local Outside global- - - 10.10.10.5 171.16.68.1同样,如果此时执行一个从外部网络主机(171.16.68.1)到内部网络主机(10.10.10.1)的 ping 操作,然后再在路由器特权模式下执行“show ip nat translations”命令,则显示如下结果。因为此时仅配置了外部网络本地地址和全局地址,所以结果中显示的内部网络本地地址和全局地址都是一样的,都是 ping 操作目的主机地址10.10.10.1。Router#show ip nat translationsPro Inside global I
13、nside local Outside local Outside global- - - 10.10.10.5 171.16.68.1icmp 10.10.10.1:37 10.10.10.1:37 10.10.10.5:37 171.16.68.1:37与前面仅配置内部网络本地地址和全局地址相反,此处从外部网络发往内部网络的数据包的源地址(SA)将在经过路由器后进行转换(由外部本地地址 171.16.68.1 转换成内部全局地址 10.10.10.5) ,但目标地址(DA)不变;但从内部网络发往外部网络的数据包的源地址没有改变,只是经过路由器后的数据目的地址发生了改变(由外部网络的全局地址
14、 10.10.10.5 转换成外部网络的本地地址171.16.68.1) ,因为此时还没有为 NAT 路由器配置内部网络的本地地址和全局地址转换。如图所示。此时,数据包在内、外部网络中的源地址、目的地址的转换方式如图 3 所示。图 3 配置了反向 NAT 地址转换后的数据包地址转换示例3. 双向 NAT 转换下面介绍同时进行正、反向 NAT 转换的配置方法,它需要同时定义本地网络本地地址、本地网络全局地址、外部网络本地地址和外部网络全局地址。在下面的示例中,通过配置可实现:当 NAT 路由器内部网络接口接收到源地址为 10.10.10.1(内部网络本地地址)的数据包时,这个源地址将转换成 17
15、1.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。本示例的完整配置如下:Router(config )#ip nat inside source static10.10.10.1 171.1
16、6.68.5 # 在内部网络本地地址 10.10.10.1 与内部网络全局地址 171.16.68.5 之间建立静态 NAT 转换关系,使内部网络主机知道要以 171.16.68.5 这个地址到达外部网络主机Router(config )#ip nat outside source static171.16.68.1 10.10.10.5 # 在外部网络本地地址 171.16.68.1 与外部网络全局地址 10.10.10.5 之间建立静态 NAT 转换关系,使外部网络主机知道要以 10.10.10.5 这个地址到达内部网络主机Router(config )#interfaces 0Route
17、r(config-if)#ip nat insideRouter(config-if)#endRouter(config )#interfaces 1Router(config-if)#ip nat outsideRouter(config-if)#endRouter(config )#endRouter#show ip nat translationsPro Inside global Inside local Outside local Outside global- - - 10.10.10.5 171.16.68.1171.16.68.5 10.10.10.1 - -同样,如果此时分别
18、执行一个从内部主机到外部主机,以及从外部主机到内部主机的 ping 操作,然后再在路由器特权模式下执行“show ip nat translations”命令,则显示如下结果。因为此时同时配置了内、外部网络本地地址和全局地址,所以结果中显示了两条 NAT配置项,分别显示了与外部网络和内部网络中的本地地址和全局地址转换对应的 ping 操作 icmp 消息:与外部网络本地地址和全局地址对应的 ping 操作 ICMP 消息中显示内部网络中的本地地址和全局地址是一样的,而与内部网络本地地睛和全局地址对应的 ping 操作icmp 消息中显示外部网络中的本地地址和全局地址是一样的,都是对应的 pin
19、g 操作目的主机地址。Router#show ip nat translationsPro Inside global Inside local Outside local Outside global- - - 10.10.10.5 171.16.68.1icmp 10.10.10.1:4 10.10.10.1:4 10.10.10.5:4 171.16.68.1:4icmp 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 - -经过以上配置后,数据包发送时不仅源地址会发生变
20、化,目标地址也会同时发生变化,如图 4 所示。图 4 同时配置了内、外部网络本地地址和全局地址后的地址转换示例总体来说,数据中的源地址是由发送数据包的源主机地址(也就是源主机的本地地址)在经过 NAT 路由器后变成为目的主机所在网络的本地全局地址;数据包中的目标地址则先是封装为目的主机所在网络的全局地址,在经过 NAT 路由器后变成为目的主机地址(也就是目的主机的本地地址) 。而且不管数据包是从内部网络的主机发往外部网络的主机,还是从外部网络的主机发往内部网络的主机上。具体来讲,如果数据包是从内部网络发往外部网络,则源地址和目的地地址的转换方式如图 5 所示;而如果数据包是从外部网络发往内部网
21、络,则源地址和目的地址的转换方式如图 6 所示。从以上图示可以看出,两种数据包发送方向中的源地址、目标地址转换恰好是相反的,图 5 中的源地址转换过程恰好是图 6 中的目的地址转换过程。同理,图 5 中的源地址转换过程恰好是图 6 中的目的地址转换过程。但无论数据包是发往哪个方面,源地址的转换过程都由本地地址(Local Address)转换成全局地址(Global Address) ,而目的地址转换则也是相反的,即由全局地址转换成本地地址。从目的地址的转换过程还可以看出,数据包在 NAT 服务下的发送数据包的真正主机地址被所配置的本地网络全局地址屏蔽了,保护了本地网络;数据包的传送也不是一直以同一个目的地址,一步到位转发的,而是先把从发送主机中把数据包交给本地网络的全局地址,然后再从全局地址转发到真正的地址,也就是经过了两个步骤。图 5 数据包从内部网络发到外部网络时的地址转换方式 图 6 数据包从外部网络发到内部网络时的地址转换方式
Copyright © 2018-2021 Wenke99.com All rights reserved
工信部备案号:浙ICP备20026746号-2
公安局备案号:浙公网安备33038302330469号
本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。