提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
前言
在互联网的时代,我们是如何访问互联网的呢?首先会想到通过连接无线网络来访问互联网,
你和邻居都可以连接三大运营商的无线网络,因此三大运营商的网络属于公有网络,而你却无法连接到邻居的无线网络,这种网络一般属于私有网络,私有网络又是如何访问公有网络,让我们能够访问互联网的呢?NAT技术应运而生。
一.NAT概述
NAT是网络地址转换(Network Address Translation)的缩写,是一种在网络中实现地址转换的技术。它主要用于将内部网络中的私有IP地址转换为外部网络中的公共IP地址,从而实现内网与外网之间的通信。在NAT技术中,路由器或防火墙充当着地址转换设备的角色,将内部网络中的私有IP地址转换成公共IP地址,使得内网的计算机可以与外网进行通信。此外,NAT还可以为单个公共IP地址分配多个私有IP地址,从而实现多个内网计算机共享同一个公共IP地址的功能。
私有IP和公有IP概述:
私有IP:
私有IP地址是用于内部网络中的IP地址,用于在局域网中传输数据。它们不能在公共互联网上访问或路由。私有IP地址被分配给本地设备,例如家庭路由器或企业内部网络。
私有地址有三种:
①10.0.0.0~10.255.255.255/8
②172.16.0.0~172.31.255.255/12
③192.168.0.0~192.168.255.255/16
公有IP:
公共IP地址是在公共互联网上用于识别设备的唯一标识符。它们是全球唯一的IP地址,可用于在互联网上与其他设备通信。公共IP地址由互联网服务提供商(ISP)分配给用户设备,例如家庭路由器或企业服务器。
二.NAT技术原理:
-
NAT工作在路由器上,当数据包从内部网络发送到外部网络时,NAT将源IP地址从私有IP地址(如10.0.0.1)转换为公共IP地址(如203.0.113.1),以便将数据包传输到外部网络。
-
当外部网络发送数据包到内部网络时,NAT将目标IP地址从公共IP地址转换为私有IP地址,以便将数据包传输到内部网络的特定主机。
-
NAT通常会维护一个地址转换列表,将内部网络的私有IP地址映射到外部网络的公共IP地址,并在必要时更新这个列表。
-
NAT还可以实现端口转换,将内部网络的不同端口映射到外部网络的不同端口,以帮助外部网络访问内部网络的特定服务。
三.NAT的实现方式:
NAT的实现方式有三种,即静态NAT、动态NAT和NAPT。
静态NAT:
静态NAT(网络地址翻译)是一种网络地址转换技术,它将一个公共IP地址映射到一个特定的私有IP地址,以允许私有网络上的计算机访问公共网络(如互联网)。静态NAT使用固定的一对一映射,将一个私有IP地址映射到一个公共IP地址,这个映射是在网络设备(如路由器或防火墙)上配置的。因为映射是静态的,所以它不能自动适应网络环境的变化。
静态NAT工作流程:
当PC1的数据包需要访问环回接口1.1.1.1时,数据包会在PC1上进行封装,封装如下图:
三层封装: | |
目标IP | 1.1.1.1 24 |
源IP | 192.168.1.1 24 |
二层封装: | |
目标MAC | R1 0/0/0接口 MAC |
源MAC | PC1 MAC |
当数据包被转发到R1之后,R1解二层封装发现是自己的MAC地址后,会重新封装数据包,
将目标MAC改为R2 0/0/0 接口的MAC地址,源MAC改为R1接口 0/0/1 接口的,AC地址,之后
通过缺省将数据包转发给R2。.
当数据包来到R2之后,R2首先查看目标MAC是否是自己的MAC地址,确认之后,由于配置了NAT,R2会优先查看三层封装数据,如果发现目标IP是公网IP,会去查看源IP在静态NAT映射表表中是否有映射关系,如果有,会将源IP192.168.1.1改为12.0.0.3,然后进行二层封装,再通过缺省路由转发给ISP。
为什么不改为R2 0/0/1接口 IP?
如果将端口映射表中的映射关系写为12.0.0.1,公网里只要访问R2接口0/0/1的数据包来到R2之后
源IP都会从12.0.0.1转化为192.168.1.1,这样会导致公网的任何一个数据包都无法直接访问R2,因此需要将静态映射表中的公网IP改为12.0.0.3(必须属于公网IP,必须是花钱从运营商买来的)。
三层封装: | |
目标IP | 1.1.1.1/24 |
源IP | 12.0.0.3/24 |
二层封装: | |
目标MAC | ISP 0/0/0 接口 IP |
源MAC | R2 0/0/1接口 MAC |
配置命令:
[r2-GigabitEthernet0/0/2]nat static global 12.0.0.3 inside 192.168.1.2
#查看静态映射表
[r2]display nat static
动态NAT :
它能够将未注册的IP地址映射到注册IP地址池中的一个地址。不像使用静态NAT那样,你无需静态地配置路由器,使其将每个内部地址映射到一个外部地址,但必须有足够的公有因特网IP地址,让连接到因特网的主机都能够同时发送和接收分组。
#创建公网IP组
#创建一个组号为1的公网IP组,起始IP为12.0.0.4 终止IP为12.0.0.8
[r2]nat address-group 1 12.0.0.4 12.0.0.8
#利用ACL抓取私网IP流量
[r2]acl 2000
[r2-acl-basic-2000]rule permit source 192.168.1.0 0.0.0.255
#将公网IP组和ACL抓取的流量对应
[r2-GigabitEthernet0/0/2]nat outbound 2000 address-group 0 no-pat
动态NAT缺点:上网需求过大时,延迟会较高
NAPT:
网络地址端口转化
通过使用NAPT,只需使用一个公网ip地址,就可将数千名用户连接到因特网。其核心之处就在于利用端口号实现公网和私网的转换。
面对私网内部数量庞大的主机,如果NAT只进行IP地址的简单替换,就会产生一个问题:当有多个内部主机去访问同一个服务器时,从返回的信息不足以区分响应应该转发到哪个内部主机。此时,需要NAT设备根据传输层信息或其他上层协议去区分不同的会话,并且可能要对上层协议的标识进行转换,比如TCP或UDP端口号。这样NAT网关就可以将不同的内部连接访问映射到同一公网IP的不同传输层端口,通过这种方式实现公网IP的复用和解复用。这种方式也被称为端口转换PAT、NAPT或IP伪装,但更多时候直接被称为NAT,因为它是最典型的一种应用模式。
简单理解为:多个私有IP使用同一个但端口不同的公有IP
四层封装: | |
目标端口 | 555 |
源端口 | 80 |
三层封装: | |
目标IP | 12.0.0.1 |
源IP | 1.1.1.1 |
二层封装: | |
目标MAC | ISP网关MAC |
源MAC | 公网服务器MAC(HTTP) |
#利用ACL抓取流量
[r2]acl 2000
[r2-acl-basic-2000]rule permit source 192.168.1.0 0.0.0.255
#再接口上配置EASY IP
[r2-GigabitEthernet0/0/2]nat outbound 2000
#多对多NAPT配置
#创建公网IP组
#创建一个组号为1的公网IP组,起始IP为12.0.0.4 终止IP为12.0.0.8
[r2]nat address-group 1 12.0.0.4 12.0.0.8
#利用ACL抓取流量
[r2]acl 2000
[r2-acl-basic-2000]rule permit source 192.168.1.0 0.0.0.255
#将公网ip组和ACL抓取的流量对应
[r2-GigabitEthernet0/0/2]nat outbound 2000 address-group 0
思维导图: