网络技术之NAT
注意NAPT涉及的两个配置方式都没通,后面有时间再来看
1.关于NAT的背景知识
目前主流的地址是IPV4对应的是32位,2的32次方为43亿,即ip地址总数为43亿。
其中有一半是保留地址,不能分给设备使用,可用的地址就只有21亿了,显然是不够用的(人口就70亿了)
那怎么办,就要请出我们的主角 NAT了(Network Address Transmit)。
2.关于NAT技术的使用
我们可以将医院,企业及公司等区域作为局域网,局域网内通过以太口进行交流。
局域网之间怎么交流呢?
局域网通过PPPOE或者BPG等方式连上运营商ISP之后,ISP将数据包转发到对应的局域网,然后再返回。
通过局域网,我们有两个好处,
第一个就是可以地址复用,在A局域网里面用了192.168.1.1之后,我们在B里面也可以用192.168.1.1,这样就可以大量节省使用的地址
第二个就是可以增加安全性,在局域网外设置防火墙,减少被入侵的危险
下面就是一副示意图,局域网内的设备通过NAT做地址转换之后,将数据包发给ISP,ISP转发到对应的局域网,NAT将目的地址转换为对应的设备地址,对方设备收到后,就完成了通信。
3.NAT的分类
NAT类型有以下几种
1.静态NAT / NAT server
这种NAT就是将私网地址和公网地址直接绑定,NAT server原理和静态NAT是一样的。(这种通常用在服务器上,公网的专线IP很贵的,普通用户用不起)
2.动态NAT
将一个网段的地址划分给多台设备使用,先到先得。没有抢到的就要等待,有设备释放公网地址,那就可以再抢。
3. NAPT
现网场景下用的最多的NAT技术,它的优点是同一个公网地址,通过设置端口号,可以同时分配多台设备使用,很省钱。(这种就是我们办的话费套餐里面的)
4.NAT的应用举例
以ENSP模拟器举例
① 我们首先学习 静态NAT / NAT server
我们可以这样理解,因为私网地址B不能访问公网,那我们就在给它绑定一个公网地址A,换个马甲。 然后我们在公网访问公网地址A的时候,就是在访问私网地址B绑定的私网设备。
静态NAT和NAT server还是有细微差别,我们先看静态NAT
静态NAT的拓扑如下,我们在将多个设备接到交换机上,交换机再接到路由,路由器内接到交换机的部分是内网,接到外面的是公网
对PC做下面的配置(注意,要配置网关,之前就是没有配置网关导致一直不通,整个人都emo了)
对于网关路由要配置私网口ip和公网口ip,配置完成后,对公网口配置静态NAT
注意设置静态或者NAT server不要使用和网关公网口一样的ip地址,会冲突
配置好私网地址公网地址以及设备网关地址后,在公网口下发配置(公网口要下发nat static enable)
静态 NAT : nat static global 20.20.20.22 inside 192.168.1.1
NAT server : nat server global 20.20.20.29 inside 192.168.1.20
这样服务器和路由之间,PC和路由之间就可以ping通了
②动态NAT
动态NAT的原理是我们划分一个网段的多个地址,可能是10个或者多少个,开放给设备使用,先得先得。
没有抢到的设备只能等在用的设备释放后再用,这样做不稳定,使用的很少。(所以我们不用)
③ NAPT是重点
配置方式一
关于NAPT,有前置条件
首先在路由器配置ACL,并且对192.168.1.0网段做流量控制
然后要配置一个公网的地址池(里面就1个ip)
前置条件配置完成后,配NAPT就比较简单了
这样就可以多个设备使用同一个公网IP对外通信了
配置方式二(可能是服务器的配置方式)
关于NAT server 有点搞糊涂的是 在涉及到端口的时候也用到了 nat server的格式(不知道是不是和设备类型有关,演示用的设备是服务器)
nat server protocol tcp global 20.20.20.30 8002 inside 192.168.1.30 80
对上面的命令做一下解释, nat server 是 nat类型
protocol tcp 是建立通过tcp协议三层握手建立联系(也有UDP等协议)
global 20.20.20.30 8002 公网地址是 20.20.20.30,设置端口号为8002.(端口号理论上可以随便写,但是有部分端口号会被防火墙隔离,要谨慎)
inside 192.168.1.30 80 内网地址是 192.168.1.30 ,这个地址对应的服务器是一个http服务器,http服务器的端口号是80(注意https服务器对应的端口号是443)
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步