IP寻址与规划
一、IP寻址和子网划分
IP地址的主机部分可被分为三种地址:网络地址、主机地址和定向广播地址。
网络地址是网络号中的第一个地址。它用来将网络内的其他所有网段唯一标识为一个网段或广播域。定向广播地址是网络号中的最后一个地址,用来表示此网段上的所有主机。定向广播地址和本地广播地址的主要区别,在于本地广播地址不能通过路由器进行传播,只能在本网段内传播,而定向广播地址则可以跨越路由器进行传播。网络地址和定向广播地址之间的所有地址都称为网段的主机地址,主机地址可以分给网段上的设备使用,比如PC、路由器、服务器和智能终端设备等。
1.B类网络地址举例
例如,一个B类的IP地址为172.16.0.0,其网络部分为前两个字节,即为172.16,后两个字节为其主机部分,当后两个字节都为0时,即172.16.0.0,表示网段172.16.0.0的第一个地址,该地址称为网络地址;当后两个字节都为1时,即172.16.255.255,则表示172.16.0.0的最后一个地址,该地址称为网络的定向广播地址;在网络地址172.16.0.0和定向广播地址172.16.255.255之间的所有地址就是网络的主机地址。如表3-1所示。
表3-1 B类网络的地址范围
网络号 | 主机地址 | 定向广播地址 |
---|---|---|
172.16.0.0 | 172.16.0.1~172.16.255.254 | 172.16.255.255 |
从表3-1中可以看出,在同一网络号内,主机地址是网络号加1到定向广播地址减1的地址空间。对于任意给定的网络号,其中的两个地址是不能分配给网络设备使用的,一个是网络中的第一地址,另一个地址是网络的定向广播地址。假如已经知道了主机号的比特位数H,那么可以用公式2H-2计算出可用的主机地址。
2.A类网络地址举例
例如,一个A类网络的IP地址,网络号为前8bit,主机号为后24bit,采用公式2H-2,可得224-2=16777216-2=16777214个主机地址。对于一个B类网络的IP地址来说,若其主机地址的数量是65534,则由公式可得出:2H-2=216-2=65536-2=65534,而对于一个C类网络的IP地址来说,主机地址的数量是254,则由公式可得出: 2H -2=28 -2=256-2=254。
为了方便IP地址的寻址,每类IP地址都属于一个单独网段,如甲公司规模较小,其公司拥有200台计算机,申请了一个B类公网地址190.18.0.0,此网段的所有主机地址只能供本公司使用。乙公司是一家跨国公司,公司的所有网络设备达到上万台,申请了一个C类公网地址200.10.10.0,此网段的所有主机地址只能被乙公司使用,IP地址200.10.10.0可以分配的主机地址为254个,这个数量显然无法满足该公司的需求。而甲公司申请的IP地址190.18.0.0拥有216-2=65534个主机地址,造成65534-200=65334个主机地址的浪费。
3.子网掩码
在处理IP地址时,为了区分网络地址、主机地址和定向广播地址,引入了子网掩码。
因此,每个地址实际上由三部分组成:网络号、子网号和主机号。
子网划分是指允许在一个IP地址中,利用主机号的高位比特来创建更多的子网。在创建更多子网的过程中,每个子网中难免会有两个地址被浪费,但子网划分的优点之一是提供了更有效利用IP地址的方案。
与IP地址相对应,子网掩码的长度为32 bit,在二进制中,子网掩码中连续的比特1表示网络号,连续的比特0表示主机号。在子网掩码的0和1排序中有个规则,所有的比特1是必须连续的,所有的比特0也必须是连续的。这个规则不但在8位位组内适用,而且适用于所有4个8位位组内的所有比特。比如,虽然子网掩码11000000.11110000.11111111.11111111(192.240.255.255)是无效的,因为所有的比特1并不是连续的,但是子网掩码11111111.11110000.00000000.00000000(192.240.0.0)是有效的。
对于A类网络,默认的子网掩码是255.0.0.0,说明IP地址的第一个字节是网络号,后3个字节是主机号;同理,对于B类网络,默认的子网掩码是255.255.0.0,可以得到IP地址的前两个字节是网络号,后两个字节是主机号;对于C类网络,默认的子网掩码是255.255.255.0,IP地址的前三个字节是网络号,最后一个字节是主机号。
子网掩码应与IP地址配合使用,子网掩码本身没有任何意义。
二、IP地址应用实例
假设某IT公司拥有一个C类网络的IP地址192.168.1.0,该公司设有产品部、研发部、销售部、采购部、财务部和人力资源部6个部门。其研发部拥有26台网络设备,其他部门的网络设备数量均少于研发部。
具体的解决方法包括如下几个部分:
1.确定网络数和主机数
首先根据公司的需求,确定网络中最大网段上的网络设备数量,以及网络中能拥有最多的网段数。在确定网络设备数量时,需要考虑所有的网络设备,如路由器、服务器和交换机等IP地址的分配。同时,为了保证网络的可扩展性,应预留一些IP地址不进行分配。
该步骤主要使用如下3个公式:
公式1:2S≥所需的网络数量,S表示子网比特位数。
公式2:2H-2≥最大网段的主机数量,H代表主机比特位数。
公式3:S+H≤某一类别的地址拥有的主机比特总数。
该公司有6个部门,需要为每个部门分别划分一个子网。该公司拥有的C类网络地址的后8位为主机号,依据公式1,由2S=23=8≥6,可得需要占用主机号部分高3位来划分子网,其中S=3。其研发部拥有26台网络设备,依据公式2,由25-2=32-2=30≥26,其中H=5,这里需要考虑除去网络地址和定向广播地址。由于C类网络的主机号为8位,则子网划分的位数和主机的位数总和不能超过8位,依据公式3,S+H =3+5≤8,满足要求。
2.确定子网掩码
子网掩码包括网络号和子网号,而标准的A类、B类和C类地址的子网掩码的网络号部分分别为8位、16位和24位。依据该公司的部门数为6,子网掩码的网络号部分需要在标准子网掩码24位的基础上,增加占用的主机号高3位构成实际子网掩码。因此,该公司的子网掩码网络部分位数为24+3=27,由此可得实际子网掩码为:255.255.225.224。
3.确定网络地址
在二进制的网络地址中,前24位不变,为11000000.10101000.00000001,最后8位的高3位则依次增加。如表3-5所示。
4.确定网络的主机地址
主机地址位于网络地址和定向广播地址之间,该公司的地址规划如表3-6所示,其中网段192.1681.192和192.168.1.224未被分配,以备公司扩建或网络改造时使用。
表3-5网络地址的二进制和十进制表示
二进制网络地址 | 十进制网络地址 |
---|---|
11000000.10101000.00000001.00000000 | 192.168.1.0 |
11000000.10101000.00000001.00100000 | 192.168.1.32 |
11000000.10101000.00000001.01000000 | 192.168.1.64 |
11000000.10101000.00000001.01100000 | 192.168.1.96 |
11000000.10101000.00000001.10000000 | 192.168.1.128 |
11000000.10101000.00000001.10100000 | 192.168.1.160 |
11000000.10101000.00000001.11000000 | 192.168.1.192 |
11000000.10101000.00000001.11100000 | 192.168.1.224 |
表3-6公司部门地址规划表
公司部门 | 网络号 | 主机地址 | 定向广播地址 |
---|---|---|---|
研发部 | 192.168.1.0 | 192.168.1.1~192.168.1.30 | 192.168.1.31 |
产品部 | 192.168.1.32 | 192.168.1.33~192.168.1.62 | 192.168.1.63 |
销售部 | 192.168.1.64 | 192.168.1.65~192.168.1.94 | 192.168.1.95 |
采购部 | 192.168.1.96 | 192.168.1.97~192.168.1.126 | 192.168.1.127 |
财务部 | 192.168.1.128 | 192.168.1.129~192.168.1.158 | 192.168.1.159 |
人力资源部 | 192.168.1.160 | 192.168.1.161~192.168.1.190 | 192.168.1.191 |
预留 | 192.168.1.192 | 192.168.1.193~192.168.1.222 | 192.168.1.223 |
预留 | 192.168.1.224 | 192.168.1.225~192.168.1.254 | 192.168.1.255 |
三、可变长子网掩码
可变长度子网掩码(VLSM,Variable Length Subnetwork Mask)允许对A类、B类或C类IP地址使用不同的子网掩码,具有可以高效寻址和执行路由聚合,减少路由表大小两个优点。
VLSM可以提高IP地址的利用率。具体过程如下:
1.确定网络地址空间中最大的网段,即连接设备最多的网段。
2.得出适合最大网段的子网掩码。
3.记录该子网掩码对应的子网数量。
4.对于较小的网段,采用新子网掩码划分更小的子网。
5.记录步骤4.所划分的新子网。
6.对于更小的网段,回到步骤4.继续执行。
如图3-8所示,某公司设有3个子公司,每个子公司约有50台网络设备,总公司的路由器Router 0通过WAN链路与3个子公司的路由器Router1、Router2和Router3连接。整个网络拓扑中共有6 个不同的网段,路由器之间的连接占用3个网段,其余3个网段均分属于三个子公司。若IP地址为192.168.1.0,同时采用子网掩码255.255.255.192,虽满足了子公司的主机地址个数需求,但其仅可划分为4个子网,不能满足整个网络6个网段的划分需求。
如图3-9所示,运用VLSM技术,子公司的子网掩码为255.255.255.192,路由器间的链路采用新的子网掩码255.255.255.252,此时,整个公司的网络规划仅需一个C类IP地址。
图3-8分公司的IP地址分配
图3-9采用VLSM技术分配IP地址
四、路由聚合
路由聚合指将路由表中某些连续的路由,作为单个聚合路由进行通告的一种能力。
无分类域间路由选择(CIDR,Classless Inter Domian Routing)是可变长度子网掩码和路由聚合技术的扩展。CIDR的聚合力度更大,可将连续的A类、B类和C类网络进一步汇聚,通常称之为超网。
如图3-10所示,路由表中存在172.16.0.0/18、172.16.64.0/18、172.16.128.0/18和172.16.192.0/18共4条路由,通过路由聚合可将这些子网聚合为一个子网172.16.0.0/16,并向其他路由器通告。
4条路由聚合为1条路由,不仅可以减少通告更新所需的带宽,减小路由器处理更新所需的内存,而且提高了网络的稳定性。若不进行聚合,网段172.16.64.0反复地断开和连接,会使得整个网络中的所有路由器不断地更新路由信息,造成带宽的浪费。经过聚合后,聚合路由172.16.0.0不受影响,整个网络能够较为稳定地进行路由更新和数据传送。
图3-10 路由聚合
路由聚合有时也会存在对网络的表达精确度的问题,如果这里172.16. 128.0/18网络突然断掉,则聚合路由172.16.0.0/16不受影响,依然向外部通知原来的聚合路由。若某发送数据报的目的地址为172.16.128.0/18,其余路由器则认为目的地址均可达,直至传输到路由器时,才发现目的地址不可达,导致数据报的丢弃。
五、IPv6
1.IPv6的特点
IPv6是Internet Protocol Version 6的缩写,IPv6采用128位地址空间,并因其可提供超大的地址空间,较好地解决了地址短缺问题。
IPv6具有如下特点:
1)提供超大的地址空间。
2)报头简单和易封装。
3)使用更小的路由表。
4)提供更好的QoS保证。
5)自动地址配置。
6)具有更高的安全性。
7)与IPv4互相兼容。采用了两种技术,隧道技术和双协议栈技术。
2.IPv6的报文格式
IPv6报文首部的固定长度包含如图3-11所示的8个字段,具体如下。
图3-11 IPv6的报文首部格式
1)版本:4位,值为0110,表示IPv6报文。
2)通信类别:8位,表示IPv6数据流通信的类别或者优先级。
3)流标签:20位,IPv6中的新增功能。
4)载荷长度:16位,以字节为单位的IPv6载荷长度,也就是IPv6报文所有扩展首部和数据部分最多可以表示65535字节的负载长度。如果字节数超过负载,字段值将设置为0。
5)下一首部:8位,用来标识当前首部后下一个首部的类型,如扩展首部或传输层协议的首部。
6)跳数限制:8位,同IPv4中的TTL字段类似,定义IP数据报所能经过的最大跳数,每跳一次将此值减1,如果减到0,则将该报文丢弃。
7)源地址:128位,IP报文的发送方地址。
8)目的地址:128位,IP报文的接收方主机的地址。通常情况下,无论是单播地址、多播地址或者是任播地址,该地址都是最终地址,但当包含路由扩展首部时,某一个中间节点的地址可以作为目的地址。
大多数情况下,IPv6不包含扩展首部。但在传输过程中,发送方会根据路由器或者目的主机是否需要做某些特殊处理,添加一个或多个首部。同IPv4相比,IPv6具有良好的扩展性,不受固定字节的限制。在处理扩展首部和传输协议时,为了提高处理性能,IPv6的扩展首部是8字节长度的整数倍。
3.IPv6的地址
1)冒号十六进制表示
为了便于记忆,IPv6的地址格式规定每4个十六进制为一组,组与组之间用冒号(:)隔开。IPv6地址格式为XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX,X表示一个十六进制值。采用冒号十六进制表示法,其二进制地址空间为2128,可采用32个十六进制数进行表示。
2)零压缩
IPv6地址最前面的一串零可以省略,例如,0000:123A:BC00:0000:0000:1111:2222:0000可以简写为123A:BC00:0000:0000:1111:2222:0000。此外,为了进一步简化十六进制的书写,IPv6地址中的一段或连续多段0可以用双冒号(::)代替。
例如,IPv6地址可更加简化为123A:BC00::1111:2222:0,但不能表示为123A:BC00::1111:2222::,因为双冒号(::)只能在IPv6地址中出现一次。
3)前缀表示
IPv6地址的前缀表示类似于采用CIDR技术的IPv4地址表示,表示形式为:
IPv6地址/前缀长度
其中,前缀长度为十进制数。因为所有子网都有相应的64位前缀,所以64位前缀用来表示节点所在的单个子网。任何少于64位的前缀,可能是路由前缀,也可能是包含了部分IPv6地址空间的一个地址范围。例如:21DA:D3:0:2F3B::/64是一个子网前缀,其中21DA:0:D3::/48就是一个路由前缀。
4)前缀表示
IPv6地址的前缀表示类似于采用CIDR技术的IPv4地址表示,表示形式为:
IPv6地址/前缀长度
其中,前缀长度为十进制数。因为所有子网都有相应的64位前缀,所以64位前缀用来表示节点所在的单个子网。任何少于64位的前缀,可能是路由前缀,也可能是包含了部分IPv6地址空间的一个地址范围。例如:21DA:D3:0:2F3B::/64是一个子网前缀,其中21DA:0:D3::/48就是一个路由前缀。