CCNA 学习记录 - NAT 转换
引言
随着Internet的发展和网络应用的增多,IPv4地址枯竭已经成为制约网络发展的瓶颈。尽管IPv6可以从根本上解决IPv4地址空间不足的问题,但目前众多的网络设备和网络应用仍是基于IPv4的,因此在IPv6广泛应用之前,一些过渡技术的使用是解决这个问题的主要技术手段。
网络地址转换技术NAT(Network Address Translation)主要用于实现位于内部网络的主机访问外部网络的功能。当局域网内的主机需要访问外部网络时,通过NAT技术可以将其私网地址转换为公网地址,并且多个私网用户可以共用一个公网地址,这样既可保证网络互通,又节省了公网地址。
应用场景
企业或家庭所使用的网络为私有网络,使用的是私有地址;运营商维护的网络为公共网络,使用的是公有地址。私有地址不能在公网中路由。NAT一般部署在连接内网和外网的网关设备上。
静态 NAT
静态 NAT 实现了私有地址和公有地址的一对一映射。一个公网IP只会分配给唯一且固定的内网主机。
动态 NAT
动态NAT基于地址池来实现私有地址和公有地址的转换。
PAT
端口地址转换(PAT,Port Address Translation)是对网络地址转换(NAT)的扩展,它允许本地网(LAN)上的多个设备映射到一个单一的公共IP地址。 端口地址转换旨在保存IP地址。 大多数家庭网络使用端口地址转换。
端口地址转换 PAT 允许多个内部地址映射到同一个公有地址(出接口)的不同端口。
NAT 服务器
通过配置NAT服务器,可以使外网用户访问内网服务器。
配置
拓扑
现如今已经所有网络打通,并允许不同 VLAN 间通信,并都可通出口路由。
静态路由
将内网的主机 192.168.10.5、192.168.20.6 通过出口路由器的NAT 转换 实现可访问服务器:120.48.128.24
运营商分配公网IP如下:
1 | 120.48.128.30 # 连接互联网的接口用 |
在出口路由器进行静态 NAT 绑定:
1 | R3(config)#ip nat inside source static 192.168.10.5 120.48.128.31 |
在出口路由器上设置内网入口(路由器连接内网的接口)和公网出口(路由器连接公网的接口):
1 | R3(config)#int e0/0 |
最后来到 192.168.10.5 上 访问公网 120.48.128.24:
来到 192.168.20.6 上 访问公网:
发现可以上网。
可以通过如下命令查看 NAT 信息:
1 | R3#show ip nat translations |
动态 NAT
将内网的所有主机通过出口路由器的 NAT 转换 实现可访问服务器:120.48.128.24 ,但是由于公网 IP 只有2个,实现同一时间内最大供两台电脑上网(超时时间调至 10 秒):
运营商分配公网 IP 如下:
1 | # 连接互联网的接口用 |
配置一个访问控制列表(ACL),以确定哪些流量需要进行NAT转换(需求为所有内网机器)。
1 | R3(config)#access-list 1 permit any |
配置一个公共IP地址池。这里运营商给的IP地址池:120.48.128.31 - 120.48.128.32:
1 | # 第一种子网掩码写法 |
配置 NAT 规则:
1 | # 匹配 ACL 表 id 为 1 的规则 并使用 global_ip 地址池 |
在出口路由器上设置内网入口(路由器连接内网的接口)和公网出口(路由器连接公网的接口):
1 | R3(config)#int e0/0 |
由于只有公网IP池中只有两个公网IP,故而只能允许两台主机同时上网:
第三台电脑已无法上网。
默认 NAT 表示已记录了某个公网IP和私有IP的对应关系,该关系短时间内不会解出,因此当另一台主机不上网时,是无法即时让另外一台上网,故而需要调整超时时间:
默认超时为 24 小时。
1 | R3#show ip nat translations verbose |
可以通过如下命令调整:
1 | R3(config)#ip nat translation timeout 10 # 设置超时时间为10秒 |
此时已经超时时间修改为10秒,如果 10 秒内该主机没有上网,则不会占用公网IP,可以供其他主机上网。
PAT
端口地址转换配置比较简单,只需要加上 overload
即可。具体请参考 动态 NAT 配置。
1 | R3(config)#ip nat inside source list 1 pool global_ip overload |
可以发现,三台主机同时上网,使用的都是一个公网IP,只是端口不一样 ,该转换方式在现网中使用是最多的。