【⽹⼯的福利来了!】⽤Excel表做的“⼦⽹划分路由聚合计算器”
我们假设有这么⼀个场景。
紫⽵:“⽂彬同学,这⾥有⼏个⼦⽹连续的⽹段,10.108.1.0/24、10.108.2.0/24、10.108.3.0/24、10.108.4.0/24、10.108.5.0/24、10.108.6.0/24,你把这些⽹段聚合⼀下。”
谢⽂彬:“好嘞!”
结果,过了5分钟,谢⽂彬还没有把答案交过去。
当紫⽵⾛到他⾯前时,才发现这⼩⼦还伏在电脑⾯前,⾟⾟苦苦的画着⼆进制呢……
福利来了
捷哥根据⾃⼰对⼦⽹划分、路由聚合的理解,结合多年的⼯作经验,⽤Excel做了⼀个⽐较粗糙,但是⾮常实⽤的Excel表格。⽤这个表格,让你做⼦⽹划分/路由聚合的时候彻底
告别⼆进制换算,让你的⼯作效率更⾼,更准确。
制表原理
咱其实可以说⼀下⽤Excel做路由聚合计算器的原理。
就拿C段聚合来说吧,两段⼦⽹连续C段10.110.0.0/24、10.110.1.0/24,是可以聚合为/23的,即10.110.0.0/23。
如果给你4段⼦⽹连续C段:10.110.0.0/24、10.110.1.0/24、10.110.2.0/24、10.110.3.0/24,10.110.0.0/24和10.110.1.0/24可以聚合为10.110.0.0/23;10.110.2.0/24、10.110.3.0/24可以聚合为10.112.2.0/23,也可以把这4个连续C段聚合为10.
所以,这⾥可以看出来,/23包含2个/24(2个C)、/22包含2个/23和4个/24(4个C)。
于是,我们可以以此类推:
/21包含2个/22、4个/23、8个/24(8个C)
/20包含2个/21、4个/22、8个/23、16个/24(16个C)
直到⼀个/16,就包含255个C了,且C段正好是0-255,完全包含了IP地址256个数字
所以,我们就可以根据这个,在Excel内做⼀个表:
这张表格中的数字,就代表⼀个C段IP⽹段中,第三段的数值。
如果这个IP⽹段的前两段是10.108,则这张表就代表了10.108.0.0/24—10.108.255.0/24。每⼀格都代表⼀个C段。
根据之前说过的,/23为两个C、/22为4个C、/21为8个C、/20为16个C,我们就在这表格中对相应位置的单元格进⾏合并,得到如下这张表:
在这张表内,/23合并两个单元格,/22合并4个单元格,/21合并8个、/20合并16个。
于是,⼀个格⼦的数字是⼀个/24、偶数⼩奇数⼤两个就是/23、包含两个/23的4个格⼦就是/22、包含两个/22的8个格⼦就是/21、⼀⾏16个格⼦就是⼀个/20。
从图上来看,就是16个/20
分别是x.x.0.0/20、x.x.16.0/20、x.x.32.0/20……依次类推
咱举个例⼦:172.31.152.0/24、172.31.153.0/24、172.31.154.0/24、172.31.155.0/24要怎么聚合?
这正好是4个连续C,于是我们就可以在表格中,标出152、153、154、155的位置:
然后和表格上⽅的掩码做⼀个⽐较:
结果你发现, 152、153、154、155正好处于⼀个/22的列内。这说明152、153、154、155可以聚合成⼀个/22,正好是⼀个4C段。
我们选举152、153、154、155中的最⼩值152,得到结果:152.0/22,再加上这个⽹段的A、B两段,就得到结论了:
172.31.152.0/24、172.31.153.0/24、172.31.154.0/24、172.31.155.0/24可以聚合为⼀个⽹段,结果是172.31.152.0/22。
咱再来看⼀个例⼦:
202.106.71.0/24—202.106.78.0/24,这8个连续C应该怎么聚合?
还是⽼规矩,在表格中标出71—78的位置:
再把71—78这段与表格上⽅的掩码长度做⼀个对应,结果你发现:
有⼈会说,那71-78不也都在⼀⾏,都在/20⾥⾯吗?
但是,71-78也就8个连续C,把它直接聚合为/20显然太⼤了。
所以,得到结论是,:
A、202.106.71.0/24—202.106.78.0/24只能聚合202.106.72.0/24—202.106.78.0/24,聚合为202.106.72.0/21。
B、202.106.71.0/24只能单独留出来
C、⽽未提及的202.106.79.0/24也必须作为这个区域预留⽹段了,最好不要分配给其他区域使⽤。
表格的扩充
看到这⾥有⼈会说了,你这张表格只能聚合到/20,那么,我要想聚合到/19、/18、/17怎么办呢?实际上,这张表格还能继续扩充掩码,如下图所⽰:
表格的数字,每⼀⾏都是⼀个/20段。
再根据/19是两个/20、/18是4个/20、/17是8个/20的递进关系,就可以在表格的左边合并单元格,做出/17、/18、/19了
表格的数字,每⼀⾏都是⼀个/20段。
再根据/19是两个/20、/18是4个/20、/17是8个/20的递进关系,就可以在表格的左边合并单元格,做出/17、/18、/19了。
利⽤路由聚合表判断IP⽹段能否聚合。
⾸先说明⼀下,如果IP⽹段太离散,⽐如有⼈常⽤的垃圾IP:192.168.10.0/24、192.168.20.0/24……这肯定不能聚合,想都别想。要判断IP⽹段能否聚合,必须是⼀段连续C。
⽐如,你得到的连续C是192.168.44.0/24—192.168.47.0/24,这正好是4段连续C,4C段的掩码应该是/22,那你就在表格中44-47的格⼦,看看这4个格⼦是不是能正好落在⼀个/22的⼤格⼦⾥。
那如果是192.168.44.0/24到192.168.58.0/24呢?
从44到58,有15个C段,也就是说192.168.44.0/24到192.168.54.0/24是15个C。也只有⼀个/20能装得下15个C。
但是,从表格上来看,44—58没法是没法落在⼀个/20的⼤格⼦⾥的:
所以我们只能细分,我们发现:44-47是在⼀个/22格⼦⾥,48-51在⼀个/22格⼦⾥,52-55在⼀个/22格⼦⾥,剩下的56、57、58还在⼀个/22格⼦⾥,但这个格⼦⾥余了⼀个59。
于是,我们得到了4个/22的4C段:
192.168.44.0/22,192.168.48.0/22、192.168.52.0/22、192.168.56.0/22
这4个/22的4C段肯定是没法聚合成⼀个/20的,因为在表格⾥⾯,只有在同⼀⾏内的⽹段才能聚合,跨⾏的⽹段是不能聚合的。
那就只能考虑把192.168.44.0/22,192.168.48.0/22、192.168.52.0/22、192.168.56.0/22聚合成两个/21了。
但这⾥也要注意⼀点,跨⾏的不能聚合,处于中间位置的不能聚合。
跨⾏的不能聚合,这个好理解,192.168.44.0/22和192.168.48.0/22,⾥⾯包含的C段44—47、48—51就不在⼀⾏,这个肯定不能聚合。
那么192.168.48.0/22、192.168.52.0/22、192.168.56.0/22包含的48—58可都在⼀⾏内,怎么聚合呢?这就要看/21⼤格的落位情况了。如果是192.168.52.0/22、
192.168.56.0/22,只能分别落在两个/21⼤格内,这就叫做:处于中间位置的不能聚合。
最终:192.168.44.0/24到192.168.58.0/24聚合成三段
192.168.44.0/22、192.168.48.0/21、192.168.56.0/22。
处于中间位置不能聚合总结
同样,当/23聚合为/22的时候,如果两个/23分别落在了两个/22⾥⾯,且处于两个/22表格的中间位置,这两个/23也是不能聚合成/22的。
⽐如10.112.2.0/23和10.112.4.0/23,就不能聚合成/22,同样,10.112.66.0/23和10.112.68.0/23,也不能聚合成/22。
这个关系如下图所⽰:
咱在把眼光放远⼀点,如果是/20聚合到/19呢?
也满⾜“中间位置不能聚合”,只是,/20聚合到/19是在左边扩充的位置,要竖着看才⾏。
进⼀步扩充
计算表的进⼀步扩充:
如果你认为这张表只能计算/17-/24的路由聚合,那就错了!这张表可以计算任何掩码长度的路由聚合。
刚才,在我们的表格中,出现的0-255的数字都是IP地址的第三段,也就是C段,每个格⼦的数字代表⼀个/24;但在这个表格中,我们还可以把这0-255的数字都看成是IP地址的第四段,也就是D段。这时,每个数字代表的就是⼀个/32了。
再根据两个/32为⼀个/31(实际上基本没这种情况),两个/31是⼀个/30,两个/30是⼀个/29,我们就可以对表格做出如下扩充:
当你要计算/24的路由聚合的时候,你选中右下表格中的数字,这些数字就和有蓝⾊背景⾊的掩码长度⼤格⼦对齐计算;当你要计算/32主机路由聚合的时候,这些数字就和有⽩⾊背景⾊的掩码长度⼤格⼦对齐计算。
当然,这个表格还可以⽤来计算掩码⼩于/16的时候,咱让表格中的数字代表⼀个/16,再进⾏⼀次扩充:
这样,就得到了⼀个可以计算掩码长度从/9-/32的IP地址划分表了
举例说明表的⽤法
最后,我们举⼏个例⼦,告诉你这个表怎么⽤。
【例1】写出下列地址的⼦⽹ID和⼴播地址,并说出这个地址是否可⽤。
这⾥有9个地址,但是⼦⽹掩码最长的是/16。我们要先进⾏⼀个分类,把掩码长度⼩于/24的分成⼀类,把掩码长度⼤于/24的分成⼀类。
于是有:
172.18.31.255/16、10.16.100.100/18、10.31.255.255/22、172.250.32.158/23为⼀类。
10.0.20.56/29、192.168.100.72/30、192.168.50.1/30、192.168.15.255/28为⼀类
掩码取值在[24,32]的,参照计算表中⽩底⾊的计算格⼦,取IP地址中的第四段和表格中的数字对照。这个相对简单⼀些:
⽐如10.0.20.56/29,我们就看数字56落在哪个/29掩码格⼦的位置:
再看⼀个:192.168.15.255/28,到255与/28⼤格对应的位置:
再看192.168.100.72/30,在表格中标出72的位置:
如果是掩码范围在[16,24]之间的,则相对来说要⿇烦⼀些。我⽤10.16.100.100/18为例来说明⼀下。
⾸先要确认,10.16.100.100/18所在的⼦⽹ID。这时我们把表格内的数值看做是IP地址的C段,到/18掩码和数值100重合的区域,把100所在的/18的所有数值全选
从图上可以看到,当100作为IP地址的第四段时,它既不是所选范围的最⼩值,也不是最⼤值,肯定是⼀个可⽤地址。
所以,10.16.100.100/18既不是⼦⽹ID也不是⼴播地址,所以是⼀个可⽤IP地址。只是在现⽹标准环境中,不可能有掩码那么短的IP地址。
它的⼦⽹ID是10.16.64.0/18,⼴播地址是10.16.127.255。
你要验算也没关系,打开ENSP模拟器,把这个地址配置在⼀个UP的物理接⼝上
【例2】下列⽹段不能聚合成⼀个掩码尽可能短的⼤段?
第⼀组:10.108.64.64/26、10.108.64.128/26
第⼆组:10.112.11.0/24--10.112.20.0/24
第三组:10.112.81.0/24--10.112.90.0/24
先看第⼀组:10.108.64.64/26、10.108.64.128/26,掩码长度⼤于/24,所以把表格中的数值看成是IP地址的D段。
在表格上先将这两个/26的标出来,到左下⾓/26的位置,可以看到10.108.64.64/26和10.108.64.128/26正好位于两个/25的中间位置,这属于“中间位置不能聚合”,所以,这两个⽹段不能聚合成/25的⼤段。
第⼆组:10.112.11.0/24--10.112.20.0/24
这是C段地址聚合,所以我们要把11-20在表格中标出来,和灰⾊底⾊的掩码格⼦对应
从11-20有“换⾏”的情况,所以11-20肯定不能聚合成⼀个⼤段了。但仔细看这个表格
用路由器连接两台电脑11.0/24的C段是⼀个奇数,连续C⾥⾯的第⼀个段是奇数的话,这个⽹段就只能单独出来了。所以11.0/24只能单独成⼀段。
所以,要聚合成⼀个⼤段还有个先决条件:C段聚合时,第⼀个C段只能是偶数。
再看从12.0/24以后的,12、13、14、15落在了⼀个/22的格⼦⾥,但15以后有换⾏,所以12、13、14、15聚合成12.0/22。
剩下的16、17、18、19、20,是5个C,⽽16-19⼜落在了⼀个/22的格⼦⾥,所以16、17、18、19聚合成16.0/22,剩下的20.0/24也只能单独出来了
最终10.112.11.0/24--10.112.20.0/24只能聚合成4个⽹段
10.112.11.0/24、10.112.12.0/22、10.112.16.0/22、10.112.20.0/24
第三组:10.112.81.0/24--10.112.90.0/24
就留给读者⾃⼰去练习吧,在评论区把答案告诉我。
【例3】根据此表格做IP地址规划题
某公司共有⽣产部、研发部、销售部、财务部、客服部5个部门和1组服务器,其中⽣产部和研发部各有主机50台,销售部、财务部和客服部各有主机20台,服务器组有主机6台。该公司使⽤C类地址192.168.10.0/24,应该如何划分⼦⽹呢?
我们把表格稍微修改⼀下,然后直接往⾥⾯标记即可。按照主机数量多从到少进⾏标记。
给你的地址是192.168.1.0/24,让你给这段地址划分⼦⽹,则表格中的数字肯定是IP的D段了。
先标记⽣产部的50台,⽤红底⽩字进⾏标记:
再有⼀个50台主机的部门是研发部,由于前4⾏的数字已经分配给⽣产部了,所以研发部从数字的第5⾏,即64的位置还是标记,正好也是4⾏数字,也是⼀个/26。
然后就是销售部、财务部和客服部各有主机20台,这个我们直接在表格中标记
20个主机就需要标记20个数字,⽽20个数字正好占两⾏。两⾏也就是⼀个/27
所以,销售部、财务部和客服部分配的地址就是三个/27,分别是:
192.168.10.128/27、192.168.10.160/27、192.168.10.192/27
还剩余⼀个/27没有分配。
⽽此时还有服务器组有主机6台,于是,我们在最后224开始的位置标记6个数字。见图中的最上⽅掩码/29和最下⽅绿底⽩字标记的数字。