计网实验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地址 | |
---|---|---|---|
网络标志位 | 0 | 10 | 110 |
IP地址范围 | 0.0.0.0~127.255.255.255 | 128.0.0.0~191.255.255.255 | 192.0.0.0~223.255.255.255 |
可用IP地址范围 | 1.0.0.1~127.255.255.254 | 128.0.0.1~191.255.255.254 | 192.0.0.1~223.255.255.254 |
是否可以分配给主机使用 | 是 | 是 | 是 |
网络数量(个) | 126 (27-2) | 16384 (214) | 2097152 (221) |
适用范围 | 大量主机的大型网络 | 中等规模主机数的网络 | 小型局域网 |
对于特殊的IP地址
网络号 | 主机号 | 是否可以作为源地址 | 是否可以作为目的地址 | 备注/描述 |
---|---|---|---|---|
全为0 | 全为0 | 允许 | 禁止 | 表示本网主机 |
全为0 | Host ID | 允许 | 禁止 | 表示特定主机 |
全为1 | 全为1 | 禁止 | 允许 | 定向广播地址 |
127 | 任意合法的值 | 允许 | 允许 | 迂回地址,用于本地测试 |
Network ID | 全为1 | 禁止 | 允许 | 直接广播地址 |
A类
- 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
因此,我们可以得到
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类地址 | 0 | 0.0.0.0 | 127.255.255.255 | /8 | 255.0.0.0 |
B类地址 | 10 | 128.0.0.0 | 191.255.255.255 | /16 | 255.255.0.0 |
C类地址 | 110 | 192.0.0.0 | 223.255.255.255 | /24 | 255.255.255.0 |
D类地址 (组播) | 1110 | 224.0.0.0 | 239.255.255.255 | /4 | 未定义 |
E类地址 (保留) | 1111 | 240.0.0.0 | 255.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.0 | 192.168.233.1 | 192.168.233.14 | 192.168.233.15 |
192.168.233.16 | 192.168.233.17 | 192.168.233.30 | 192.168.233.31 |
192.168.233.32 | 192.168.233.33 | 192.168.233.46 | 192.168.233.47 |
… | … | … | … |
192.168.233.208 | 192.168.233.209 | 192.168.233.222 | 192.168.233.223 |
192.168.233.224 | 192.168.233.225 | 192.168.233.238 | 192.168.233.239 |
192.168.233.240 | 192.168.233.241 | 192.168.233.254 | 192.168.233.255 |
如果子网掩码前面有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进制,因为最后一位的网络号和主机号合起来计算为十进制,就导致了有些时候难以理解。同样可以分配的地址是:删掉一个广播IP1111
(192.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的计算器调到程序员模式计算下二进制
网关
网关是一个普通的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 | 子网掩码 | |
---|---|---|---|---|---|---|
子网1 | 192.168.18.0 | 192.168.18.1 | 192.168.18.126 | 192.168.18.127 | 192.168.18.0/25 | 255.255.255.128 |
子网2 | 192.168.18.128 | 192.168.18.129 | 192.168.18.158 | 192.168.18.159 | 192.168.18.128/26 | 255.255.255.192 |
子网3 | 192.168.18.192 | 192.168.18.193 | 192.168.18.222 | 192.168.18.22 | 192.168.18.192/27 | 255.255.255.224 |
子网4 | 192.168.18.224 | 192.168.18.225 | 192.168.18.254 | 192.168.18.255 | 192.168.18.224/27 | 255.255.255.224 |
实验
配好第一个子网
信息
【子网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
开配
找出交换机来,再找出4个电脑来
用这个auto线连起来
给他们配上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
还记得怎么配IP吗?
像这样:
这里可以改底色,画正方形哦
把几台电脑依次配好,大概最后是这样,你也可以随便标注一下哦
如何修改主机下面的文字?
尝试相互之间ping一下,都是互通滴
配好第二个子网
信息
第二个子网的信息如下:
【子网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,不要填错了哦
配完之后大概这个样子!
也可以测测相互通不通
配好第三个子网
信息
第三个子网的信息如下:
【子网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
继续配就好啦
当当
配好第四个子网
信息
第四个子网的信息如下:
【子网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
重复性滴工作
当当
选择路由器
不要用交换机
因为是四个网络,如果你用交换机作为核心的话,四个网络之间不会互通。
如果进行抓包可以发现,ARP请求不会得到回应。
喵呀,老师的课上内容少一点,但是也可以做啦!
为了完成作业,下面内容变得相对于课上要复杂一些。
咱们也不弄的太复杂,BGP之类的就先不用啦,从简单说下原理。
就用静态路由寻路就可以。
路由器寻路
下面是理论环节,实际步骤可以继续往下翻即可
对于静态路由。
这是两个路由器,他们之间要想相互访问,就需要路由器在同一个网段下。
假设,路由器0还接着,192.168.18.1这个ip
如果192.168.18.0/24有请求来到路由器0,想继续访问192.168.18.226/27
我们通过拓扑图很容易可以看到,流量发给路由器 1即可。
但是,我们路由器不是AI,不是GPT3,他不知道包要发给谁。
这个时候我们就要手动配置路由表的下一跳。
这样子就可以啦。
主线不相关:如何显示接口
ctrl+R
、
选择这个
配置路由器信息
选2911路由器
因为2911有三个网口,可以省一点设备费(也省点人工费
要两个2911路由器。
路由器之间的IP地址
- 路由器0:10.0.0.1/8
- 路由器1:10.0.0.2/8
把路由器之间连起来
拿出两个路由器之后,用AUTO闪电线连起来。(你也可以在两个路由器之间放个交换机,不影响滴)
配置路由器0的IP地址
- 选择路由器
- config->接口0/0->打开网口->填入IP 10.0.0.1/8
配置路由器1的IP地址
- 选择路由器
- config -> 0/0 -> 打开->配置IP:10.0.0.1/8
路由器 0 连入两个子网
注意,接口和网关要对应起来,这里的路由器0/1口对应的是子网1的网关IP。
你连的接口可能跟我的不一样(我的是0/1连到子网1,你可能是0/2连到子网1)
- 用闪电线连接两个子网的交换机(如果闪电线连不上,就用黑色的线直接连就可以端口选fastethernet<->GigabitEtherbet就可以)
- 记下连接的是路由器的哪个端口
- 配置路由器的IP地址,路由器作为子网的网关
配置接口0/1
- IP地址:192.168.18.1
- 子网掩码:255.255.255.128
- 没错,路由器就是网关
配置接口0/2
- IP地址:192.168.18.129
- 子网掩码:255.255.255.192
路由器 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
目前的链路图
配置路由器的静态路由
路由器能够把连接到自身的网络进行相互转发
在路由器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,添加静态路由
如图,添加两个静态路由。
在路由器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
关闭即可
至此,完成配置
最终网络拓扑图
尝试互相访问网络
尝试用
192.168.18.196
- 访问192.168.18.228 (子网4)
- 访问192.168.18.157 (子网2)
- 访问192.168.18.4 (子网1)
访问均可以互通,ping可以正常发包回包,表示双方均可以正常通信。
192.168.18.4
- 192.168.18.228 (子网4)
- 192.168.18.196 (子网3)
- 192.168.18.157 (子网2)
- 10.0.0.2
均可以互通
路由追踪:
192.168.18.227
文件下载
实验中的pkt文件
https://pic.icee.top/blog/pic_bed/net_3_by_dayi_a3e3cef2-764c-11ed-a1eb-0242ac120002.zip
实验结束。