[ 网络协议篇 ] 一篇文章让你掌握神秘的 NAT
目录
NAT(网络地址转换)
NAT(Network Address Translator,网络地址转换)是用于在本地网络中使用私有地址,在连接互联网时转而使用全局 IP 地址的技术。NAT实际上是为解决IP地址紧缺而开发的技术。
改变IP报文中的源或目的IP地址的一种机制
一、NAT的概念及工作原理
1. 应用场景
IPv4地址已经耗尽
IP:32位 理论上IP数 2的32次方 大约42亿
但是 保留地址很多 如127.0.0.0 又如DE两类(非单播)
2. NAT目的:
解决IP地址紧缺的问题,NAT可以隐藏内网IP
到目前为止,IPv4还能上网,NAT的功劳(没有NAT就没有今天的互联网)
彻底解决IP地址紧缺的问题:应用IPv6
3. NAT工作思路:
1. 内部路由器使用私有地址(私网地址不能在公网上使用)
2. 公网(运营商)上计算机使用公网地址
3. 边界路由器将私网转换成公网
4. 部署位置:
NAT一般部署再连接内外网的网关设备上
5. IPv4私有地址
10.0.0.0 ~ 10.255.255.255
172.16.0.0 ~ 172.31.255.255
192.168.0.0 ~ 192.168.255.255
6. NAT的优缺点
优点:
节省IP地址空间
解决IP地址重叠问题
增加网络的连入Internet的弹性
当网络变更的时候减少更改ip重编址的麻烦
对外隐藏内部地址,增加网络安全性
缺点:
增加转发延迟(要对报文中的一些字段进行转换)
丧失端到端的寻址能力(内网隐藏)
某些应用不支持NAT(如IPsec VPN)
需要一定的内存空间支持动态存储NAT表项(存储NAT表项)
需要耗费一定CPU资源进行NAT操作
二、NAT分类
1. 静态NAT:
(静态一对一映射)(IP对IP 端口对端口)
再边界路由器上面 手工配置 静态的 IP地址转换
一(私)对一(公)不能减少公网IP地址的占用,很少单独使用,
一般于动态NAT或者NAPT配合使用
过程示例:
首先需要购买一个合法的共有IP地址,如上图200.1.1.100
192.168.1.1去访问8.8.8.8
经过路由器 就会去查NAT映射表
就会把更改这个源地址(192.168.1.1)转换为映射后的地址(200.1.1.100)
再发送这个数据包 这个数据包就会在公网上进行路由 最终到达8.8.8.8
8.8.8.8回包
到达路由器 查NAT映射表 发现要将8.8.8.8转换为192.168.1.1
更改回报目的地址 数据包回到主机
实现了私网访问公网,同样的公网也可以访问私网
特点:
静态NAT不能节约公网地址,但可以起到隐藏内部网络的作用。
静态,需要手工创建(大量映射配置麻烦、IP变化需要修改)
配置:
2. 动态NAT:
(基于地址池的一对一映射)(一私对一公)(动态的)
(no-pat(不做端口转换 只做IP转换))
(多个私网应用少个公网)
原理:
当有用户流量到达,则从nat地址池从取出一个地址
供该私有IP访问公网,实际上仍然是一对一的映射并没有节省IP
供使用公网IP 50个, 私网IP 100个(并不是所有的计算机同时上网)
需要上网(映射(类似于DHCP))(公网地址池选一个IP) 不上网了就释放
是一个一对一的映射,并发的时候只能十个人去访问外网
相对于静态更灵活一点(配置量少一点)但是也没有从根本上去节省IP
配置示例:
3.(基于地址池的多对一映射)(NPAT)
NAPT(网络地址端口转换): 端口号 TCP UDP都有端口号
真正的缓解了IP地址紧缺的问题
思路:内网计算机(多)-->公网地址池(1个)
利用端口号的附加条件来进行转发
4. nat server
内网有服务器
(需要对外网去提供服务 比如说80web服务器 外网不能直接通过192.168来访问你)
(我们就可以使用 nat server把服务器的真实IP映射到 200.1.1.100:8080这个端口上去)
广泛应用于内网服务器需对外网提供服务的场景。用于将服务器映射到外网供外网访问。
5.EasyIP:(利用出口路由器公网地址)
不需要购买 公网IP 一般用在中小型企业
现在192.168.1.0/24网段的PC均需访问外网,
内网能够使用出口GE0/0/1的公网IP以Easy IP的方式访问公网。
三、NAT在路由器上的部署
1. 静态部署:
[OR-GigabitEthermnet0/0/1] nat static global 200.1.1.100 inside 192. 168.1.1
2. 动态部署:
ACL:哪些是允许通过NAT去访问外网的
[OR] nat address-group 1 200.1.1.1 200.1.1.200创建地址池
[OR-acl-basic -2000] rule 5 permit source 192. 168.1.0 0.0.0.255配置ACL
[OR-GigabitEthernet0/0/1] nat outbound 2000 address-group 1 no-pat配置动态NAT
现实一般不加no-pat 就是NAPT
3. NAPT:
[OR-acl-basic -2000] rule 5 permit source 192. 168.1.0 0.0.0.255
[OR-GigabitEthernet0/0/1] nat outbound 2000 address-group 1
4. Nat Server:
[OR-GigabitEthemnet0/0/1f nat server protocol tcp global 200.1.1.100 8080
inside 192.168.1.100 80
[OR] ip route-static 0.0.0.0 0.0.0.0200.1.1.2
5. EasyIP:
[OR-acl-basic -2000] rule 5 permit source 192.168.1.0 0.0.0.255
[OR-GigabitEthermnet0/0/1] nat outbound 2000 interface gi 0/0/1