IPv4的公网地址不够?NAT机制可能是当下最好的解决方案

目录

1.前言

2.介绍

3.NAT机制详解


1.前言

我们都知道IPv4的地址范围是32个字节,这其中还有很多地址是不可用的.比如127.*,这些都是环回地址.那么在网路发展日新月异的今天,互联网设备越来越多,我们该如何解决IP地址不够用的问题呢?目前有一种主流的解决方案,也是大家都在用的--NAT机制

2.介绍

首先我们把IP地址分为两大类,私网IP和公网IP,私网IP又叫做局域网IP

IP地址是10.&,172.16-172.31*,192.168* 这三类地址是私网IP

公网IP又叫做广域网IP,我们规定在互联网上网的设备对应的公网IP都必须是唯一的,但是私网上的地址使用私网IP,只要保证据局域网内部的IP不重复即可,不同的局域网之间IP允许重复.

由于上述设定,我们可以总结出以下的限制:
1.公网IP和公网IP的设备之间互相访问,直接访问即可.

2.局域网之间的设备互相访问,也可以直接访问 没有问题.

3.局域网访问另一个局域网的设备,不允许访问

4.局域网访问公网设备,就需要对局域网设备的IP进行地址转换

5.公网设备访问局域网设备,不允许访问

也就是说,我们如果想要编写一个服务器程序,则必须把它部署在有公网IP的设备上.这样别的用户才可以访问.那么我们该如何在一个局域网中的客户端,访问公网设备的服务器呢?

3.NAT机制详解

IPv4的公网地址不够?NAT机制可能是当下最好的解决方案_第1张图片

这张路由表里,会保存的有源IP.源端口.转化后的IP,服务器IP,源端口,目的端口

如果局域网的各个设备访问的是不同的服务器,路由器就可以很简单的通过IP地址来进行划分,如何替换的就如何替换回去.

如果是同一个局域网内,多个设备访问同一个路由器呢?本质也是通过查表

我们可以通过端口号来区分

替换之前的IP  替换之后的IP 服务器IP  源端口 目的端口
192.168.1.1 5,6,7,8 1,2,3,4 1000 9090
192.168.1.2 5,6,7,8 1,2,3,4 2000 9090

万一巧了 ,正好局域网中的两个设备,端口分配的都一样呢?

我们的端口也可以进行映射,给它进行改变

替换前的数据报:源IP:192.168.1.1源端口:1000 目的IP:1,2,3,4 目的端口:9090

替换后的数据报:源IP:5,6,7,8 源端口:1001 目的Ip:1,2,3,4 目的端口:9090

和上面的一样,如何替换就如何如何找回去.

NAT机制本质上是为了解决公网IP不够用的这种情况,我们中国大陆大概有3亿多个公网IP,如果通过这种方法,那么就可以很大程度上的缓解IP地址不够用的情况,一个NAT机制的路由器,它的公网IP可能会管好几个小区或者一个小区,这样就大大的提高了IP地址的利用率.

你可能感兴趣的:(服务器,linux,网络)