一 IP范围,IP分段,公IP,私IP
大家都知道在网络中IP地址只网络必须的,但是一个网络到底是怎么搭建的了?所谓的子网掩码是什么意思了?
下面我就做一下简单的解释。
一个IP其实是有32byte记录的源地址和目的地址的,相当于二进制的 00000000.00000000.00000000. 00000000,所以从最小的IP地址 00000000.00000000.00000000.00000000 到最大的的IP地址11111111. 11111111.11111111.11111111 换算成十进制的IP地址也就是从0.0.0.0 到 255.255.255.255
总计255*255*255*255个IP,当前满足世界上几十亿个IP是够了。
为了管理这么多的IP地址,分为5个段,分段规则是按首位含有1的个数区分,比如A段首位含有0个1,B段首位含有1个1,C段含有2个1,D段含有3个1,E段含有4个1,具体如下:
A段 00000000.00000000.00000000.00000000 -----01111111.11111111.11111111.11111111
换算成十进制就是0.0.0.0 ------127.255.255.255.255
B段 10000000.00000000.00000000.00000000-----10111111.11111111.11111111.11111111
换算成十进制就是128.0.0.0-----191.255.255.255
C段 11000000.00000000.00000000.00000000------11011111.11111111.11111111.11111111
换算成十进制就是192.0.0.0-----223.255.255.255
D段 11100000.00000000.00000000.00000000----11101111.11111111.11111111
换算成十进制就是224.0.0.0------239.255.255.255
E段 11110000.00000000.00000000.00000000----11111111.11111111.11111111.11111111
换算成十进制就是240.0.0.0-------255.255.255.255
虽然分为5段,但是当前用到的就A,B,D段
所以就是
0.0.0.0----127.255.255.255
128.0.0.0----191.255.255.255
240.0.0.0-----255.255.255.255
这三段可用。
但是这些按道理都是公网IP,但是有时候也有很多私有IP需要使用,如果不加以处理有可能公网和私网IP相同导致会冲突;所以要求从所有的IP中筛选一些出来做私网(做了私网IP的公网就不能再用了),同样的私网页分为A,B,C段
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
二 net_id,广播,host_id
XXXX.XXXX.XXXX.XXXX
IP 分为前三位为net_id定义网段,最后一位分为主机ID。这个就相当于前面三位是街道地址,后面一位主机ID相当于每一户的门牌号。只要街道地址相同就属于同一街道的门户,而门牌号不同(必须门牌号不同)。
host_id 00000000就是net_id,host_id 11111111 就是广播。网络消息在一个网段内通过广播的方式给每一个节点发消息。比如:192.168.0.1这个IP ,192.168.0.0就是net_id,192.168.0.255就是广播。
什么是net_id ?就是一个街道门牌号为00000000的那一家,也就是一个街道第一户。它也代表了一个街道,相当月现在的街道办。
什么是广播?就是一个街道门牌号为11111111的那一家,也就是一个街道最后一户。它就代表了一个街道的广播站。如果你有事情就直接到广播站大喇叭里面喊一声,全街道都能听见,和事情有关的人自然按照你广播的意思办事,和事情没有关系的人就左耳朵进右耳朵出,不予理睬就是了。
那么现在问题来了,我住在一个街道上天天有人在广播大喇叭里喊“张君雅,你妈喊你回去吃饭”,“王老二,你老婆生了赶紧回去抱娃”等等,那我耳朵都被听烦了,所以我要求即使我们住在同一个街道里但是我也要对这个街道做分级管控不听那么多的人唠叨。
对于网络也一样,需要建立子网。比如192.168.1.0这个网段中有255个IP处于同一个网段,可以通过网卡直接通信。但是我只需要几个IP,不需要那么多的IP处于同一个网段,所以要分子网。
那么怎么分子网了?
这个网段假设net_id 都是1,例如:11111111.11111111.11111111.00000000,总共24位1,换算成十进制就是255.255.255.0 这也就是大名鼎鼎缺最难理解的子网掩码
我们可以把host_id中借一位给net_id,这样而来网段(net_id)就是11111111.11111111.11111111.1
这个时候host_id只剩下7个byte了 0000000,这个时候网段总共25位1,换算成十进制为255.255.255.128
那么现在这个192.168.1.0 这个网段就被分为:192.168.1.0-----192.168.1.127和192.168.1.128----192.168.1.255两个网段。
看懂了吗?下面再详细解释一下:
11000000.10101000.00000001.00000000-----11000000.10101000.00000001.01111111
注意:红色部分现在都是网段net_id,黑色部分就是host_id(黑色只有7位了),换算成十进制就是
192.168.1.0-----192.168.1.127
还有一段:
11000000.10101000.00000001.10000000-----11000000.10101000.00000001.11111111
换算成十进制就是192.168.1.128-----192.168.1.255
这就是子网掩码的威力。
另外说一下,子网掩码1111111.11111111.11111111.00000000 换算成十进制255.255.255.0,可以直接写成24,这里的24也就是二进制中1的个数。所以上面这个例子从host_id借了一位后子网掩码就成了25,或者255.255.255.128
到此为止,恭喜你
-- 后续
上面介绍的都是广播域缩小的情况,那么广播域扩大的情况呢?
举个例子:172.18.0.0/22 这个网段中共有多少个IP可用呢?
注意:这里的子网掩码是22位,也就是255.255.252.0
分析:同样按照上面介绍的分析方法,不是net_id向host_id借了一位,而是host_id向net_id借了一位
172.18.0.0/22 ==> 10101100.00010010.00000000.00000000 红色是net_id,黑色是host_id
这样看我们就可以分析出host_id可以从********.********.******00.00000000 一直取到********.********.******11.11111111
共256*4-2=1022个IP,这1022个IP都在同一个广播域下面,可以互通。换算成十进制如下:
172.18.0.1-----172.18.0.255
172.18.1.0-----172.18.1.255
172.18.2.0-----172.18.2.255
172.18.3.0------172.18.3.254
这4个IP范围(这里不能叫做网段)都在同一个广播域下也可以叫做同一个网段。可以理解为:
本来4条街道每个街道上都有1个广播,街道和街道之间广播喊的内容是不共享的。但是有一天来了一个大BOSS,大BOSS说我是上级派来的,以后你们4个街道都归我管,之前的4个小广播都拆了我要安装一个大的广播,大广播一放你们四个街道都
也就是说IP:172.18.2.31 在没有网关情况下是可以ping通从172.18.0.1 到172.18.3.254中任何一个IP地址。
对于IP:172.18.4.10 想要链接到172.18.2.31那就不行了,因为172.18.4.10和172.18.2.31/22不在同一个网段。
注意:那么假如说我非要链接,怎么办了?网关(也叫路由)
在不同网段中的网络链接需要在网关中进行注册,在网关的帮助下帮忙转发才可以。
那么上面提达到的问题172.18.4.10想要链接172.18.2.31/22 双方都必须在网关172.18.1.254中注册(这里的网关地址要看实际情况中网关设备自己的IP是多少)。具体操作:在网卡文件中加入GATEWAY=172.18.1.254 重启网络服务network