NAT详解

NAT详解

1.概述

1.1 nat简介
NAT(Network Address Translation,网络地址转换)是1994年提出的。它是一个IETF(Internet Engineering Task Force, Internet工程任务组)标准,允许一个整体机构以一个公用IP(Internet Protocol)地址出现在Internet上。当在专用网内部的一些主机本来已经分配到了本地IP地址,但现在又想和因特网上的主机通信时,可使用NAT方法。顾名思义,它是一种把内部私有网络地址(IP地址)翻译成合法网络IP地址的技术。NAT不仅能解决了IP地址不足的问题,而且还能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机。

1.2提出背景
随着接入Internet的计算机数量的不断猛增,IP地址资源也就愈加显得捉襟见肘,合法的IP地址资源日益短缺;同时一个局域网内部有很多台主机,但不是每台主机都有合法的IP地址,为了使所有内部主机都可以连接因特网,需要使用NAT;NAT技术可以有效地隐藏内部局域网中的主机,具有一定的网络安全保护作用;也可以在局域网内部提供给外部FTP、WWW、Telnet服务,通常在路由器上实现。

2.工作原理

2.1名词解释
内部局部地址(IL:Inside Local):在内部网络中分配给主机的私有IP地址
IP地址分类 地址范围 保留的网络数
A类 10.0.0.0~10.255.255.255 保留了一个A类网络
B类 172.16.0.0~172.31.255.255 保留了32个B类网络
C类 192.168.0.0~192.168.255.255 保留了256个C类网络
内部全局地址(IG:Inside Global):一个合法(即能够在公网使用的)IP地址,由ISP提供,对外代表一个或多个内部局部IP地址
外部全局地址(OG:Outside Global):一系列合法的能够在公网使用IP地址
外部局部地址(OL:Outside Local):由主机拥有者在外部网上分配给主机的IP地址,该地址可以从全局路由地址或网络空间进行分配

2.2工作原理
借助于NAT,私有(保留)地址的"内部"网络通过路由器发送数据包时,私有地址被转换成合法的IP地址,一个局域网只需使用少量IP地址(甚至是1个)即可实现私有地址网络内所有计算机与Internet的通信需求。
当内部网络中的一台主机想传输数据到外部网络时,它先将数据包传输到NAT路由器上,路由器检查数据包的报头,获取该数据包的源IP信息,并从它的NAT映射表中找出与该IP匹配的转换条目,用所选用的内部全局地址(全球唯一的IP地址)来替换内部局部地址,并转发数据包。
当外部网络对内部主机进行应答时,数据包被送到NAT路由器上,路由器接收到目的地址为内部全局地址的数据包后,它将用内部全局地址通过NAT映射表查找出内部局部地址,然后将数据包的目的地址替换成内部局部地址,并将数据包转发到内部主机。、

3.实现方式

3.1静态NAT
通过手动设置,使 Internet 客户进行的通信能够映射到某个特定的私有网络地址和端口。如果想让连接在 Internet 上的计算机能够使用某个私有网络上的服务器(如网站服务器)以及应用程序(如游戏),那么静态映射是必需的。静态映射不会从 NAT 转换表中删除。
如果在 NAT 转换表中存在某个映射,那么 NAT 只是单向地从 Internet 向私有网络传送数据。这样,NAT 就为连接到私有网络部分的计算机提供了某种程度的保护。但是,如果考虑到 Internet 的安全性,NAT 就要配合全功能的防火墙一起使用。
对于以上网络拓扑图,当内网主机 10.1.1.1如果要与外网的主机201.0.0.11通信时,主机(IP:10.1.1.1)的数据包经过路由器时,路由器通过查找NAT table 将IP数据包的源IP地址(10.1.1.1)改成与之对应的全局IP地址(201.0.0.1),而目标IP地址201.0.0.11保持不变,这样,数据包就能到达201.0.0.11。而当主机HostB(IP:201.0.0.11) 响应的数据包到达与内网相连接的路由器时,路由器同样查找NAT table,将IP数据包的目的IP 地址改成10.1.1.1,这样内网主机就能接收到外网主机发过来的数据包。在静态NAT方式中,内部的IP地址与公有IP地址是一种一一对应的映射关系,所以,采用这种方式的前提是,机构能够申请到足够多的全局IP地址。

3.2动态NAT
动态地址NAT只是转换IP地址,它为每一个内部的IP地址分配一个临时的外部IP地址,主要应用于拨号,对于频繁的远程联接也可以采用动态NAT。当远程用户联接上之后,动态地址NAT就会分配给他一个IP地址,用户断开时,这个IP地址就会被释放而留待以后使用。
动态NAT方式适合于 当机构申请到的全局IP地址较少,而内部网络主机较多的情况。内网主机IP与全局IP地址是多对一的关系。当数据包进出内网时,具有NAT功能的设备对IP数据包的处理与静态NAT的一样,只是NAT table表中的记录是动态的,若内网主机在一定时间内没有和外部网络通信,有关它的IP地址映射关系将会被删除,并且会把该全局IP地址分配给新的IP数据包使用,形成新的NAT table映射记录。

3.3端口复用
网络地址端口转换NAPT(Network Address Port Translation)则是把内部地址映射到外部网络的一个IP地址的不同端口上。它可以将中小型的网络隐藏在一个合法的IP地址后面。NAPT与 动态地址NAT不同,它将内部连接映射到外部网络中的一个单独的IP地址上,同时在该地址上加上一个由NAT设备选定的端口号。
NAPT是使用最普遍的一种转换方式,它又包含两种转换方式:SNAT和DNAT。
(1)源NAT(Source NAT,SNAT):修改数据包的源地址。源NAT改变第一个数据包的来源地址,它永远会在数据包发送到网络之前完成,数据包伪装就是一具SNAT的例子。
(2)目的NAT(Destination NAT,DNAT):修改数据包的目的地址。Destination NAT刚好与SNAT相反,它是改变第一个数据包的目的地地址,如平衡负载、端口转发和透明代理就是属DNAT。

4.实验验证

4.1实验1(一对一转换)
实验拓扑:R1模拟企业内网,R2,R3的200网段模拟互联网,R3的环回模拟ISP。在R1上pingR3的环回。
NAT详解_第1张图片
配置:
R1:
R1(config)#interface Serial1/1
R1(config-if)#ip address 192.168.1.1 255.255.255.0
R1(config)#ip route 0.0.0.0 0.0.0.0 serial 1/1
R2:
R2(config)#int s1/0
R2(config-if)#ip address 192.168.1.2 255.255.255.0
R2(config)#int s1/1
R2(config-if)#ip address 200.1.1.1 255.255.255.0

R2(config)#ip route 0.0.0.0 0.0.0.0 serial 1/1
///静态NAT(一对一转换方式,并没有节约IP地址)
R2(config)#ip nat inside source static 192.168.1.1 200.1.1.10
///定义inside 和 outside 方向
R2(config)#int serial 1/0
R2(config-if)#ip nat inside
R2(config-if)#int se1/1
R2(config-if)#ip nat outside
///查看NAT映射:
在这里插入图片描述
///R1上Ping3.3.3.3,在 R2上动态查看地址映射
在这里插入图片描述
NAT详解_第2张图片
R3:
R3(config)#int s1/0
R3(config-if)#ip address 200.1.1.2 255.255.255.0
R3(config)#int lo0
R3(config-if)#ip address 3.3.3.3 255.255.255.0

4.2实验2(动态NAT)
实验拓扑:R1模拟企业内网,环回0模拟内网PC。R2,R3的200网段模拟互联网,R3的环回模拟ISP。在R1上pingR3的环回。
NAT详解_第3张图片
配置:
R1:
R1(config)#interface Serial1/1
R1(config-if)#ip address 192.168.1.1 255.255.255.0
R1(config)#ip route 0.0.0.0 0.0.0.0 serial 1/1
R1(config)#interface lo0
R1(config-if)#ip address 192.168.2.1 255.255.255.0
R2:
R2(config)#int s1/0
R2(config-if)#ip address 192.168.1.2 255.255.255.0
R2(config)#int s1/1
R2(config-if)#ip address 200.1.1.1 255.255.255.0

R2(config)#ip route 0.0.0.0 0.0.0.0 serial 1/1
R2(config)#ip route 192.168.2.0 255.255.255.0 serial 1/0
///删除静态NAT(一对一转换方式,并没有节约IP地址)
R2(config)#ip nat inside source static 192.168.1.1 200.1.1.10
///定义需要转换地址(使用ACL)
R2(config)#access-list 1 permit host 192.168.2.1
///定义转换后的地址池范围
R2(config)#ip nat pool CCIE 200.1.1.10 200.1.1.20 netmask 255.255.255.0
///关联
R2(config)#ip nat inside source list 1 pool CCIE overload
//////查看NAT映射
在这里插入图片描述
/// R1上Ping3.3.3.3,R2上动态查看地址映射
在这里插入图片描述
在这里插入图片描述
NAT详解_第4张图片
R3配置同上不变。

4.3实验3(PAT)
实验拓扑:实验2 的拓扑图。R1模拟企业内网,环回0模拟内网PC。R2,R3的200网段模拟互联网,R3的环回模拟ISP。在R1上pingR3的环回。
NAT详解_第5张图片
配置:
R1,R3配置不变。
R2:
////删除原有的动态NAT
在这里插入图片描述
///定义需要转换地址(使用ACL)
R2(config)#access-list 2 permit host 192.168.1.1
///关联
R2(config)#ip nat inside source list 2 interface serial 1/1 overload
//////查看NAT映射
在这里插入图片描述
/// R1上Ping3.3.3.3,R2上动态查看地址映射
在这里插入图片描述
在这里插入图片描述
NAT详解_第6张图片
///添加需要转换地址(使用ACL)
R2(config)#access-list 2 permit host 192.168.2.1
/////查看ACL
在这里插入图片描述
//////查看NAT映射
在这里插入图片描述
5.总结
NAT技术无可否认是在ipv4地址资源的短缺时候起到了缓解作用;在减少用户申请ISP服务的花费和提供比较完善的负载平衡功能等方面带来了不少好处。但是在ipv4地址在以后几年将会枯竭,NAT技术不能改变ip地址空间不足的本质。然而在安全机制上也潜在着威胁,在配置和管理上也是一个挑战。如果要从根本上解决ip地址资源的问题,ipv6才是最根本之路。在ipv4转换到ipv6的过程中,NAT技术确实是一个不错的选择,相对其他的方案优势也非常明显。
由于水平有限,不足和错误之处,恳请批评指正,谢谢!

你可能感兴趣的:(CCIE)