【网络工程】说说子网掩码划分那点事

场景需求:

在中大型网络中,复杂的网络环境但又不失条理的独立存在,大大小小的网络如何相互通信和隔离呢?

这就不得不说子网划分和路由这些事情了,今天大嘴就着重分析总结一下子网掩码划分的这个梗。


子网掩码划分详解

一、在划分之前,我们需要了解几个专业术语的概念,咱们尽可能的理解透彻点;

①、ip地址、(Internet Protocol Address)即网际协议地址,我们可以理解为计算机在因特网通信协议中的网络ID,即网络身份识别码,有别于计算机网卡的物理ID-mac地址;

目前常用的是ipv4协议的ip地址,即由四组八位共32位的二进制组成,转化为10进制就是我们常见的:192.168.1.1;

②、子网掩码、(subnet mask)即网络掩码,subnet网络分支的意思,我们知道互联网是一个大整体,但全世界的所有计算机分布在不同的区域,不可能存在同一个网络中,所以需要用子网掩码来规划成一块一块的,就好比地球上的有很多个国家,每个国家都是一个独立的区域。即子网掩码用来确认网络范围的大小,范围内的ip就好比每个国家的合法公民。

子网掩码的格式:网络号+主机号的32位二进制组成、前者用二进制1来表示,后者用二进制0来表示;

如果把ip地址转换为二进制则掩码和ip一一对应,掩码的网络号与ip的网络位对应,主机号对应主机位;

缺省子网掩码有A、B、C三类标准,255.0.0.0、255.255.0.0、255.255.255.0

分别对应ip地址A、B、C三类标准:(二进制中子网掩码和ip地址为一一对应的)

0.0.0.0 - 127.255.255.255/8、128.0.0.0 - 191.255.255.255/16、192.0.0.0 - 223.255.255.255/24;

其中8、16、24表示ABC三类子网掩码网络号转化为二进制时,共有8、16、24个“1”;

此外ip地址还有不常接触的D类224.0.0.0--240.255.255.255 用于组播,剩余E类用于保留;

重点注意:掩码的网络号对应ip地址的网络位为不可变更的固定值,主机号对应的为主机范围

如:192.168.1.0/24,则表示为192.168.1.0的网段,ip范围:192.168.1.0-255

其192.168.1位ip地址网段的网络位是固定值,0-255则为主机位的取值范围。

重点注意:ip地址的网络为取值,由掩码的网络号来确定,所以掩码控制了网络范围的大小

当然如果我们把十进制转化为二进制后再观察就十分明确了:

 ip地址: 1 1 0 0 0 0 0 0 . 1 0 1 0 1 0 0 0 . 0 0 0 0 0 0 0 1 . 0 0 0 0 0 0 0 0
 子网掩码: 1 1 1 1 1 1 1 1 . 1 1 1 1 1 1 1 1 . 1 1 1 1 1 1 1 1 . 0 0 0 0 0 0 0 0

重点注意:掩码的网络号越多,ip地址的主机位范围就越大,网络范围的可用ip就越多

疑问·思考

问10.10.10.0/24的网段是哪类ip地址?24位掩码是C类掩码,但10.10.10.0是A类ip地址范围内的;

事实上这样的网段不是任何一类的标准ip地址网段,而是A类地址10.0.0.0/8网段下的一个子网;

重点注意:

ip地址网段:由子网掩码控制的一段ip地址范围,我们称之为一个网段;

一个网段的第一个ip地址称之为网络地址,最后一个ip地址称之为广播地址

当然这里10.10.10.0/24是十进制的表示方法,但掩码确定网络范围是通过一一对应的32二进制来控制的。所以说为了更好的理解子网划分,我们需要熟练的掌握十进制和进制之间的转换,下面的子网划分大嘴也尽可能通过二进制的形式来直观展现。

所以ABC三类ip,通过掩码控制了网络的范围,把整个互联网划分为大大小小的网络区域即网段,但其均可以在互联网中相互通信,不同网络之间通过路由来相互通信,相同网络的ip之间通过arp寻址mac来相互通信;取决于ABC类ip网段其主机位ip地址范围的大小,分别针对大中小型网络的应用,

此外搞网络的人应该听说过因arp引起的网络风暴,网络范围越大,arp协议的流量越大,不利于网络的通信。所以网段的划分也可以有效的防止网络风暴的产生。

同时为了更充分有效的利用ip地址,毕竟ip地址数量有限,人们把网络又分为广域网和局域网。

并从ABC三类ip中分别取出一段ip地址范围作为局域网的ip,其余的为广域网ip,也就是我们常说的内网和外网,私网和公网,其中公网ip在互联网里是唯一的,私网ip一般为末梢网络,是可以在多地重复使用的,如常用的192.168.1.0/24网段。局域网和广域网之间的通信需要经过nat地址转换再路由通信

局域网ip有哪些?

A类地址中:10.0.0.0-10.255.255.255/8、标准网段10.0.0.0/8

B类地址中:172.16.0.0-172.31.255.255/12、标准网段172.[16-31].0.0/16

C类地址中:192.168.0.0-192.168.255.255/16、标准网段192.168.[0-255].0/24

值得一说的,工作中的经验,有兴趣的可以思考一下:

tcp/ip通信协议中,数据包的ip包头,每经过一次路由其源mac地址都会发生一次改变,每经过一次nat地址转换其源ip地址也会发生一次改变。

③、子网划分、通过增减控制子网掩码的网络号数量,在标准ip地址分类的基础上,进一步的对网络划分,从而灵活充分高效合理的使用ip地址和规划网络架构。

现在我们已经了解了网络间网络规模的大小,表现其网段范围内的可用ip的数量的增减,真实的工作环境中,特别是中大型的网络,错综复杂,我们不可能单一使用某个网段解决所有需求,但是标准网段就那么些个,而且其数量无法灵活改变,使用起来不是那么得心应手;

上面我们已经知道,增减掩码的网络号可以控制网络范围的大小,事实上这种方法就是子网掩码划分技术。一般是通过增减网络号的数量,来减小网络的范围,把大网络划分为小网络使用。

如专业中说的网络地址的多重复用技术,即把一个标准网段划分为若干个小网段来使用。

二、子网掩码划分

了解了上面的概念,我们很清楚现在要做什么了,但大嘴觉得还是要从两种运算说起:

十进制和二进制的转换、基于子网掩码主机号的借位计算;

①、十进制和二进制的转换

十进制是我们常用也非常熟练的一种算数标准,由0-9十个数字组成,逢十进一,个十百千万依次计算;

同理,二进制有0和1两个数字组成,逢二进一,本位变0,从第一位第二位第三位依次计算;

但两者代表的实质数量是等同的,所以它们可以相互转换,不同的是表现方式。

如二进制0等同十进制的0,二进制的1等同十进制的1;二进制的10等同于十进制的2;

可以看到,二进制1,再加1等于2,逢二进一位,本位归为0,表示为10;

同理二进制的11等同于十进制的3,二进制的100等同于十进制的4,二进制的101等同于5;

当然实际使用中,我们不可能如此一步步推算,有什么技巧?

我们可以把二进制的每一位独立开来转换,然后求相加即可得出等同十进制的数值。

因为ip地址是由4个8位的二进制组成,这里我们拿一个8位举例:

位数 n
二进制值 m 1 1 0 0 0 0 0 0
运算公式 m*2^(n-1) 1*2^7 1*2^6 0*2^5 0*2^4 0*2^3 0*2^2 0*2^1 0*2^0
十进制 128+64=192

可以得出,二进制转换为十进制,从第一位开始,可以使用m*2^(n-1)依次取值相加,事实上只要算出值为1的位数即可;

那么十进制转换为二进制呢,这个就需要我们熟记2的次方表了;

如十进制10000,首先想2的次方表中取值离10000最近并比之小的是2^13=8192;则确定这是一个14位的二进制,并14位取值为1,然后得出10000-8192=1808,同理得出取值离1808最近的是2^10=1024,则确定其11位取值为1,同理依次计算,最终得出二进制值取值为:10011100010000

十进制转换二进制,找到离值m最近并比之小的2的次方取值为n,则二进制的第n+1位的取值为1,并得出剩余数值m-2^n,按照相同方法依次运算并最终得出二进制取值;

②、子网掩码主机号的借位计算

子网掩码分为网络号和主机号,主机号的借位,故名思意就是在标准分类掩码的基础上,向主机号借位,从而增加网络号,减小网络范围,把大网络划分多个小网络,实现对网络地址的子网划分,也是我们今天的重点:子网掩码的划分技术

事实上,子网划分也可以增大网络范围,不过是向掩码的网络号借位,但并不推荐使用。

这里我们拿一个C类地址的网段来举例:192.168.1.0/24

显然C类地址网段的子网掩码为24位即255.255.255.0、网络地址为192.168.1.0、广播地址为192.168.1.255

网络范围为192.168.1.0-255、可用网络范围192.168.1.1-254

其中网络地址也叫网络id,等同于下面说的子网id,它代表着整个网段的统称。

对于此网段中的ip来说,192.168.1为网络位、0-255为主机位,可以得出总共有2^8=256个ip地址;

子网掩码255.255.255.0化为二进制11111111.11111111.11111111.00000000

可以得出掩码的网络号为24个1,主机号为8个0,而主机号的借位是从左到右把0变成1;

现在做个假设,M值为所借位的位数,N为借位后的主机号位数,即可以得出如下几个公式:

M+N=8(8位初始网段掩码的主机号位数)

2^M=X(X则为借位后把初始网段划分为X个小网络)

2^N=Y(Y表示借位后划分的每个小网络分配的ip地址个数)

X*Y=256(XY相乘等于初始网段范围包含的ip个数即2^8=256)

那么我们如何得出划分后每个子网的子网id和子网掩码呢?我们来认真思考下面表格:

序号 范围起始 范围尾数 子网id 掩码位数 可用ip数
初始网段 192.168.1.0 192.168.1.255 192.168.1.0 24 2^8-2=254
192.168.1.0 192.168.1.Y-1 192.168.1.0 24+M 2^N-2
192.168.1.Y 192.168.1.2Y-1 192.168.1.Y
192.168.1.2Y 192.168.1.3Y-1 192.168.1.2Y
…… ......
X 192.168.1.(X-1)Y或256-y 192.168.1.xy-1或255 192.168.1.(X-1)Y

可以看出,只要我们知道了M值,可以很快得出XY的值,并以此推算出划分的子网范围和掩码!

三、子网划分的反向计算

第二节中我们知道了如何对标准网络的子网划分技术,但工作中还有一种需求会运用到子网划分技术;

那就是给你一段ip地址范围,让你求得最接近此范围的网段的子网id和掩码是多少?

和借位掩码主机号的子网划分稍有区别,但大同小异,都是要最终得出子网id和其掩码;

一个专业名词子网编址,也叫子网寻径,顾名思义子网掩码是确定网络范围的指标;

不理解没关系,事实上我们同样只需要掌握两种计算即可:

①、基于主机数的反向借位计算法——得出子网掩码

同样我们举一个例子来分析,随便一个网络范围:192.168.1.66-88

需求是:计算出包含并最接近此网络范围的网段的子网id和掩码

事实上很简单,还记得子网借位时,我们假设的借位值为M;

首先我们确认一下次网段的标准掩码类,注意这里只说掩码但并不针对对应的ip地址类别;

这里192.168.1.66-88,很明显192.168.1是固定不变的,可以得出其标准掩码应该是24位的C类掩码

那为什么说不针对对应的标准ip类别呢,比如192.168.1-100.1-255,这个网络范围,显然不是个标准ip地址类别,如果确定此范围的标准掩码应该是16位的B类掩码,但其192明显是C类地址的开头,当然文章开头我们说,子网划分不止可以从前往后,也可以从后往前借位,所以,怎么确定取决于你的标准,所有不要纠结于此。

所以我们断定192.168.1.66-88,是192.168.1.0/24标准网段下的一个子网范围,其初始主机号为8位。

那么如何确定此网络范围最贴切的子网掩码呢?事实上很简单:

首先计算出此范围的ip数量,88-66=22;

我们知道子网借位值M,则子网主机号为8-M=N,则每个子网的ip数为2^N=Y;

拿Y和22做比较,包含还要最接近,则为2^5=32>=22;

(但工作中一般只取大于的值,还要考虑其是否为可用ip的范围,是否包含网络地址和广播地址)

所以得出:192.168.1.66-88最贴切的子网掩码为32-5=27位,也就是借了3位主机号的子网;

②、子网ID增量计算法——得出子网地址

由①中得出192.168.1.66-88网络范围的子网掩码为255.255.255.224、借位主机号3位。

从第二节的借位计算中可以得出:

2^3=8(从初始网段工划分了8个子网)、2^5=32(表示每个子网分配的ip地址数为32);

每个子网的子网ID是:192.168.1.(x-1)Y、即子网ID的第四段地址为32的倍数

我们来计算32的倍数来和范围的最小的ip做对比,就32x<=66、即x最贴切取值为:64

则得出192.168.1.66-88的网络地址是:192.168.1.64,掩码为27位;

固从上面两个计算我们可以很容易的获取一个网络范围最贴切的子网地址和子网掩码;


(好的今天就分享到这里,如果您有高见或好的分享,记得留言哦!)


原创文章,转载请注明:转自于公牛博客

本文链接地址:【网络工程】说说子网掩码划分那点事

21
祝福我们的祖国繁荣昌盛
  • 请尽情挥洒您的笔墨!

    不止一次的来,不止一次的去,来来去去,这就是这个博客的魅力!

    2017-10-24 06:55回复

    欢迎来到公牛博客更多分享更多精彩记录美丽点亮生活

    公牛博客·统计碑运行:3059 D
    博文:215 P
    评论:452 S