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地址转换(使用GNS3思科3600)

三、NAT实现方法的工作过程

NAT地址转换(使用GNS3思科3600)

四、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地址的)主机可以访问InternetNAT的主要作用,是解决IP地址数量紧缺。当大量的内部主机只能使用少量的合法的外部地址,就可以使用NAT把内部地址转化成外部地址。NAT还可以防止外部主机攻击内部主机(或服务器)。

八、实验

拓扑图如下:

                          NAT地址转换(使用GNS3思科3600)

  • R1配置

添加端口IP地址

NAT地址转换(使用GNS3思科3600)

配置路由

NAT地址转换(使用GNS3思科3600)

  • R2配置

NAT地址转换(使用GNS3思科3600)

  • 配置3个PC的IP地址

NAT地址转换(使用GNS3思科3600)

NAT地址转换(使用GNS3思科3600)

NAT地址转换(使用GNS3思科3600)

  • 配置两台Linux的IP地址,一个表示内网,一个表是外网,发现相互之间无法ping通
  • 仅主机模式

NAT地址转换(使用GNS3思科3600)

NAT地址转换(使用GNS3思科3600)

  • NAT模式

NAT地址转换(使用GNS3思科3600)

NAT地址转换(使用GNS3思科3600)

NAT地址转换(使用GNS3思科3600)

NAT地址转换(使用GNS3思科3600)

  • 静态路由配置

NAT地址转换(使用GNS3思科3600)

  • 静态映射设置

NAT地址转换(使用GNS3思科3600)

  • 验证Linux上的两台主机可以相互ping通

NAT地址转换(使用GNS3思科3600)

NAT地址转换(使用GNS3思科3600)

  • 使用Linux两个虚拟机分别ping通PC2

NAT地址转换(使用GNS3思科3600)

NAT地址转换(使用GNS3思科3600)

NAT地址转换(使用GNS3思科3600)

使用NAT模式的虚拟机ping 202.100.10.10 并访问网页

NAT地址转换(使用GNS3思科3600)

开启httpd服务(2个机子都打开)

NAT地址转换(使用GNS3思科3600)

编写页面(在仅主机模式的虚拟机上)

NAT地址转换(使用GNS3思科3600)

验证页面

NAT地址转换(使用GNS3思科3600)

删除静态路由配置

NAT地址转换(使用GNS3思科3600)

  • 动态路由配置

NAT地址转换(使用GNS3思科3600)

拒绝PC1 允许PC2、PC3

NAT地址转换(使用GNS3思科3600)

接口映射

NAT地址转换(使用GNS3思科3600)

访问前查看为空

NAT地址转换(使用GNS3思科3600)

两个虚拟机ping对方

NAT地址转换(使用GNS3思科3600)

访问后查看

NAT地址转换(使用GNS3思科3600)

删除动态路由配置

NAT地址转换(使用GNS3思科3600)

删除后再次查看为空

NAT地址转换(使用GNS3思科3600)

  • 多端口复用配置

拒绝PC1,允许PC2、3

NAT地址转换(使用GNS3思科3600)

外网接口

NAT地址转换(使用GNS3思科3600)

访问前

NAT地址转换(使用GNS3思科3600)

内网访问外网

NAT地址转换(使用GNS3思科3600)

访问后可以查看到端口号

NAT地址转换(使用GNS3思科3600)

如果访问页面无法显示,进行端口静态映射

NAT地址转换(使用GNS3思科3600)

再次使用内网访问外网成功

NAT地址转换(使用GNS3思科3600)

查看信息

NAT地址转换(使用GNS3思科3600)