计网实验3 子网掩码与划分子网

更新中:当前1.013,记得有空刷新网页。

主要的是理解这个概念,实操步骤其实很快很容易。

更新链接:https://type.dayiyi.top/index.php/archives/109/

文件下载

如果你实在配不动了,下这个文件参考一下即可,这是本文中已经配完的文件

实验中的pkt文件

https://cute-pic.cute.ac.cn/blog/pic_bed/net_3_by_dayi_a3e3cef2-764c-11ed-a1eb-0242ac120002.zip

https://p.dabbit.net/blog/pic_bed/net_3_by_dayi_a3e3cef2-764c-11ed-a1eb-0242ac120002.zip

IP地址

此处说的都是IPV4

  • IP(Internet Protocol Address)
  • 由4个字节,即32位二进制组成
  • 将每个字节分为一组,共分为4组
  • 也就是
  • 00000000.00000000.00000000.00000000

IPV4地址划分

目前网络绝大部分用的CIDR(无类别域间路由),已经不区分ABC类地址。但是就像原子是电子云,但是原子轨道仍有参考价值。

RFC1918对IP地址的分类 | 分类网络

A类IPv4地址B类IPv4地址C类IPv4地址
网络标志位010110
IP地址范围0.0.0.0~127.255.255.255128.0.0.0~191.255.255.255192.0.0.0~223.255.255.255
可用IP地址范围1.0.0.1~127.255.255.254128.0.0.1~191.255.255.254192.0.0.1~223.255.255.254
是否可以分配给主机使用
网络数量(个)126 (27-2)16384 (214)2097152 (221)
适用范围大量主机的大型网络中等规模主机数的网络小型局域网

image-20221208004634851

对于特殊的IP地址

网络号主机号是否可以作为源地址是否可以作为目的地址备注/描述
全为0全为0允许禁止表示本网主机
全为0Host ID允许禁止表示特定主机
全为1全为1禁止允许定向广播地址
127任意合法的值允许允许迂回地址,用于本地测试
Network ID全为1禁止允许直接广播地址

image-20221208004649831A类

  • 0.0.0.0 表示这个网络上的这个主机,如果你连的是互联网,这个就是全网的任意主机。可以这么感性理解,路由器和你在一个网络上,路由器把上的其他主机的信息发送给你,类似邮差,这样发给你。

D类

  • 网络标志位 1110
  • 224.0.0.0~239.255.255.255
  • 不可分配至主机,组播地址

E类

  • 网络标志位 11110
  • 240.0.0.0~247.255.255.255

广播地址

  • 255.255.255.255
  • 对应的二进制全为1是本地广播地址。
  • 广播地址同样的也是发送给FF:FF:FF:FF:FF:FF,交换机广播给所有的接口。

本地回环

  • 127.0.0.1-127.255.255.254

    访问到的都是自己,也叫作回环。

网络标志位

这是在二进制下的。

都是8位地址的开头两位或者三位

  • A类的开头:00...
  • B类的开头:10...
  • C类的开头:110...

比如

B类

00000000.00000000.00000000.00000000
10...... ........ ........ ........

↑这个
8位的二进制,如果第一位是1,后面的值再怎么变,最小值也是2^7=128了
由于是10
那样最大情况就是:
10111111 = 2^7+0*2^6+2^5+2^4+2^3+2^2+2^1+2^0 = 191

这样B类地址主机的范围就是128-191.xxx.xxx.yyy
其中xxx的范围是0-255
其中yyy的范围是1-254

C类

C类地址也同理

11000000.00000000.00000000.00000000
到
11011111.11111111.11111111.11111111

实际上就是这个IP段,但是对于全0的叫网络号,全1的叫广播

而
11011111
对应的十进制是223

image-20221207113010293

因此,我们可以得到

C类的地址的范围

192.0.0.0~223.255.255.255

网络号和主机号

来个奇怪的例子。

网络号相当于

  • 兔子猴子猫猫家园

主机号相当于

  • 1号楼304室
  • 章鱼哥的小屋子
  • 海绵宝宝家
  • 派大星的石头
  • 板栗猫的家
  • 板栗猫的电脑

如果我是一名开发商,我现在申请了猫猫家园的地皮(也就是网络号)

现在我可以去把每块地皮分配给不同的猫。(也就是主机号)

比如我申请了192.168.233.0/24这个IP地址作为猫猫家园的地皮

假设已经知道了,可以分的地皮是这个范围

  • 192.168.233.1
  • 192.168.233.2
  • ...
  • 192.168.233.253
  • 192.168.233.254

你把192.168.233.66分给了派大星的电脑

你把192.168.233.67分给了派大星的手机

你把192.168.233.6分给了板栗猫,虽然板栗猫有200多个设备,但是只能有一个设备在线。

你把192.168.233.10分给了章鱼哥的竖笛音乐服务器

你把192.168.233.12分给了章鱼哥的爪机

其中192.168.233.0叫做网络号也就是猫猫家园的网络号

而对于192.168.233.66 ,192.168.233.10这些IP中的,66,10就叫做主机号啦

如果在二进制下

192     .168     .233      .66    
11000000|10101000|1110 1001|00110110
<------------------------->|<------>
           网络号              主机号

前面这些是网络号,后面的就是主机号啦

子网掩码

上面的划分也引发出了第二个问题。

如何区分网络号和主机号。

这就是子网掩码要做的事情。

子网掩码类似于 IP 地址,但仅在网络内部使用。路由器使用子网掩码将数据包路由到正确的位置。在互联网上传输的数据包中并不含子网掩码——这些数据包仅指示目标 IP 地址,路由器会将其与子网进行匹配。

而对于分类网络:

分类网络是在是1993年之前,未引入CIDR在互联网,使用的一种网络架构架构。

在分类网络中|没有引入CIDR的时候

我们默认认为是这样:

其中x代表网络号,y代表主机号

A类的地址:
0.  0.  0.  0   = 00000000.00000000.00000000.00000000
127.255.255.255 = 01111111.11111111.11111111.11111111
                  0xxxxxxx.yyyyyyyy.yyyyyyyy.yyyyyyyy
B类的地址:    
128.  0.  0.  0 = 10000000.00000000.00000000.00000000
191.255.255.255 = 10111111.11111111.11111111.11111111
                  10xxxxxx.xxxxxxxx.yyyyyyyy.yyyyyyyy
    
C类的地址:  
192.  0.  0.  0 = 11000000.00000000.00000000.00000000
223.255.255.255 = 11011111.11111111.11111111.11111111
                = 110xxxxx.xxxxxxxx.xxxxxxxx.yyyyyyyy
   
分类前缀码开始地址结束地址对应子网掩码默认子网掩码
A类地址00.0.0.0127.255.255.255/8255.0.0.0
B类地址10128.0.0.0191.255.255.255/16255.255.0.0
C类地址110192.0.0.0223.255.255.255/24255.255.255.0
D类地址 (组播)1110224.0.0.0239.255.255.255/4未定义
E类地址 (保留)1111240.0.0.0255.255.255.255/4未定义

约定俗称,也就可以根据一个IP地址,就确定网络号主机号

但是,这样子,A类地址只能分给128个人

假设小兔子有一个服务器,于是申请了A类,但是分配的数量是255*255*255-2=16581375-2=16581373个IP地址。

这造成了很大的浪费,而且其他没有IP的猫猫,狗狗,分配不到IP,更别提网上冲浪了。

于是引入了CIDR

如果没有引入CIDR,也就是子网长度是不可变的。

子网掩码其实挺简单滴,把网络号的位数设置为1,主机号设置为0

192     .168     .233      .66    
11000000|10101000|11101001 |00110110
<------------------------->|<------>
           网络号              主机号
    
上面是一个C类的IP地址。

我们已经知道或者说要规定网络号是192.168.233.0/24

于是,子网掩码就是255.255.255.0

            192     .168     .233      .66    
IP地址:      11000000|10101000|11101001 |00110110
子网掩码:      11111111|11111111|11111111 |00000000 
            <------------------------->|<------>
                     网络号              主机号
而对应的十进制就是255.255.255.0

对于A类的地址同理

10.  123.  123.  0   = 00000000.00000000.00000000.00000000
255.   0.    0.  0   = 11111111.00000000.00000000.00000000
                       <------>|<------------------------->
                         网络号              主机号

引入CIDR

但是这样仍然不够,还是没有解决IP地址分配过剩的问题。

于是,引入CIDR,CIDR叫做无类别域间路由

核心是:可变长子网掩码(VLSM)

  • 可以指定任意长度的前缀的可变子网掩码。
  • 将多个连续的前缀聚合
  • 根据实际情况,而不是分类网络中固定的掩码来分配IP

而引入后,分类网络中的规定只是可以用来参考。

实际上完全可以忽视分类网络的规定。

举个例子

如果直观的感受一下,就是大概这个样子:

  • 255.255.255.0 对应的二进制是

    11111111.11111111.11111111.00000000 
    前面有24个1                   8个0
    
    假设有一个网络号
    网络号: 192.168.233.0
    子网掩码:255.255.255.0

    如果网络号为:192.168.233.0,则可以直接简单记为192.168.233.0/24 ,前面是网络号,后面是子网掩码长度。

  • 如果我们的实际需求不需要根据A类地址分配那么多主机,我们只需要分配240个左右即可

    那么可以这么做

    网络号:  10.  1. 1. 0
    子网掩码:255.255.255.0 对应就是/24
    
    二进制下是这个样子:
    网络号  : 00001010.00000001.00000001.00000000
    子网掩码: 11111111.11111111.11111111.00000000
    
    可以分配的IP
    10.1.1.1-254
    
    其中 10.1.1.0记录为网络号,254

    上面的例子中的CIDR方式的话,可以记作:10.1.1.0/24

  • 同样的,我也可以分配更多的主机:10.0.0.0/8

    10.0.0.0/8
    
    00001010.00000000.00000000.00000000 -> 10 .1.1.0 |网络号
    11111111.00000000.00000000.00000000 -> 255.0.0.0 |子网掩码,只有8位
  • 上面的都是常规的子网掩码的例子,/24 (255.255.255.0)/16 (255.255.0.0)/8 (255.0.0.0),比较符合十进制的认知,而下面如果不是这三个数,是否还是可以的呢?

    是可以的。

这似乎解决了一定的IP不够用的问题

我可以在分配的时候不用分配整个A类,我虽然分给猫猫的是A类的IP,但是实际上,我只给猫猫了一个/24,也就是只有254个可用IP。

但是似乎也没有完全解决。

板栗只有8个设备,我假设分配给他254个IP,就会有浪费。

非 常规地址位 的划分

目前我有一个IP段,192.168.233.0/24

我分给板栗IP,我只想给它分配14个IP,应该怎么做?

先给出答案:

我利用192.168.233.0/28,划分出16个子网。

每个子网分别是:

子网网段起始IP结束IP广播地址
192.168.233.0192.168.233.1192.168.233.14192.168.233.15
192.168.233.16192.168.233.17192.168.233.30192.168.233.31
192.168.233.32192.168.233.33192.168.233.46192.168.233.47
192.168.233.208192.168.233.209192.168.233.222192.168.233.223
192.168.233.224192.168.233.225192.168.233.238192.168.233.239
192.168.233.240192.168.233.241192.168.233.254192.168.233.255

image-20221208020404505

如果子网掩码前面有28个1,对应的子网掩码是255.255.255.240

我只需要要将其中的一个子网给板栗即可。

如果我是板栗猫

dayi给我了三个子网

第一个是 192.168.233.0/28

第二个是 192.168.233.16/28

第三个是 192.168.233.224/28

这三个子网都拥有16个IP地址,可以分配的地址有14个(除去一个网络号和广播IP)

上面并不好理解,但是如果再二进制下,还是挺好理解的。

在二进制下就是这样的:

 192     .168     .233     .1
 11000000.10101000.11101001.0000   0001 <-IP地址
 11111111.11111111.11111111.1111   0000 <-子网掩码
|<------------网络号------------>|<-主机号->       

可以看到,IP地址的后四位的主机号,是可以分配的。

总共有4位二进制,2x2x2x2=16(排列组合),正好可以分配16个IP,去掉一个广播IP:1111 = 15(192.168.233.15),去掉一个网络号:0000 = 0(192.168.233.0),正好有14个IP地址可以正常用滴

对于第二个子网:192.168.233.16/28

 192     .168     .233     .17
 11000000.10101000.11101001.0001   0001 <-IP地址
 11111111.11111111.11111111.1111   0000 <-子网掩码
|<------------网络号------------>|<-主机号->   

两者的差别也就是网络号中有差别,主机号仍然是4位二进制。

但是如果将这个东东转换到10进制,因为最后一位的网络号和主机号合起来计算为十进制,就导致了有些时候难以理解。同样可以分配的地址是:删掉一个广播IP1111192.168.233.31,0001|1111=31),删掉一个网络号IP 0000 ( 192.168.233.16 ,0001|0000=16)

同样的:

而对于第三个子网:192.168.233.224/28

 192     .168     .233     .225
 11000000.10101000.11101001.1110   0001 <-IP地址
 11111111.11111111.11111111.1111   0000 <-子网掩码
|<------------网络号------------>|<-主机号->      

广播IP:192.168.233.239 ,1110 1111 = 239

网络号:192.168.233.224 ,1110 0000 = 224

过程中可以用win10,win11的计算器调到程序员模式计算下二进制

image-20221207184611556

网关

网关是一个普通的IP地址,任何电脑都可以做网关。

但是网关还有一个邮递员的作用。

比如,当前网络是:192.168.233.0/24

我想访问 type.dayiyi.top 也就是这个IP39.105.181.66

当前网络里面的主机,我根据子网掩码算出,39.105.181.66,不是当前网络的IP,于是我告诉网关,兔子想网上冲浪。

于是网关收到信息,把想冲浪的消息发给网关的网关,一层一层的找(实际过程涉及BGP,挺麻烦滴),直到找到这个主机。然后再一层一层的返回数据,最后网关就把网页发给你啦!

操作内容分析

现要将一C类网段地址192.168.18.0/24分成四个子网(主机数为80,50,24)。若按固定子网掩码的方式来划分该C类IP地址,要将该IP划分成4个子网,需要使用8位主机号的三位(可划分2^3-2=6个子网),剩下的5位主机号最多只能容纳2^5-2=30台主机,不满足要求。

根据要求

  • 需要划分的子网段是192.168.18.0/24
  • 要分成4个子网
  • 前3个子网的主机数量为:80 50 24
  • 最后一个子网10台公共设备(根据原文后面推出)

如果均等划分,最后可以得到的IP数量不足

于是可以这么划分

  • 192.168.18.0/24 (可用:256台主机)

    • 192.168.18.0/25 (可用:126台主机 | 子网1:80台)
    • 192.168.18.128/25(可用:126台主机)

      • 192.168.18.128/26 (可用:62台主机|子网2:50台)
      • 192.168.18.192/26 (可用:62台主机)

        • 192.168.18.192/27 (可用:30台主机|子网3:24台)
        • 192.168.18.224/27 (可用:30台主机|子网4:10台)

这样就可以划分为4个子网啦

最后可以得到这个表格

子网网段起始IP结束IP广播地址CIDR子网掩码
子网1192.168.18.0192.168.18.1192.168.18.126192.168.18.127192.168.18.0/25255.255.255.128
子网2192.168.18.128192.168.18.129192.168.18.158192.168.18.159192.168.18.128/26255.255.255.192
子网3192.168.18.192192.168.18.193192.168.18.222192.168.18.22192.168.18.192/27255.255.255.224
子网4192.168.18.224192.168.18.225192.168.18.254192.168.18.255192.168.18.224/27255.255.255.224

image-20221207205652060

实验

配好第一个子网

信息

【子网1-主机数量80台】

  • CIDR:192.168.18.0/25
  • 起始IP:192.168.18.1
  • 终止IP:192.168.18.126
  • 网关:192.168.18.1
  • 子网掩码:255.255.255.128
  • 广播地址:192.168.18.127
  • 网络号:192.168.18.0

开配

  1. 找出交换机来,再找出4个电脑来

    image-20221207205030507

  2. 用这个auto线连起来

    image-20221207205114250

  3. 给他们配上IP

    第一个子网是: 192.168.18.0/25 对应的子网掩码是: 255.255.255.128 ,网关就配192.1688.18.1

    • 192.168.18.1 (给路由器留的IP,也作为网关啦,就临时不要用啦)
    • 192.168.18.2
    • 192.168.18.3
    • 192.168.18.4
  4. 还记得怎么配IP吗?

    image-20221207205819732

  5. 像这样:

    image-20221207205900429

  6. 这里可以改底色,画正方形哦

    image-20221207210325169

  7. 把几台电脑依次配好,大概最后是这样,你也可以随便标注一下哦

    image-20221207212657880

  8. 如何修改主机下面的文字?

    image-20221207214515027

  9. 尝试相互之间ping一下,都是互通滴

    image-20221207210955531

配好第二个子网

信息

第二个子网的信息如下:

【子网2-主机数量50台】

  • CIDR:192.168.18.128/26
  • 起始IP: 192.168.18.129
  • 终止IP:192.168.18.158
  • 子网掩码:255.255.255.192
  • 网关:192.168.18.129
  • 广播地址:192.168.18.159
  • 网络号:192.168.18.128

开配

  • IP的分配,这里网关就用192.168.18.129啦

    • 192.168.18.129 等会分给路由器,作为网关
    • 192.168.18.130-158 任意取哦
  • 子网掩码是:255.255.255.192,不要填错了哦

    image-20221207212927691

  • 配完之后大概这个样子!

    image-20221207213442125

  • 也可以测测相互通不通

    image-20221207213736390

配好第三个子网

信息

第三个子网的信息如下:

【子网3-主机数量24台】

  • CIDR:192.168.18.192/27
  • 起始IP: 192.168.18.193
  • 终止IP:192.168.18.222
  • 子网掩码: 255.255.255.224
  • 网关:192.168.18.193
  • 广播地址:192.168.18.223
  • 网络号:192.168.18.192

开配

其实就是重复性的工作啦

  • 分配IP

    • 192.168.18.193 作为路由器IP
    • 192.168.18.194-222 都可以分
  • 子网掩码

    255.255.255.224
  • 网关

    Q:可不可以不是这个IP?A:可以,但是大多数的网关都是最开始的地址或者最后一个地址
    192.168.18.193
  • 继续配就好啦

    image-20221207214313382

    image-20221207214653884

  • 当当

    image-20221207214927687

配好第四个子网

信息

第四个子网的信息如下:

【子网4-主机数量10台-访客】

  • CIDR:192.168.18.224/27
  • 起始IP: 192.168.18.225
  • 终止IP:192.168.18.254
  • 子网掩码: 255.255.255.224
  • 网关: 192.168.18.225
  • 广播地址:192.168.18.255
  • 网络号:192.168.18.224

开配

重复性的工作啦

  • 分配IP

    • 192.168.18.225 作为路由器IP
    • 192.168.18.226-254 都可以分
  • 子网掩码

    255.255.255.224
  • 网关

    192.168.18.225
  • 重复性滴工作

    image-20221207215244209

  • 当当

    image-20221207215708137

选择路由器

不要用交换机

  • 因为是四个网络,如果你用交换机作为核心的话,四个网络之间不会互通。

    • 如果进行抓包可以发现,ARP请求不会得到回应。

      image-20221207220220077

喵呀,老师的课上内容少一点,但是也可以做啦!

为了完成作业,下面内容变得相对于课上要复杂一些。

咱们也不弄的太复杂,BGP之类的就先不用啦,从简单说下原理。

就用静态路由寻路就可以。

路由器寻路

下面是理论环节,实际步骤可以继续往下翻即可

对于静态路由。

这是两个路由器,他们之间要想相互访问,就需要路由器在同一个网段下。

image-20221207230352968

假设,路由器0还接着,192.168.18.1这个ip

image-20221207230633271

如果192.168.18.0/24有请求来到路由器0,想继续访问192.168.18.226/27

我们通过拓扑图很容易可以看到,流量发给路由器 1即可。

但是,我们路由器不是AI,不是GPT3,他不知道包要发给谁。

这个时候我们就要手动配置路由表的下一跳。

image-20221207231326319

这样子就可以啦。

主线不相关:如何显示接口

  • ctrl+R

    image-20221207220848417

  • 选择这个

    image-20221207220920237

配置路由器信息

选2911路由器

因为2911有三个网口,可以省一点设备费(也省点人工费

要两个2911路由器。

路由器之间的IP地址

  • 路由器0:10.0.0.1/8
  • 路由器1:10.0.0.2/8

把路由器之间连起来

拿出两个路由器之后,用AUTO闪电线连起来。(你也可以在两个路由器之间放个交换机,不影响滴)

image-20221207232118709

配置路由器0的IP地址

  • 选择路由器
  • config->接口0/0->打开网口->填入IP 10.0.0.1/8

image-20221207232330041

配置路由器1的IP地址

  • 选择路由器
  • config -> 0/0 -> 打开->配置IP:10.0.0.1/8

image-20221207232643871

路由器 0 连入两个子网

注意,接口和网关要对应起来,这里的路由器0/1口对应的是子网1的网关IP。

你连的接口可能跟我的不一样(我的是0/1连到子网1,你可能是0/2连到子网1)

  • 用闪电线连接两个子网的交换机(如果闪电线连不上,就用黑色的线直接连就可以端口选fastethernet<->GigabitEtherbet就可以)
  • 记下连接的是路由器的哪个端口
  • 配置路由器的IP地址,路由器作为子网的网关

image-20221207233453832

配置接口0/1
  • IP地址:192.168.18.1
  • 子网掩码:255.255.255.128
  • 没错,路由器就是网关

image-20221207233631609

配置接口0/2
  • IP地址:192.168.18.129
  • 子网掩码:255.255.255.192

image-20221207233725019

路由器 1 连入两个子网

跟路由器0同理

实际的接口是1还是2请根据你连接的子网和端口来确定
配置接口0/1
  • IP地址:192.168.18.225
  • 子网掩码:255.255.255.224
配置接口0/2
  • IP地址:192.168.18.193
  • 子网掩码:255.255.255.224

image-20221207234035674

目前的链路图

image-20221207234320268

配置路由器的静态路由

路由器能够把连接到自身的网络进行相互转发
在路由器0配置静态路由
  • 我们知道以下两个网络,应该是通过路由器1转发的。

    • 192.168.18.224/27
    • 192.168.18.192/27
  • 路由器1在路由器之间的内网IP为:10.0.0.2/8
  • 于是我们希望访问224和192的网络的时候,流量转发到10.0.0.2即可。
  • 于是我们配置如下的静态路由

    • 静态路由1

      • 网络号:192.168.18.224
      • 子网掩码:255.255.255.224
      • 下一跳:10.0.0.2
    • 静态路由2

      • 网络号:192.168.18.192
      • 子网掩码:255.255.255.224
      • 下一跳:10.0.0.2
  • 配置方法入下:

    • 打开路由,进入config,添加静态路由

      image-20221207235202671

    • 如图,添加两个静态路由。

      image-20221207235244217

在路由器1配置静态路由

我们目前路由器0知道了哪些流量应该转发给1,但是1并不知道哪些流量应该转发给0

于是进行如下配置:

  • 打开路由器1
  • 添加两条静态路由

    • 静态路由1

      • 网络号:192.168.18.0
      • 子网掩码:255.255.255.128
      • 下一跳:10.0.0.1
    • 静态路由2

      • 网络号:192.168.18.128
      • 子网掩码:255.255.255.192 (注意这里跟上面不一样)
      • 下一跳:10.0.0.1
  • 关闭即可

    image-20221207235848351

至此,完成配置

最终网络拓扑图

image-20221208001956378

尝试互相访问网络

尝试用

  • 192.168.18.196

    • 访问192.168.18.228 (子网4)
    • 访问192.168.18.157 (子网2)
    • 访问192.168.18.4 (子网1)
    • 访问均可以互通,ping可以正常发包回包,表示双方均可以正常通信。

      image-20221208001924033

      image-20221208002046638

  • 192.168.18.4

    • 192.168.18.228 (子网4)
    • 192.168.18.196 (子网3)
    • 192.168.18.157 (子网2)
    • 10.0.0.2
    • 均可以互通

      image-20221208002545201

      image-20221208002708671

  • 路由追踪:

    • 192.168.18.227

      image-20221208002903154

      image-20221208002952839

文件下载

实验中的pkt文件

https://pic.icee.top/blog/pic_bed/net_3_by_dayi_a3e3cef2-764c-11ed-a1eb-0242ac120002.zip

实验结束。

最后修改:2022 年 12 月 09 日
如果觉得我的文章对你有用,请随意赞赏