NAT(网络地址转换)
一、NAT的介绍#
1-1 为什么要发展NAT#
因特网面临的一个问题是IP地址短缺问题。解决这个问题有所谓长期的或短期的两种解决方案。
长期的解决方案就是使用具有更大地址空间的IPv6 协议
短期的解决方案有网络地址翻译 (Network Address Translators, NAT)
和无类别的域间路由技术 (Classless Inter Domain Routing, CIDR
等,这些技术都是在现有的 IPv4 路由器中实现的
1-2 NAT的应用场景#
-
企业和家庭所使用的网络为私有网络,使用的是私网地址;运营商维护的网络为公网网络,使用的是公网地址。私网地址不能在公网中路由。
-
NAT一般部署在内网和外网的网关设备上,即网络出口设备,例如
防护墙
、路由器
等。
1-3 NAT的优点#
-
有效避免来自外网的攻击,可以很大程度上提高网络安全性
-
控制内网主机访问外网,同时也控制外网主机访问内网,解决了内网和外网不能互通的问题
二、NAT的分类#
2-1 静态NAT#
-
静态NAT实现了私网地址和公网地址的一对一映射
-
一个公网IP只会分配给唯一且固定的内网主机
-
缺点:无法有效解决公网地址稀缺的问题
-
优点:避免外网设备的攻击,仅提高了安全性
注意:
nat static enable
nat static global 公网地址 inside 私网地址
以上两条命令都是在路由出口接口模式下配置
每个私有地址都有一个与之对应并且固定的公网地址,即私网IP地址和公网IP地址之间的关系是一一对应
出口网关设备的NAT数据配置:
interface GigabitEthernet 0/0/1 //进入接口GE 0/0/1
ip address 12.1.2.1 24 //配置接口IP地址
nat static enable //开启静态nat
nat static global 12.1.2.1 inside 192.168.1.1 //将内网地址192.168.1.1映射到公网地址12.1.2.1
nat static global 12.1.2.2 inside 192.168.1.2
nat static global 12.1.2.3 inside 192.168.1.3
2-2 动态NAT#
-
所有可用的公网地址组成地址池;
-
当内部主机访问外部网络时,临时分配一个地址池中的未使用的公网IP地址,并将该地址标记为“In Use”。当该主机不再访问外部网络时回收分配的地址,重新标记为“Not Use”。
-
动态NAT选择地址池中的地址进行地址转换时,不会转换端口,即No-PAT,导致了公网地址与私网地址还是1:1的映射关系,无法提高公网地址利用率
出口网关设备的NAT数据配置:
nat address-group 1 12.1.1.2 12.1.1.5 //创建一个地址池address-group 1,共有4个公网IP地址
acl 2000 //创建acl 规则
rule 5 permit source 192.168.1.0 0.0.0.255 //配置策略,允许源IP网段(也可以允许某个IP)通过
quit
interface GigabitEthernet 0/0/1 //进入GE 0/0/1接口
nat outbound 2000 address-group 1 no-pat //将acl 2000策略应用到该接口
2-3 NAPT#
NAPT
(Network Address and Port Translation,网络地址端口转换):从地址池(地址池中可以有一个或多个公网地址)中选择地址进行地址转换时,不仅转换IP地址,同时也会对端口号进行转换,从而实现公网地址与私网地址的1:n映射,可以有效提高公网地址利用率。
家庭和小型企业使用此方式也不多,通常使用大型企业:申请多个固定公网IP地址
出口网关设备AR1的数据配置:
nat address-group 1 12.1.1.2 12.1.1.5
acl 2000
rule 5 permit source 192.168.1.0 0.0.0.255
quit
interface GigabitEthernet 0/0/1
nat outbound 2000 address-group 1
⚠️ AR3的GE0/0/0抓不到包,应该是软件的原因
2-4 Easy IP#
实现原理和NAPT相同,同时转换IP地址、传输层端口,区别在于Easy IP
没有地址池的概念,使用路由器出口接口地址作为NAT转换的共有地址。
适用于不具备固定公网IP地址的场景:如通过DHCP
、PPPoE拨号
获取地址的私有网络出口,可以直接使用获取到的动态地址进行转换。个人用户和小型企业使用比较多的方法
出口网关设备的NAT数据配置:
acl number 2000 //创建acl 2000
rule 5 permit source 192.168.10.0 0.0.0.255 //配置允许进行NAT转换的内网地址段192.168.10.0/24
interface GigabitEthernet 0/0/2
ip address 12.1.1.1 24
nat outbound 2000 //在接口GE0/0/2上做Easy IP方式的NAT
2-5 NAT Server#
NAT Server
:指定【公网地址:端口】与【私网地址:端口】的一对一映射关系,将内网服务器映射到公网,当私有网络中的服务器需要对公网提供服务时使用。
⚠️ 注意:此处的公网地址和私网地址均为静态IP,且端口也为静态。
可以让外网用户访问内网设备。外网用户通过“内网用户的出口公网IP+端口号”或者“域名+端口号”
在出口路由器的出口配置:
interface GigabitEthernet 0/0/1 //切换到路由器出口
ip address 12.1.2.1 24 //出口IP配置
nat server protocol tcp global 23.1.1.2 www inside 192.168.1.1 8080 //映射192.168.1.1::8080到23.1.1.2::80
💡 外网访问内网设备的方法:
-
端口映射(例如NAT Server)
-
VPN
⚠️ 查询命令:display nat server
作者:caojun97
出处:https://www.cnblogs.com/caojun97/p/16366739.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!