第5章 子网划分和CIDR
划分网络
根据A类、B类或C类网络ID来识别网段具有一些局限性,主要是在网络级别之下不能对地址空间进行任何逻辑细分
如果一个IP是一个A类网络。数据报到达网关,然后传输到99.0.0.0地址空间。如果要考虑它在这个地址空间中是如何传递的,这个图示就会变得非常复杂,因为A类网络能够容纳超过1600万台主机。这个网络也许包含数百台主机,这大大超过了在一个子网上容纳的数量。
为了在大型网络里实现更高效的数据传输,地址空间被划分为较少的网段。把网络划分为独立的物理网络能够增加网络的整体性能,也就能够让网络使用更大的地址空间。它们不能使用网络ID,因为传输到这个网络的数据报具有相同的网络ID(99.0.0.0)。尽管可以利用主机ID来组织地址空间,但是对于能够容纳超过1600万台主机的网络来说,将会是很麻烦、非常不灵活、完全不实用的。唯一可行的解决方法是在网络标ID下对地址空间进行某种细分,让主机和路由器能够根据IP地址判断应该把数据发送到哪个网段。
TCP/IP的设计者借用了主机ID里的一些位来形成子网地址。一个名为子网掩码的参数指明了地址中多少位用于子网ID、保留多少位作为实际的主机ID。
像IP地址一样,子网掩码也是个32位的二进制值,它的形式能够说明与之相关的IP地址的子网ID。
数据表先根据网络ID被路由到目标网络,而这个网络ID是由地址类别决定的。当数据报到达目标网络之后,它根据子网ID路由到合适的网段。在到达这个网段之后,再根据主机ID传输到正确的计算机。
将子网掩码转换为点分十进制标记
子网掩码必须仔细计算,并且要反应网络的内部组织。一个子网内的所有主机应该具有相同的子网ID和子网掩码。为了便于人们使用,子网掩码通常以点分十进制的形式表示,类似于IP地址
与IP地址相比,子网掩码的转换通常更为简单。对应于地址中的网络ID和子网ID的掩码位是1,代表IP地址里主机ID的掩码是0。这意味着1都在掩码的左侧,而0都在右侧。在子网掩码中,一组8位1对应于十进制的255(二进制11111111),8位0对应于十进制的0。下面这个常见的子网掩码:
1111111111111111111111111111111100000000
以点分十进制的形式表示就是255.255.255.0。类似地,子网掩码:
11111111111111110000000000000000
以点分十进制的形式表示就是255.255.0.0
使用子网
子网掩码决定了网络ID之后有多少位是作为子网ID的。子网ID的长度不是固定的,取决于子网掩码的值。子网ID越长,留给主机ID的位数越少。换句话说,如果网络有很多子网,每个子网上的主机容量就会减少;如果子网数量较少,而且子网ID占据的位数也较少,每个子网的主机容量就会增加。
子网ID的分配(以及子网掩码的分配)取决于网络的配置。最好的方案是先规范网络,确定全部网段的数量与位置,然后为每个网段分配一个子网ID。
下面是一个简单的示例。这里是一个B类网络,它的第3个八位组被用作子网ID。假设网络129.100.0.0分配的子网掩码是255.255.255.0,表示网络ID和子网掩码占据了IP地址中的3个八位组。由于这个地址是个B类地址,地址中的前两个八位组是网络ID。全0和全1的主机ID是不能分配的,因此该配置最多支持254个子网,每个子网最多容纳254台主机。在能够使用B类网络地址(已经越来越难获得了)并且任何子网不会超过254台主机时,这是一种相当明智的解决方案。
无类别域间路由(CIDR)
在2011年,ICANN宣布,IPv4地址已经耗尽,应用对IP地址耗尽问题的长期解决方案是使用IPv6地址系统,它可以提供大量的地址。然而ICANN分配光所有的IPv4地址并不意味着人们停止使用其地址。ISP一直在参与IPv4地址的买卖与分配。IP地址的高额交易,对路由表中地址条目的扩散进行限制的需求,催生了另外一种路由表示形式,这种形式提供了更为一致的方法来聚合和划分IP地址空间。
A类地址已经耗尽,B类地址也很快用完了,C类地址还有剩余,但它的地址空间比较小(最多254台主机),这对于ISP是个限制。当然,我们可以向需要包含超过254台主机的网络所有者分配多个C类地址,但是把属于同一个网络的多个C类地址分别管理只会路由器产生不必要的混乱。
而无类别域间路由(CIDR)在路由表中定义地址块时更容易修改,更具有灵活性。这种技术不依赖于预定义的8位、16位或24位网络ID,而是使用一个名为CIDR的前缀的值指定地址中作为网络ID的位数。这个前缀有时也被称为变长子网掩码(VLSM)。这个前缀可以位于地址空间的任何位置,让管理员能够以更灵活的方式定义子网,以简便的形式指定地址中网络ID部分与主机ID部分。CIDR标记使用一个斜线(/)分隔符,后面跟一个十进制数值来表示地址中网络部分所占的位数。例如,在CIDR地址205.123.196.183/25中,/25表示地址中25位用于网络ID,相应的子网掩码就是255.255.255.128
CIDR前缀就是表明了IP地址中前面的多少位对于网络里的全部主机是一样的。CIDR的一个强大的特性是不仅能够对网络划分子网,还让ISP或管理员能够把多个连续C类网络聚合或组合为一个实体。这种特性极大地简化了网际路由表,从而延长了IPv4的生命。出租一系列连续C类网络的ISP只需要一个条目就可以定义全部网络。在这种情况下,CIDR前缀发挥了所谓超网掩码的作用。例如,一个ISP可以分配204.21.128.0(11001100000101011000000000000000)~204.21.255.255(11001100000101011111111111111111)的全部C类地址。
问与答
问:B类网络在使用255.255.0.0作为掩码时,子网ID占据了多少位?
答:0位(不存在子网ID字段)。掩码255.255.0.0是B类网络的默认设置,全部16个掩码位都是用于网络ID,没有用于子网划分。
问:一个网络管理员计算出他需要21位掩码,他应该使用什么子网掩码?
答:21位掩码:11111111111111111111100000000000,也就是两个全1八位组再加5位。全1的八位组对应于255,前5位为1的八位组等于128+64+32+16+8=248,所以这个掩码是255.255.248.0
问:公司有一个C类地址,员工分布于10个位置,每个位置的员工不超过12个。使用什么子网掩码能够满足为每个用户提供一台电脑的需要?
答:子网掩码是255.255.255.240,主机ID使用4位,足够为每个用户提供不同的地址。
问:Billy想在一个A类网络上使用占据3位的子网ID,相应的子网掩码是多少?
答:A类网络意味着IP地址中第一个八位组是属于网络ID的,它的掩码就是255。第二个八位组的3位子网ID对应于128+64+32=224,所以子网掩码是255.224.0.0。
问:中CIDR范围212.100.192.0/20中,分配了什么IP地址?
答:超网参数/20表示ip地址的前20位是不变的,其余部分是可变的。这个初始地址的二进制形式是:
11010110.01100100.11000000.00000000
地址的前20位必须与这个初始地址相同,其他部分只可以变化。下面是可变部分的另一个极限值(全1替换全0):
11010110.01100100.11001111.11111111
所以地址范围是212.100.192.0 ~ 212.100.207.255。
问题
子网ID的位来自哪里?
答: 主机ID包含子网ID。为什么子网划分技术如今没有过去那么重要?
答:因为子网划分技术已经被纳入CIDR中无类别域间路由中的“无类别”指的是什么?
答:无类别指的是不再使用传统的网络地址分类(A,B,C,D),而是使用CIRD前缀的事实在/26的网络中,可以有多少台主机?
答:主机号是6位,所以可以有
C = 2^6 - 2
62台主机。
- 将几个较小的网络合并为一个较大网络范围的技术是什么?
答:超网
课后练习
1.如果把网络地址180.4.0.0~180.7.255.255合并为一个网络地址,请计算CIDR网络地址。
答:180.4.0.0/14。
2.如果子网192.100.50.192的子网掩码为255.255.255.224,则该子网可以有多少台主机?
答:C类地址的十进制两位数是110,该子网属于C类地址。C类地址前24位是网络ID,子网ID从主机ID借走了3位,主机ID还剩下5位。因此,子网可以存在
2^5 -2 = 30
3.在练习2中,在子网掩码位255.255.255.224,则可以产生多少个子网?
答:子网ID是3位,因此有
2^3 - 2 = 6
个可能的子网。有些厂商支持全0和全1的子网,此时则意味着有8个可能的子网。
4.在网络195.50.100.0/23中,确定表示主机的最小IP地址
答:最低的主机地址是195.50.100.1
5.在练习4中,确定表示主机的最大IP地址
答:最高的主机地址是195.50.101.254