Dry Realm

Get busy living

Category

  • DevOps
  • Javascript
  • Review
  • 一些技巧
  • 其它
  • 学习过程中的所感所想
  • 拼命学习
  • 那些年的所见所闻
  • 随笔

Tags

  • Node.js
  • MongoDB
  • HTTP
  • linux
  • es6
  • express
  • 运维
  • typescript
  • docker
  • 面试总结
  • 正则表达式
  • javascript
  • vscode
  • 大黑猫
  • 新博客框架
  • 西安
  • 3rd-lib
  • 南京
  • 文字
  • new life
  • 子网掩码
  • Git
  • 数据库连接
  • 第三方库
  • 网络
  • linux指令
  • jenkins pipeline
  • webpack
  • k8s
  • eslint
  • 负数
  • 数学
  • devcontainer
  • Css
  • 本地版博客
  • 数据库
  • ntzyz大佬
  • git
  • MySQL
  • ECMA
  • review
  • Gitlab Api
  • 离别
  • 下载youtube
  • docker swarm
  • 年度总结
  • wsl2
  • 语句

Recent replies

  • xzdry 发表于「使用ffmpeg和youtube-dl下载youtube视频」

友链

ntzyz double

我

真诚
很看重自己在乎的人
希望能越来越好
爱蛋蛋
标签:子网掩码

子网掩码学习

2021 年 6 月 12 日分类:DevOps#子网掩码#网络

定义

子网掩码(subnet mask)是用来划分子网网段和遮掩部分IP地址。定义为用来划分IP地址中哪一部分是网络号,哪一部分是机器号
简单的理解,就是用一个xxx.xxx.xxx.xxx,其中xxx是0~255之间的数值,转换成二进制就是一个32位的二进制数,通过二进制中的0来达到遮掩部分IP地址的目的。如果两个IP被遮掩后IP地址相同,那么这两个IP地址就处于同一个网段。就可以直接进行通信。当然,掩码的形式是有一些限制的,下面仔细讲讲

掩码定义

类别 子网掩码的二进制数值 子网掩码的十进制数值
A 11111111 00000000 00000000 00000000 255.0.0.0
B 11111111 11111111 00000000 00000000 255.255.0.0
C 11111111 11111111 11111111 00000000 255.255.255.0

上面是一个默认子网掩码示例。子网掩码的设定必须遵循下面几个规则:

  • 子网掩码是一个32位二进制地址
  • 1和0必须连续,比如255.255.255.193(后八位1100 0001)就不能用作子网掩码
  • 左边是1,右边是0。1表示网络位长度,0表示主机位长度。这么做是为了让掩码与IP运算(按位与)时用0遮住原主机数,保留网络数

通过上述最后一条规则,可以很容易通过0的位数确定子网的主机数,即2的主机位数次方-2。去掉两个是因为,主机号全为0时表示该网络的网络号。全为1时表示该网络的广播地址
子网掩码除了屏蔽IP的一部分以区别网络标识和主机标识,还说明该IP地址是在局域网上,还是在远程网上。另外还用于将一个大的IP网络划分为若干小的自网络

例子

示例1

类别 十进制 二进制
IP地址 192.168.1.129 1100 0000.1010 1000.0000 0001.1000 0001
子网掩码 255.255.255.0 1111 1111.1111 1111.1111 1111.0000 0000
按位与(&) 11111111 11111111 11111111 00000000 1100 0000.1010 1000.0000 0001.0000 0000

可以看到进行按位与之后,前面的网络位是不变的,机器位被后面八个0遮掩了,把&的结果转换为10进制得192.168.1.0。也就是说,192.168.1.(0~255)都会被掩码遮掩掉。于是这些ip地址可以分给不同的机器(0~255),除去广播地址(192.168.1.255)和网络号(192.168.1.0)。可以分配给254台机器,这些机器可以直接进行通信。另一种写法是192.168.1.0/24

示例2

类别 十进制 二进制
IP地址 192.168.1.188 1100 0000.1010 1000.0000 0001.1011 1100
子网掩码 255.255.255.224 1111 1111.1111 1111.1111 1111.1110 0000
按位与(&) 11111111 11111111 11111111 00000000 1100 0000.1010 1000.0000 0001.1010 0000

按位与之后得到192.168.1.160因此新的子网掩码只能遮住后面5位,因此新的范围为(00000~11111),即192.168.1.160~192.168.1.255。这其中的ip也可以写成192.168.188/27

示例3

将B类IP地址168.195.0.0划分成27个子网 1.27=bx11011,去N=5 2.将B类地址的子网掩码前五位置1,得到255.255.248.0 即将168.195.0.0划分为27的子网的子网掩码为255.255.248.0

示例4

因此新的docker服务网段service_default IP地址为10.20.0.0/16。即16位未被遮掩,遮掩了后16位,因此理论可用范围为2^16-2=65534可以分配65534台机器

  • «
  • 1
  • »
Copyright © 2016-2018 ntzyz. All rights reversed.
Except where otherwise noted, content on this blog is licensed under CC-BY 2.0.