【问题】已知19.123.165.13/22 这个CIDR,求一下这个网络的第一个地址,子网掩码和广播地址。
如果你的第一反应就是16.123.234.1,那么兄弟你很危险,建议仔细看完。
如果说MAC地址相当于网卡的DNA,出生就固定了,那么IP地址是一个就相当于网卡的门牌地址。
在自己电脑上玩玩 ifconfig,可以得到如图结果:
<UP,POINTOPOINT,RUNNING,MULTICAST> mtu2000解析如下: up: 网卡处于启动状态 命令ifconfig eth0 up 表示开启eth0
poin to point: 点对点模式
multicast: 表示网卡可以发送多播包
mtu 2000: 表示网卡最大传输单元,MAC层概念
global:表示网卡对外开放,可以接受各地的包
lo:全程loopback,表示网卡仅仅可以本机通信
两个ip地址:ipv4和ipv6地址,说明电脑同时支持这两种地址,但是ipv6还在推广中,有些上游设备还不支持,因此现在很多还是使用的ipv4地址。 |
Ip地址枯竭
十进制的192.168.42.14是ipv4地址被点分为四个部分,每个部分8bit,总共32位,2^32约为40亿,如今每个人几乎都有好几个终端,因此32位是远远不够的;还有一个是十六进制的ipv6,总共128位(其中fe80::是固定前缀),宣称可以为全世界每粒沙子编号。
IP地址分类
IP地址结构 = 网络号 + 主机号
其中D,E类地址不分网络号主机号,D类组播地址范围224.0.0.0~239.255.255,属于同一个组的机器都能收到,供路由协议,internet,用户临时,特定本地范围使用;E类是实验地址范围240.0.0.0~255.255.255.254为将来保留地址,仅供搜索,internet的实验开发使用。
子网掩码
计算机只能知道给ip分配了多少位,那他怎么知道你还要搞那么多事又是网络号又是主机号,我可咋找你要的那台机器呢?子网掩码说我来啦,子网掩码是一个32位的2进制数,其对应网络号的所有位置都为1,对应于主机地址的所有位置都为0,如A类255.0.0.0,思想就是:将子网掩码和IP地址按位进行逻辑“与”运算,得到IP地址的网络地址,剩下的部分就是主机,从而区分出任意IP地址中的网络地址和主机地址。
除去DE类型,实际可以分配给我们用的就是A,B,C类,再拎出来看:
读者可以观察一下主机数分析一下这种设计的问题:
-
1. 浪费,不灵活;可分配的最小的地址块有254个地址,网吧都满足不了。大一点的地址块包含65534个地址,这对大公司来说都太多了,而且同一广播域中有这么多节点是不可能的,网络会因为广播通信而饱和,结果造成很多地址大部分没有分配出去浪费了。
-
2. 路由上的不方便,因为大量的需要单独路由的小型网络(C类网络)因在地域上分得很开而很难进行聚合路由,给路由设备增加了很多负担。
折中方案CIDR
CIDR,即“无类型域间选路”,建立于‘超级组网’概念上,通过路由控制技术,忽略原本的ABC类型标准,用13~27位长的前缀取代原来地址结构中对地址网络部分的限制(3类地址的网络部分分别被限制为8位、16位和24位),主机数量范围在2^5~2^9台,能大能小,它通过把多个地址块组合到一个路由表表项而使得路由更加方便,因此客户可以根据自己的实际情况随意配置了。
开头问题解答:
19.123.165.13/22
现在应该能知道前22位都是网络号,后10位是主机号,19.123部分占了前面16位不会动,165变成二进制是10100101,其中有6位是网络号,即19.123.<101001>是网络号,<01>.13是主机号。
第一个地址:19.123.<101001><00>.1,即19.123.164.1
子网掩码:255.255.<111111><00>.0,即255.255.252.0
广播地址:19.123.<101001><11>.255,即19.123.167.255
几个常见地址:
127.0.0.1:127网段都是回播地址,这个地址是本机通信,直接由内核处理后返回,不会在网络中出现
网络号全0:当前子网中的主机
全1地址:本地子网的广播
主机号全1地址:特定子网的广播
192.168.x.x:生活中很常见,校园网等,私有ip
0.0.0.0:保留地址,用于DHCP失效(linux中)
169.254.0.0:保留地址,用于DHCP失效(windows)
|
如果不清楚DHCP是什么可以看一下我另外一篇文章:
另外如果有错误,欢迎私我指正