介绍NAT之前,我们需要先理解下公有地址及私有地址的概念:
IP地址分为两部分,网络号和主机号,这种分法应用在私有和公有IP地址上。一个局域网中,为了该局域网的安全,我们应用了私有IP地址,为了和Internet中的其他主机进行通信,我们用的私有IP地址必须为: A级:10.0.0.0 - 10.255.255.255 B级:172.16.0.0 - 172.31.255.255 C级:192.168.0.0 - 192.168.255.255 中的一种,A类私有地址只有网络号为10的网段,B类私有地址占用了B类网络号中172.16——172.31,C类私有地址占用了C类网络号中192.168.0——192.168.255.
具体用哪种要根据该局域网的主机有多少来选择(这样便于后期的维护),这些私有IP地址是不用申请的,但是我们必须申请公有IP地址(一个局域网可以有一个公有IP地址,也可以有多个公有IP地址),公有IP地址在全球是唯一的,私有的不是,我们和Internet上的其他主机通信时,用的都是公有IP地址,但是,在局域网中的机子只配置了私有的IP地址,没关系,我们在网关那有一个应用程序,可以把私有地址转换为公有IP地址,该机制成为NAT(网络地址转换Network Address Translation)。
在局域网中通常使用的IP地址如192.168.0.1等是属于私有地址的。那么为什么要在局域网中使用私有地址呢?使用私有地址有什么好处呢?下面我们来看一下为什么在局域网中要使用私有地址。
我们现在使用的IP地址是IPv4,在现有的协议下,其只能提供大约40亿个IP地址,可是为什么IPv4协议只有40亿个IP地址呢?目前使用的IPv4是用4个字节(byte)来表示IP地址,1字节是8个位(bit),所以IPv4表示的IP地址是4X8=32位。如某人的IP地址是:221.137.148.209,实际上它表示:11011101.10001001.10010100.11010001数字中间的点并仅仅是为了看起来方便而已,可以认为我现在的IP地址是11011101100010011001010011010001。理论上,32位的二进数的个数是: 2^32 = 4294967296也就是:四十二亿九千四百九十六万七千二百九十六,IPv4能表示的地址总数也就这么多了。所以现在有了IPv6,IPv6的地址是128位的,所以个数为:2^128=340282366920938463463374607431768211456,肯定是够地球人用的啦!而本来只有40亿的IP地址都被大on
所以总结下,私有地址就是为解决在IPv4下IP地址不够用而产生的。
比如在一个网络中的主机为400台,那么分配一个C类地址不够用,分配一个B类地址又显得太浪费,在这种情况下,我们可以使用私有IP地址来解决这个问题。这个网络中的所有计算机共享一个公网地址。可以有效的缓解IP地址资源紧缺的问题。
私有IP地址,就是内网用的。10.0.0.0-10.255.255.255和192.168.0.0-192.168.255.255要连接互联网必须把私有IP转换成公网IP,使用NAT转换,至于为什么会需要私有IP,这是因为IP地址有限,不能每个用户都分配一个IP,所以只能几个人甚至几十个人共用一个IP,很多内网都是一两个公网IP的。
全部IP地址的范围
IP地址,一共分成了5类,范围分别如下: