NAT地址转换(使用GNS3思科3600)
一、NAT(Network Address Translation)概述
- 地址转换出现的背景
NAT就是在局域网内部网络中使用内部地址,而当内部节点要与外部网络进行通讯时,就在网关(可以理解为出口,打个比方就像院子的门一样)处,将内部地址替换成公用地址,从而在外部公网(internet)上正常使用,NAT可以使多台计算机共享Internet连接,这一功能很好地解决了公共 IP地址紧缺的问题。通过这种方法,可以只申请一个合法IP地址,就把整个局域网中的计算机接入Internet中。这时,NAT屏蔽了内部网络,所有内部网计算机对于公共网络来说是不可见的,而内部网计算机用户通常不会意识到NAT的存在。
- NAT的工作原理
借助于NAT,私有(保留)地址的"内部"网络通过路由器发送数据包时,私有地址被转换成合法的IP地址,一个局域网只需使用少量IP地址(甚至是1个)即可实现私有地址网络内所有计算机与Internet的通信需求。
- NAT实现方式:
静态转换(Static Translation)某个私有IP地址只转换为某个公有IP地址
动态转换(Dynamic Translation)使用多个合法外部地址集
端口多路复用(Port Address Translation,PAT)改变外出数据包的源端口
二、NAT的术语与转换表
三、NAT实现方法的工作过程
四、NAT的特性
NAT的优点:
节省公有合法IP地址
处理地址重叠
增强灵活性
安全性
NAT的缺点:
延迟增大
配置和维护的复杂性
不支持某些应用,可以通过静态NAT映射来避免
五、NAT的配置
配置步骤:
接口IP地址配置
使用访问控制列表定义哪些内部主机能做NAT
决定采用什么公有地址,静态或地址池
Router(config)#ip nat pool pool-name start-ip end-ip {netmask netmask | prefix-length prefix-length [type rotary]}
指定地址转换映射
Router(config)#ip nat inside source static local-ip global-ip [extendable]
Router(config)# ip nat inside source list access-list-number pool pool-name [overload]
在内部和外部端口上启用NAT
六、常见问题
- ACL阻止转换后的流量
- 进行地址转换的ACL不全
- overload参数漏配
- 不对称路由问题
- 动态地址池IP地址范围配置错误
- 动态地址池与静态转换地址重叠
- inside和outside接口配置错误
NAT故障的排除:
检查物理设备和NAT配置
通过show命令查看NAT的各种信息
通过debug ip nat命令跟踪NAT操作
七、补充内容
静态转换是指将内部网络的私有IP地址转换为公有IP地址,IP地址对是一对一的,是一成不变的,某个私有IP地址只转换为某个公有IP地址。借助于静态转换,可以实现外部网络对内部网络中某些特定设备(如服务器)的访问。
动态转换是指将内部网络的私有IP地址转换为公用IP地址时,IP地址是不确定的,是随机的,所有被授权访问上Internet的私有IP地址可随机转换为任何指定的合法IP地址。也就是说,只要指定哪些内部地址可以进行转换,以及用哪些合法地址作为外部地址时,就可以进行动态转换。动态转换可以使用多个合法外部地址集。当ISP提供的合法IP地址略少于网络内部的计算机数量时。可以采用动态转换的方式。
端口多路复用(Port address Translation,PAT)是指改变外出数据包的源端口并进行端口转换,即端口地址转换(PAT,Port Address Translation).采用端口多路复用方式。内部网络的所有主机均可共享一个合法外部IP地址实现对Internet的访问,从而可以最大限度地节约IP地址资源。同时,又可隐藏网络内部的所有主机,有效避免来自internet的攻击。因此,目前网络中应用最多的就是端口多路复用方式。
NAT的作用是把内网的私有地址,转化成外网的公有地址。使得内部网络上的(被设置为私有IP地址的)主机可以访问Internet。NAT的主要作用,是解决IP地址数量紧缺。当大量的内部主机只能使用少量的合法的外部地址,就可以使用NAT把内部地址转化成外部地址。NAT还可以防止外部主机攻击内部主机(或服务器)。
八、实验
拓扑图如下:
- R1配置
添加端口IP地址
配置路由
- R2配置
- 配置3个PC的IP地址
- 配置两台Linux的IP地址,一个表示内网,一个表是外网,发现相互之间无法ping通
- 仅主机模式
- NAT模式
- 静态路由配置
- 静态映射设置
- 验证Linux上的两台主机可以相互ping通
- 使用Linux两个虚拟机分别ping通PC2
使用NAT模式的虚拟机ping 202.100.10.10 并访问网页
开启httpd服务(2个机子都打开)
编写页面(在仅主机模式的虚拟机上)
验证页面
删除静态路由配置
- 动态路由配置
拒绝PC1 允许PC2、PC3
接口映射
访问前查看为空
两个虚拟机ping对方
访问后查看
删除动态路由配置
删除后再次查看为空
- 多端口复用配置
拒绝PC1,允许PC2、3
外网接口
访问前
内网访问外网
访问后可以查看到端口号
如果访问页面无法显示,进行端口静态映射
再次使用内网访问外网成功
查看信息