1.什么是IP地址
IP地址在网络中用于标识一个节点(例如一台主机,或者一个网络设备的接口)。
在IP网络中,数据包的寻址是基于IP地址来进行的,因此IP地址就像是现实生活中的地址一样。
IP协议定义了IP数据报文的格式,也定义了数据报文寻址的方式。目前我们在业务环境中常见的IP主要是两个版本:IPv4及IPv6,而现阶段网络主体仍然是IPv4,但是在可预见的未来,会逐渐向IPv6过渡。本文只介绍IPv4。
一个IPv4地址有32bit。当然,我们不可能用二进制来书写IPv4地址,那是低效的,我们通常采用十进制格式来书写IP地址,但是计算机在进行IP地址的相关计算工作时,无疑是通过二进制的形式来进行。因此掌握十进制到二进制的数制转换是必备的技能。
IPv4地址通常采用“点分十进制”表示,以适应人类的读写习惯,例如..1.1。
2.十进制与二进制的转换
“点分十进制”IP地址表现形式能够帮助我们更好的使用网络,但网络设备在对IP进行计算时使用的是二进制的操作方式,例如:
以下是这个数字,对应的二进制算法,这里就不再赘述了,这是基本技能。
3.IP地址的分类
IPv4地址的长度为32bit,如上图所示,IPv4地址的空间从0.0.0.0一直到...,这么庞大的空间,如果不加以区分和规划,势必不便于统筹管理。因此我们对整个IPv4地址空间进行类别上的划分,一共分为5类:
地址的类别上的区分主要体现在第一个八位组(一个IP地址拥有4个八位组)上:
第一个八位组首位恒定为0,那么我们就得到一个区间:0.0.0.0一直到...。这是A类地址,其中.0.0.0/8作为本地回环使用,例如你ping.0.0.1实际上ping的是本机。所以如果看到一个IP地址,它的首个八位组掉落在1-区间内,那么这是一个A类地址第一个八位组的最高两位恒定为二进制的10,就得到一个区间:.0.0.0-...,这是B类地址。第一个八位组的最高三位恒定为,就得到一个区间:.0.0.0–...,这是C类地址。第一个八位组的最高四位恒定为1,就得到一个区间:.0.0.0–...,这是D类地址,这个类别的地址专门用于组播剩下的是E类地址,这类地址保留作为研究使用。
4.网络掩码(NetworkMask)
一个IP地址包含两部分:网络部分以及主机部分。网络部分用于表示这个IP地址所处的“空间”,对于一台路由器而言,当它在为数据包寻址时,通常只关心IP地址的网络部分。那么如何区分一个IP地址中的网络与主机部分呢——网络掩码(NetworkMask,简称netmask)用于和IP地址进行对应,从而标识出IP地址中的网络与主机部分。
网络掩码为32bit,与IPv4地址的位数是一样的。网络掩码在二进制的表示上是一堆连续的1,后面接连续的0。网络掩码值为1的bit对应IP地址中的网络位;为0的bit对应IP地址中的主机位,以此来识别一个IP地址中的网络与主机位,如下图:
为了方便书写,我们往往使用掩码长度的方式来表示一个IP地址+掩码组合,例如..1.1...0等同于..1.1/24。因为...0写成二进制的话,从左往右数就是24个1,所以我们也说,它的掩码长度为24。
默认情况下,A类IP地址的首个八位组为网络位,其他位为主机位,因此A类地址的默认掩码就是.0.0.0,或者说掩码长度为/8。B类IP地址前两个八位组为网络位,后两个八位组为主机位,因此B类地址的默认掩码就是..0.0或者掩码长度/16。C类地址的前三个八位组为网络位,最后一个八位组是主机位,因此C类地址的默认掩码就是...0,或者掩码长度为/24。从这里可以看出,如果申请到一个A类地址段.0.0.0/8,那么这是一个相当庞大的地址空间,因为这个空间有2的24次方个IP地址。相对的,一个B类的IP网络地址空间默认有2的16次方个IP地址,而每个C类地址段所拥有的主机数量则更少。
5.IP地址类型
网络地址
用于标识一个网络,相当于一个“面”的概念。网络地址是一个IP地址中主机位为全0的地址。例如..10.0/24,该地址标识了一个网络,在这个网络中,存在多个IP地址,可用于分配给各种设备,例如..10.1、..10.2、…、..10.,这些地址都属于..10.0/24网络。网络地址不能够被分配给主机。
广播地址
用于向网络中的所有节点发送数据的特殊地址。广播地址即主机部分的各比特位全部为1的地址。例如..10./24,该地址是..10.0/24这个网络的广播地址。
节点地址
可分配给网络中的设备的地址。例如92..10.1/24至..1./24。网络地址及广播地址是不能够直接被分配给某个设备(的网卡)或者网络设备(的接口)的,因为它们有特殊用途。
例:..1.0这个C类地址对应的网络地址、广播地址及可分配IP地址分别是?
6.为什么要划分子网
假设你有一个B类地址段.16.0.0/16,由于B类地址的默认掩码是..0.0,这就意味着这个网络内有2的16次方个IP地址,而可分配给设备使用的IP地址就有2的16次方-2这么多个,为什么要减去2?因为广播地址及网络地址是不能分配给设备使用的。
设想一下,如果一个网络中真有这么多台PC,这么多个IP地址处于同一个网段中、同一个广播域中,如上图所示,那么一旦网络中发生广播,影响可就大了。再者,在实际的业务环境中,我们往往会给一个业务单元(例如一个公司内的各个部门),划分一个独立的IP网段,不同的业务单元不同的IP网段,那么如果有10个业务单元,每个业务单元才几十近百台设备,一个业务单元就耗费一个B类地址段,这就会造成IP地址的浪费。
因此,我们提出子网划分的概念,子网划分所使用的思维是VLSM(VariableLengthSubnetMask,可变长子网掩码),事实上是拿网络掩码变戏法。在下图中有五个网段,需要五个IP地址段,如果只有一个B类地址(.16.0.0/16)可用,那么通过子网划分,可以将这个B类地址划分成一个个小一点的子网。这样一来,一个庞大的网络就可以被分割成小的单元,另外IP地址的使用也更为科学更为合理。
7.如何划分子网
现在假设我们有一个B类地址段.16.0.0/16,默认情况下,这个B类地址的掩码为..0.0,前两个八位组是网络位,后两个八位组是主机位。那么这个单一的网络中,有2的16次方个IP地址,如上图所示,非常庞大。
现在,在原有网络位的基础上,再向主机位借一个bit作为网络位的补充,网络位就扩充到了17bit,相对的主机位就变成了15bit。那么借过来的这一位,就是子网位了,如上图所示。由于我们借了这一位,因此网络掩码就从默认的..0.0变成了...0或者说从/16变成了/17。
于是从原来的只有.16.0.0/16的一个大网段,变成现在拥有.16.0.0/17及.16...0/17这两个小一点的网段,这就是子网划分。务必要