NAT英文全称是“Network Address Translation”,中文意思是“网络地址转换”,它是一个IETF(Internet Engineering Task Force, Internet工程任务组)标准,允许一个整体机构以一个公用IP(Internet Protocol)地址出现在Internet上。顾名思义,它是一种把内部私有网络地址(IP地址)翻译成合法网络IP地址的技术。
简单的说,NAT就是在局域网内部网络中使用内部地址,而当内部节点要与外部网络进行通讯时,就在网关处,将内部地址替换成公用地址,从而在外部公网(internet)上正常使用,NAT可以使多台计算机共享Internet连接,这一功能很好地解决了公共IP地址紧缺的问题。通过这种方法,您可以只申请一个合法IP地址,就把整个局域网中的计算机接入Internet中。这时,NAT屏蔽了内部网络,所有内部网计算机对于公共网络来说是不可见的,而内部网计算机用户通常不会意识到NAT的存在。
这里提到的内部地址,是指在内部网络中分配给节点的私有IP地址,这个地址只能在内部网络中使用,不能被路由。虽然内部地址可以随机挑选,但是通常使用的是下面的地址。
私有地址:
10.0.0.0~10.255.255.255
172.16.0.0~172.16.255.255
192.168.0.0~192.168.255.255
NAT将这些无法在互联网上使用的保留IP地址翻译成可以在互联网上使用的合法IP地址。而全局地址,是指合法的IP地址,它是由NIC(网络信息中心)或者ISP(网络服务提供商)分配的地址,对外代表一个或多个内部局部地址,是全球统一的可寻址的地址。
静态NAT设置起来最为简单和最容易实现的一种,内部网络中的
每个主机都被永久映射成外部网络中的某个合法的地址
。
内网 | 外网 | 转换类型 | 技术类型 |
---|---|---|---|
192.168.0.20/24 | 58.211.107.14 | 一对一 | 内网192.168.0.20 |
192.168.0.0/24 | 58.211.107.14 | 多对一 | 192.168.0.2-254通过58.211.107.14代理上网 |
192.168.0.20:80 | 58.211.107.14:80 | 一对一 | NO-PAT:端口不做转换,仅转换IP |
192.168.0.20:8181 | 58.211.107.14:80 | 8181-80,端口一对一,IP可以是多对一 | PAT:端口、IP都转换。端口映射 |
动态地址NAT则是在外部网络中定义了一系列的合法地址,采用动态分配的方法映射到内部网络。动态地址NAT只是转换IP地址,它为每一个内部的IP地址分配一个临时的外部IP地址,主要应用于拨号,对于频繁的远程联接也可以采用动态NAT。当远程用户联接上之后,动态地址NAT就会分配给他一个IP地址,用户断开时,这个IP地址就会被释放而留待以后使用。
举例:如果你们公司wan口地址是:58.211.107.14/255.255.255.248,并且你们有5个公网地址
内网 | 外网 |
---|---|
IP地址 | 58.211.107.14 |
子掩码 | 255.255.255.248,掩码位29 |
网关 | 58.211.107.9 |
以电信网络为例:
58.211.107.14/29
最多主机6个:58.211.107.9~58.211.107.14
,减去1个网关,可用IP只有5个。一般第一个起始IP被电信默认设置为网关:58.211.107.9
就是网关。所以可用的公网IP只有下面列表中的2-6:
序号 | 内网 | 外网 |
---|---|---|
01 | 58.211.107.9 | 网关 |
02 | 58.211.107.10 | 可用IP |
03 | 58.211.107.11 | 可用IP |
04 | 58.211.107.12 | 可用IP |
05 | 58.211.107.13 | 可用IP |
06 | 58.211.107.14 | 可用IP |
最终动态地址NAT转换池为:
内网 | 外网 |
---|---|
192.168.0.2 | 58.211.107.14 |
192.168.0.3 | 58.211.107.11 |
192.168.0.4 | 58.211.107.12 |
192.168.0.5 | 58.211.107.13 |
… | … |
需要注意的是,动态地址NAT,内网和外网所对应的地址断开连接重连后就会变化,也就是说是随机的。这是它的缺点之一。
NAPT则是把内部地址映射到外部网络的一个IP地址的不同端口上。网络地址端口转换NAPT(Network Address PortTranslation)是人们比较熟悉的一种转换方式。
NAPT普遍应用于接入设备中,它可以将中小型的网络隐藏在一个合法的IP地址后面。NAPT与动态地址NAT不同,它将内部连接映射到外部网络中的一个单独的IP地址上,同时在该地址上加上一个由NAT设备选定的TCP端口号。
在Internet中使用NAPT时,所有不同的信息流看起来好像来源于同一个IP地址。这个优点在小型办公室内非常实用,通过从ISP处申请的一个IP地址,将多个连接通过NAPT接入Internet。
实际上,许多SOHO远程访问设备支持基于PPP的动态IP地址。这样,ISP甚至不需要支持NAPT,就可以做到多个内部IP地址共用一个外部IP地址上Internet,虽然这样会导致信道的一定拥塞,但考虑到节省的ISP上网费用和易管理的特点,用NAPT还是很值得的。
内网 | 外网 | 对应端口 | 基于NAT转发类型 |
---|---|---|---|
192.168.0.20:8181 | 58.211.107.14:80 | 80-8181 | PAT:端口、IP都转换。端口映射 |
192.168.0.20:21 | 58.211.107.14:9111 | 21-9111 | PAT:端口、IP都转换。端口映射 |
192.168.0.20:3389 | 58.211.107.14:3333 | 3389-3333 | PAT:端口、IP都转换。端口映射 |
端口是还是一对一,IP可以是多对一,也可以是多对多。
首先安装拓扑图配置地址(省略),然后在AR1上配置一条静态NAT
[R1-GigabitEthernet0/0/1]nat static global 200.1.1.100 inside 192.168.1.1
[R1-GigabitEthernet0/0/1]dis nat static
Static Nat Information:
Interface : GigabitEthernet0/0/1
Global IP/Port : 200.1.1.100/----
Inside IP/Port : 192.168.1.1/----
Protocol : ----
VPN instance-name : ----
Acl number : ----
Netmask : 255.255.255.255
Description : ----
Total : 1
首先安装拓扑图配置地址(省略),然后在AR1上配置:
[R1]nat address-group 1 200.1.1.100 200.1.1.200
#配置nat转换用的公网地址池ID为1,范围200.1.1.100-200
[R1]
[R1]acl 2000
[R1-acl-basic-2000]rule permit source 192.168.1.0 0.0.0.255 #使用acl匹配需要进行转换的内网IP地址
[R1-acl-basic-2000]q
[R1]in g0/0/1
[R1-GigabitEthernet0/0/1]nat outbound 2000 address-group 1 no-pat
#在接口出方向使用动态NAT,不做PAT端口复用
[R1-GigabitEthernet0/0/1]nat outbound 2000 address-group 1
#在接口出方向使用动态NAT,做PAT端口复用,不加默认就是napt
某企业仅有1个公网IP地址200.1.1.1,内网需要做地址转换的主机IP只能通过这1个公网IP做地址转换。
[R1]
[R1]acl 2000
[R1-acl-basic-2000]rule permit source 192.168.1.0 0.0.0.255 #使用acl匹配需要进行转换的内网IP地址
[R1-acl-basic-2000]q
[R1]in g0/0/1
[R1-GigabitEthernet0/0/1]nat outbound 2000 interface GigabitEthernet 0/0/1
特别说明:
[R1-GigabitEthernet0/0/1]nat outbound 2000 interface GigabitEthernet 0/0/1
上面这条命令,在ensp模拟器上interface后面只能跟回环接口,真机上是可以的跟接口的,下图是真机截图:
首先按照拓扑把地址配置好。
不用配置网关,配网关就不叫公网了。
[R1]nat address-group 1 200.1.1.100 200.1.1.200
#配置nat转换用的公网地址池ID为1,范围200.1.1.100-200
[R1]
[R1]acl 2000
[R1-acl-basic-2000]rule permit source 192.168.1.0 0.0.0.255
#使用acl匹配需要进行转换的内网IP地址
[R1-acl-basic-2000]q
[R1]in g0/0/1
[R1-GigabitEthernet0/0/1]nat server protocol tcp global 200.1.1.100 8080 inside
192.168.1.100 80
测试结果:点击获取,会弹出是否下载此文件