作业讲解
转发器、网桥、路由器和网关(4-6)
作为中间设备,转发器、网桥、路由器和网关有何区别?
(1) 物理层使用的中间设备叫做转发器(repeater)。
(2) 数据链路层使用的中间设备叫做网桥或桥接器(bridge)。
(3) 网络层使用的中间设备叫做路由器(router)。
(4) 在网络层以上使用的中间设备叫做网关(gateway)。用网关连接两个不兼容的系统需要在高层进行协议的转换。
在网络>计算机网络中,转发器、网桥、路由器和网关都是用于连接网络的中间设备,但它们在网络模型中的作用和工作层次有所不同:
IP地址与硬件地址(4-11)
试说明IP地址与硬件地址的区别。为什么要使用这两种不同的地址?
从层次的角度看,物理地址是数据链路层和物理层使用的地址,而IP地址是网络层和以上各层使用的地址,是一种逻辑地址(称IP地址是逻辑地址是因为IP地址是用软件实现的)。
由于世界上已经存在各式各样的网络,它们使用不同的硬件地址,为了互连这些使用不同硬件地址的网络,需要在上层使用一种统一的逻辑地址,即IP地址。因此,当在一个物理网络中进行通信时,要使用该网络网络的硬件地址,而要跨多个网络进行通信时就必须使用IP地址。另外,数据链路层和网络层使用不同的地址,可以保持各层的独立性,底层物理网络可以采用任何技术,并可以支持其他网络层协议(如:IPX、DECnet等)。
IP地址与硬件地址的区别:
IP地址分配(4-21)
某单位分配到地址块129.250.0.0/20。该单位有4000台机器,平均分布在16个不同的地点。试给每一个地点分配一个网络地址和子网掩码,并算出每个地点能分配给主机的IP地址的最小值和最大值。
4000台机器,16个地点,平均每个地点250台机器,因此需要分配256个IP。对应的子网掩码/24,每个子网有254个可分配地址。每个地点的网络前缀和主机IP地址的最小值和最大值为: 129.250.0.0/24: 129.250.0.1~129.250.0.254
129.250.1.0/24: 129.250.1.1~129.250.1.254
129.250.2.0/24: 129.250.2.1~129.250.2.254
129.250.3.0/24: 129.250.3.1~129.250.3.254
…………………………………
129.250.15.0/24: 129.250.15.1~129.250.15.254
为了给每个地点分配一个网络地址和子网掩码,并计算出每个地点能分配给主机的IP地址的最小值和最大值,我们可以按照以下步骤进行:
确定子网掩码:由于每个地点需要至少250个IP地址,最接近的2的幂是256(2^8),这意味着我们需要8位用于主机地址。因此,子网掩码应该是/24(即255.255.255.0),这为每个子网提供了256个IP地址(包括网络地址和广播地址)。
分配网络地址:原始的网络地址是129.250.0.0/20,这意味着前20位是网络前缀,剩下的12位用于子网划分和主机地址。由于我们需要16个子网,我们可以使用这12位中的前4位来创建16个子网(2^4=16)。
计算子网地址:从129.250.0.0/20开始,我们可以将前缀增加1来创建第一个子网,然后继续增加直到覆盖所有16个子网。每个子网的网络地址将是前20位加上子网编号的二进制表示。
计算IP地址范围:每个子网的第一个IP地址是网络地址加1,最后一个IP地址是网络地址加254(因为最后一个地址是广播地址,不能分配给主机)。
下面是具体的计算过程:
- 子网掩码:/24(255.255.255.0)
- 子网数量:16
- 每个子网的IP数量:256
子网划分:
- 129.250.0.0/24: 网络地址,主机地址范围129.250.0.1~129.250.0.254
- 129.250.1.0/24: 网络地址,主机地址范围129.250.1.1~129.250.1.254
- 129.250.2.0/24: 网络地址,主机地址范围129.250.2.1~129.250.2.254
- ...
- 129.250.15.0/24: 网络地址,主机地址范围129.250.15.1~129.250.15.254
注意:在实际分配中,最后一个子网可能不会完全用完,因为4000台机器平均分配到16个地点,每个地点大约需要250个IP地址,但最后一个地点可能不需要完整的256个IP地址。此外,最后一个子网的网络地址应该是129.250.15.0,而不是129.250.3.0,因为我们需要16个子网,所以最后一个子网的网络地址应该是129.250.15.0。
子网掩码怎么计算得到?
子网掩码的计算基于你想要划分的子网数量和每个子网中所需的主机数量。以下是计算子网掩码的步骤:
确定所需的子网数量:在这个例子中,有16个地点,所以需要16个子网。
确定每个子网所需的主机数量:每个地点平均有250台机器,所以每个子网至少需要256个地址(因为256是大于250的最小的2的幂)。
计算子网掩码:
- 子网数量:2^4 = 16,所以需要4位来表示子网(2^4 = 16,足以覆盖16个子网)。
- 主机数量:2^8 = 256,所以需要8位来表示主机(2^8 = 256,足以覆盖每个子网至少250台机器的需求)。
确定网络位和主机位:原始的IP地址块是129.250.0.0/20,这意味着前20位是网络位。由于我们需要4位来表示子网,所以新的网络位将是20 + 4 = 24位。
构造子网掩码:子网掩码的前24位是1,剩下的8位是0。在点分十进制表示中,这将是255.255.255.0。
验证子网掩码:子网掩码255.255.255.0在二进制中表示为11111111.11111111.11111111.00000000,这与我们的计算相符,即24位网络位。
计算每个子网的IP地址范围:每个子网的网络地址是子网掩码应用后的地址,第一个可用的主机地址是网络地址加1,最后一个可用的主机地址是网络地址加254(因为最后一个地址是广播地址)。
例如,对于第一个子网129.250.0.0/24:
- 网络地址:129.250.0.0
- 第一个主机地址:129.250.0.1
- 最后一个主机地址:129.250.0.254
这个过程可以应用于每个子网,只需将网络地址的最后8位递增即可。
IP地址分配(4-24)
有两个CIDR地址块208.128/11和208.130.28/22。是否有哪一个地址块包含了另一个地址?如果有,请指出,并说明理由。
11010000 10000000 ***
11010000 10000010 00011100
要确定两个CIDR地址块208.128/11和208.130.28/22是否有一个地址块包含了另一个,我们需要分析它们的网络前缀和地址范围。
1. 确定网络前缀和子网掩码
- 208.128/11:这意味着前11位是网络前缀。转换为二进制,前11位是
11010000 10000000
,对应的子网掩码是255.255.224.0
。- 208.130.28/22:这意味着前22位是网络前缀。转换为二进制,前22位是
11010000 10000010 00011100
,对应的子网掩码是255.255.252.0
。2. 转换IP地址到二进制
- 208.128.0.0 的二进制形式是
11010000 10000000 00000000 00000000
。- 208.130.28.0 的二进制形式是
11010000 10000010 00011100 00011100
。3. 比较网络前缀
- 208.128/11 的网络前缀是
11010000 10000000
,这覆盖了从208.128.0.0
到208.135.255.255
的范围。- 208.130.28/22 的网络前缀是
11010000 10000010 00011100
,这覆盖了从208.130.28.0
到208.130.31.255
的范围。4. 判断包含关系
- 208.128/11 的网络前缀完全包含 208.130.28/22 的网络前缀,因为 208.130.28/22 的前11位也是
11010000 10000000
,这与 208.128/11 的网络前缀相同。5. 确定包含关系
由于 208.130.28/22 的地址范围(从
208.130.28.0
到208.130.31.255
)完全在 208.128/11 的地址范围内(从208.128.0.0
到208.135.255.255
),我们可以得出结论,208.128/11 地址块包含了 208.130.28/22 地址块。理由
208.128/11 地址块的网络前缀更短(11位),覆盖的范围更广,而 208.130.28/22 的网络前缀更长(22位),覆盖的范围更具体。由于 208.130.28/22 的网络前缀的前11位与 208.128/11 相同,且其地址范围完全在 208.128/11 的范围内,因此 208.128/11 包含了 208.130.28/22。
IP地址分配(4-26)
某主机的IP地址是227.82.157.177/20。试问该主机所连接的网络的网络前缀是什么?该网络的网络地址是什么?主机号占多少位?主机号的二进制表示是什么?
网络前缀是:11100011 01010010 1001,或用十进制表示为:227.82.144.0/20。
网络地址是:11100011 01010010 10010000 00000000,或用十进制表示为:227.82.144.0。
主机号占12位,其二进制这表示是:1101 10110001。
要确定两个CIDR地址块208.128/11和208.130.28/22是否有一个地址块包含了另一个,我们需要比较它们的网络前缀和地址范围。
转换IP地址到二进制:
确定网络前缀:
比较网络前缀:
确定地址范围:
- 208.128/11 的地址范围是从 208.128.0.0 到 208.135.255.255。
- 208.130.28/22 的地址范围是从 208.130.28.0 到 208.130.31.255。
判断包含关系:
- 由于208.130.28/22 的地址范围完全在208.128/11 的地址范围内,我们可以得出结论,208.128/11 包含了 208.130.28/22。
理由:208.128/11 的网络前缀覆盖了208.130.28/22 的整个地址范围,且208.130.28/22 的地址范围没有超出208.128/11 的边界。因此,208.128/11 地址块包含了 208.130.28/22 地址块。
地址八位二进制快捷转换方法:
128 64 32 16 8 4 2 1
IP地址分配(4-31)
已知某地址块中的一个地址是140.120.84.24/20。试问该地址块中的第一个地址是什么?这个地址块共包含有多少个地址?最后一个地址是什么?
第一个地址:140.120.80.0。地址块中的地址数是4096个。
最后一个地址:140.120.95.255。
在IP地址分配中,"/20"表示子网掩码有20位是网络部分,剩下的12位是主机部分。这意味着每个子网可以有 212=4096212=4096 个地址,包括网络地址和广播地址。
给定的IP地址是140.120.84.24/20,我们可以通过以下步骤计算第一个地址和最后一个地址:
确定网络地址:将IP地址的主机部分置为0。对于140.120.84.24,这意味着将最后12位置为0。由于84是二进制的1010100,将其转换为网络地址,我们得到1010100.0111000.00000000.00000000,即140.120.80.0。
确定广播地址:将IP地址的主机部分置为1。对于140.120.84.24,这意味着将最后12位置为1。由于84是二进制的1010100,将其转换为广播地址,我们得到1010100.0111111.11111111.11111111,即140.120.95.255。
地址数量:由于子网掩码是/20,这意味着有12位用于主机地址,因此每个子网可以有 =4096 个地址。
所以,第一个地址是140.120.80.0,最后一个地址是140.120.95.255,地址块中共有4096个地址。
IP地址分配(4-32)
某主机的IP地址为140.252.20.68,子网掩码为255.255.255.224,计算该主机所在子网的网络前缀(采用CIDR地址表示法a.b.c.d/x),该子网的地址空间大小和地址范围(含特殊地址)。
140.252.20.64/27
32
140.252.20.64至140.252.20.95
要计算给定IP地址和子网掩码的网络前缀、地址空间大小和地址范围,我们可以按照以下步骤进行:
确定子网掩码的CIDR表示:子网掩码255.255.255.224转换为CIDR表示法是/27。这是因为224是二进制的11100000,这意味着有27位是网络部分。
计算网络地址:将IP地址的主机部分置为0。对于140.252.20.68,子网掩码的最后三位(因为224是11100000)是主机部分。将这些位置为0,我们得到140.252.20.64,这是网络地址。
计算地址空间大小:由于子网掩码是/27,这意味着有5位用于主机地址(32-27=5),因此每个子网可以有 =32 个地址。
计算地址范围:网络地址是140.252.20.64,广播地址是将主机部分全部置为1,即140.252.20.63(因为网络部分是27位,所以最后5位是主机部分,全部置1)。但是,这里有一个错误,正确的广播地址应该是140.252.20.95,因为最后5位(32-27=5)是主机部分,全部置1。
确定地址范围:第一个地址是网络地址140.252.20.64,最后一个地址是广播地址140.252.20.95。因此,地址范围是从140.252.20.64到140.252.20.95。
综上所述,该主机所在子网的网络前缀是140.252.20.64/27,地址空间大小是32个地址,地址范围是从140.252.20.64到140.252.20.95。
IP地址分配(4-33)
某组织分配到一个地址块,其中的第一个地址是14.24.74.0/24。这个组织需要划分为11个子网。具体要求是:具有64个地址的子网2个;具有32个地址的子网2个;具有16个地址的子网3个;具有4个地址的子网4个(这里的地址都包含全1和全0的主机号)。试设计这些子网。分配结束后还剩下多少个地址?
具有64个地址的子网是:14.24.74.0/26,14.24.74.64/26。
具有32个地址的子网是:14.24.74.128/27,14.24.74.160/27。
具有16个地址的子网是:14.24.74.192/28,14.24.74.208/28,14.24.74.224/28。
具有4个地址的子网是:14.24.74.240/30,14.24.74.244/30,14.24.74.248/30,14.24.74.252/30。
全部256个地址已经分配完毕,没有剩下的地址。
计算过程
这个问题涉及到IP地址的子网划分。我们从给定的地址块14.24.74.0/24开始,这个地址块有256个地址(从14.24.74.0到14.24.74.255)。根据要求,我们需要划分出不同大小的子网:
- 具有64个地址的子网:/26子网掩码,因为 2(32−26)=642(32−26)=64。需要2个这样的子网。
- 具有32个地址的子网:/27子网掩码,因为 2(32−27)=322(32−27)=32。需要2个这样的子网。
- 具有16个地址的子网:/28子网掩码,因为 2(32−28)=162(32−28)=16。需要3个这样的子网。
- 具有4个地址的子网:/30子网掩码,因为 2(32−30)=42(32−30)=4。需要4个这样的子网。
现在,我们按照这个计划分配子网:
/26子网:每个子网有64个地址。
- 14.24.74.0/26:地址范围14.24.74.0到14.24.74.63
- 14.24.74.64/26:地址范围14.24.74.64到14.24.74.127
/27子网:每个子网有32个地址。
- 14.24.74.128/27:地址范围14.24.74.128到14.24.74.159
- 14.24.74.160/27:地址范围14.24.74.160到14.24.74.191
/28子网:每个子网有16个地址。
- 14.24.74.192/28:地址范围14.24.74.192到14.24.74.207
- 14.24.74.208/28:地址范围14.24.74.208到14.24.74.223
- 14.24.74.224/28:地址范围14.24.74.224到14.24.74.239
/30子网:每个子网有4个地址。
- 14.24.74.240/30:地址范围14.24.74.240到14.24.74.243
- 14.24.74.244/30:地址范围14.24.74.244到14.24.74.247
- 14.24.74.248/30:地址范围14.24.74.248到14.24.74.251
- 14.24.74.252/30:地址范围14.24.74.252到14.24.74.255
这样,我们分配了:
- 2个/26子网,共 2×64=1282×64=128 个地址
- 2个/27子网,共 2×32=642×32=64 个地址
- 3个/28子网,共 3×16=483×16=48 个地址
- 4个/30子网,共 4×4=164×4=16 个地址
总共分配了 128+64+48+16=256128+64+48+16=256 个地址,正好用完了整个/24地址块,没有剩余地址。
地址范围开始怎么确定
在IP地址分配中,确定子网的地址范围涉及到子网掩码和IP地址的二进制计算。下面是如何确定每个子网的起始和结束地址的步骤:
确定子网掩码:子网掩码决定了网络部分和主机部分的位数。例如,/26子网掩码意味着前26位是网络部分,剩下的6位是主机部分。
计算子网的网络地址:将IP地址的主机部分置为0,得到的就是网络地址。例如,对于14.24.74.0/24,如果我们要创建一个/26的子网,我们将最后6位置为0,得到14.24.74.0/26。
计算子网的广播地址:将IP地址的主机部分置为1,得到的就是广播地址。例如,对于14.24.74.0/26,广播地址是将最后6位置为1,得到14.24.74.63。
确定子网的地址范围:子网的地址范围是从网络地址的下一个地址开始,到广播地址的前一个地址结束。例如,对于14.24.74.0/26,地址范围是从14.24.74.1到14.24.74.62。
为下一个子网分配地址:在分配了第一个子网后,下一个子网的网络地址将是第一个子网的广播地址加1。例如,如果第一个/26子网的广播地址是14.24.74.63,那么下一个/26子网的网络地址将是14.24.74.64。
重复步骤:对于每个子网,重复上述步骤,直到所有的子网都分配完毕。
以14.24.74.0/24为例,我们可以这样分配:
/26子网:每个子网有64个地址(2^(32-26) = 64)。
- 第一个/26子网:14.24.74.0/26,地址范围14.24.74.1到14.24.74.62。
- 第二个/26子网:14.24.74.64/26,地址范围14.24.74.65到14.24.74.126。
/27子网:每个子网有32个地址(2^(32-27) = 32)。
- 第一个/27子网:14.24.74.128/27,地址范围14.24.74.129到14.24.74.158。
- 第二个/27子网:14.24.74.160/27,地址范围14.24.74.161到14.24.74.190。
/28子网:每个子网有16个地址(2^(32-28) = 16)。
- 第一个/28子网:14.24.74.192/28,地址范围14.24.74.193到14.24.74.206。
- 第二个/28子网:14.24.74.208/28,地址范围14.24.74.209到14.24.74.222。
- 第三个/28子网:14.24.74.224/28,地址范围14.24.74.225到14.24.74.238。
/30子网:每个子网有4个地址(2^(32-30) = 4)。
- 第一个/30子网:14.24.74.240/30,地址范围14.24.74.241到14.24.74.242。
- 第二个/30子网:14.24.74.244/30,地址范围14.24.74.245到14.24.74.246。
- 第三个/30子网:14.24.74.248/30,地址范围14.24.74.249到14.24.74.250。
- 第四个/30子网:14.24.74.252/30,地址范围14.24.74.253到14.24.74.254。
这样,我们就分配了所有的256个地址,没有剩余。
32个地址的子网 第一个/27子网:14.24.74.128/27
详细地解释一下如何确定具有32个地址的子网的第一个/27子网的地址范围。
理解/27子网掩码:/27表示子网掩码有27位是网络部分,剩下的5位是主机部分。这意味着每个/27子网可以有 25=3225=32 个地址。
确定/27子网的网络地址:在原始地址块14.24.74.0/24中,我们已经有了两个/26子网,它们分别使用了前128个地址(14.24.74.0到14.24.74.127)。因此,下一个/27子网的网络地址将是14.24.74.128。
计算/27子网的广播地址:由于/27子网有5位主机部分,我们将这5位全部置为1来得到广播地址。但是,我们通常不直接计算广播地址,而是通过子网的网络地址和子网掩码来确定地址范围。
确定/27子网的地址范围:对于14.24.74.128/27,地址范围是从网络地址的下一个地址开始,即14.24.74.129,到广播地址的前一个地址结束。广播地址是14.24.74.159(因为14.24.74.128的主机部分是00000000,将这5位全部置为1得到11111111,即14.24.74.159)。
计算地址范围:因此,14.24.74.128/27的地址范围是14.24.74.129到14.24.74.158。这里,14.24.74.129是第一个可用的主机地址,而14.24.74.158是最后一个可用的主机地址。14.24.74.128是网络地址,14.24.74.159是广播地址,这两个地址通常不分配给主机。
这样,我们就确定了第一个/27子网的地址范围。接下来的/27子网将从14.24.74.160开始,以此类推。
路由聚合(4-25)
有如下的4个/24地址块,试进行最大可能的聚合。
212.56.132.0/24
212.56.133.0/24
212.56.134.0/24
212.56.135.0/24
132的二进制是: 10000100
共同的前缀有22位,即:11010100 00111000 1000001。
聚合的CIDR地址块是:212.56.132.0/22。
在进行IP地址聚合时,我们的目标是找到可以覆盖所有给定地址块的最小网络。这个过程涉及到找到所有地址的共同前缀。
给定的四个/24地址块是:
- 212.56.132.0/24
- 212.56.133.0/24
- 212.56.134.0/24
- 212.56.135.0/24
首先,我们将这些地址转换为二进制形式,并找出它们的共同前缀。
212.56.132.0 的二进制形式是:
- 212: 11010100
- 56: 00111000
- 132: 10000100
- 0: 00000000
212.56.133.0 的二进制形式是:
- 212: 11010100
- 56: 00111000
- 133: 10000101
- 0: 00000000
212.56.134.0 的二进制形式是:
- 212: 11010100
- 56: 00111000
- 134: 10000110
- 0: 00000000
212.56.135.0 的二进制形式是:
- 212: 11010100
- 56: 00111000
- 135: 10000111
- 0: 00000000
接下来,我们比较这些二进制数,找出共同的前缀。从最高位开始,我们可以看到前22位是相同的:
- 11010100001110001000001
这意味着我们可以将这四个/24地址块聚合为一个/22地址块。/22表示前22位是网络部分,剩下的10位是主机部分。
因此,聚合后的CIDR地址块是 212.56.132.0/22。这个地址块可以覆盖从212.56.132.0到212.56.135.255的所有地址,这正是原始四个/24地址块所覆盖的范围。
路由表(4-27)
设某路由器建立了如下表所示的路由表(这三列分别是目的网络、子网掩码和下一跳路由器,若直接交付则最后一列表示应当从哪一个接口转发出去):
现共收到5个分组,其目的站IP地址分别为:
(1) 128.96.39.10
(2) 128.96.40.12
(3) 128.96.40.151
(4) 192.4.153.17
(5) 192.4.153.90
试分别计算这些分组转发的下一跳。
(1)接口0; (2) R2; (3) R4; (4) R3; (5) R4。
为了确定每个分组的下一跳,我们需要将每个目的IP地址与路由表中的子网掩码进行逻辑与(AND)操作,然后与目的网络进行比较,以确定匹配的路由。如果没有找到精确匹配,那么将使用默认路由。
下面是每个分组的计算过程:
128.96.39.10
- 子网掩码:255.255.255.128 (/25)
- 网络地址:128.96.39.0
- 与子网掩码进行逻辑与操作:128.96.39.10 & 255.255.255.128 = 128.96.39.0
- 匹配路由:128.96.39.0/25,下一跳:接口0
128.96.40.12
- 子网掩码:255.255.255.128 (/25)
- 网络地址:128.96.40.0
- 与子网掩码进行逻辑与操作:128.96.40.12 & 255.255.255.128 = 128.96.40.0
- 匹配路由:128.96.40.0/25,下一跳:R2
128.96.40.151
192.4.153.17
- 子网掩码:255.255.255.192 (/26)
- 网络地址:192.4.153.0
- 与子网掩码进行逻辑与操作:192.4.153.17 & 255.255.255.192 = 192.4.153.0
- 匹配路由:192.4.153.0/26,下一跳:R3
192.4.153.90
总结:
- (1) 128.96.39.10 -> 接口0
- (2) 128.96.40.12 -> R2
- (3) 128.96.40.151 -> R4
- (4) 192.4.153.17 -> R3
- (5) 192.4.153.90 -> R4
路由表(4-28)
考虑某路由器具有下列路由表项:
(1)假设路由器接收到一个目的地址为142.150.71.132的IP分组,请确定该路由器为该IP分组选择的下一跳,并解释说明。
(2)在上面的路由表中增加一条路由表项,该路由表项使以142.150.71.132为目的地址的IP分组选择“A”作为下一跳,而不影响其他目的地址的IP分组转发。
(3)在上面的路由表中增加一条路由表项,使所有目的地址与该路由表中任何路由表项都不匹配的IP分组被转发到下一跳“E”。
(4)将142.150.64.0/24划分为4个规模尽可能大的等长子网,给出子网掩码及每个子网的主机IP地址范围。
解答:
(1)B;
(2)<142.150.71.132/32, A>;
(3)<0.0.0.0/0, E>;
(4)子网掩码255.255.255.192,
142.150.64.1~142.150.64.62, 142.150.64.65~142.150.64.126,
142.150.64.129~142.150.64.190, 142.150.64.193~142.150.64.254
让我们一步步解析这些问题:
(1) 确定142.150.71.132的下一跳
首先,我们需要找到与目的地址142.150.71.132最匹配的路由表项。路由表中的条目有:
- 142.150.64.0/24 -> A
- 142.150.71.128/28 -> B
- 142.150.71.128/30 -> C
- 142.150.0.0/16 -> D
142.150.71.132在142.150.71.128/28范围内,因此它与B项匹配,下一跳是B。
(2) 增加一条路由表项,使142.150.71.132选择A作为下一跳
为了使142.150.71.132选择A作为下一跳,我们需要添加一个更具体的路由,即一个精确匹配该地址的路由。这可以通过添加以下路由表项实现:
- 142.150.71.132/32 -> A
这将确保142.150.71.132的流量被发送到A,而不影响其他地址。
(3) 增加一条路由表项,使不匹配任何路由的IP分组转发到E
为了处理所有不匹配现有路由的IP分组,我们可以添加一个默认路由:
- 0.0.0.0/0 -> E
这将捕获所有未被其他路由表项匹配的流量,并将其转发到E。
(4) 将142.150.64.0/24划分为4个子网
要将142.150.64.0/24划分为4个子网,我们需要增加子网掩码的位数。原始的/24意味着有8位用于主机地址。为了创建4个子网,我们至少需要2位用于子网划分(因为2^2 = 4),这将给我们/26的子网掩码。
子网掩码为255.255.255.192(/26),这意味着每个子网有64个地址(2^(32-26) = 64)。
子网划分如下:
- 子网1: 142.150.64.0/26,主机地址范围:142.150.64.1 - 142.150.64.62
- 子网2: 142.150.64.64/26,主机地址范围:142.150.64.65 - 142.150.64.126
- 子网3: 142.150.64.128/26,主机地址范围:142.150.64.129 - 142.150.64.190
- 子网4: 142.150.64.192/26,主机地址范围:142.150.64.193 - 142.150.64.254
这样,每个子网都有62个可用的主机地址(减去网络地址和广播地址)。
RIP, OSPF和BGP路由选择协议的主要特点(4-39)
RIP 协议的要点
采用距离向量算法,相邻路由器之间周期性交换各自的路由表(包含到各网络的距离),根据收到的信息计算到各网络的最短距离及下一跳,并更新自己的路由表。
为加快协议的收敛速度,当路由表发生变化也及时向相邻路由器通告路由信息。
使用运输层协议 UDP 来传送 RIP 报文。
存在距离向量算法固有的“坏消息传播得慢的问题”,最大距离不能超过15,只能适用于小规模网络。
OSPF 协议的要点
基于链路状态路由选择算法,没有RIP“坏消息传播得慢”的问题
网络管理员可以根据流量、距离、时延、带宽等为链路设置度量
支持分区域层次路由,将链路状态信息的洪泛限制在小范围的区域内部,可用于大规模网络
OSPF的分组直接使用 IP 数据报进行传输,并采用可靠洪泛
BGP 协议的要点
采用路径向量算法,能够有效检测路由环路,因此没有距离向量算法的“坏消息传播得慢的问题”。
在BGP 刚刚运行时,BGP 的邻站间交换整个的 BGP 路由表。但以后只在发生变化时更新有变化的部分(增加、修改或撤销某路由)。
使用 TCP传输路由信息,保证了信息传输的可靠性。
由于路径向量信息包含经过的每个自治系统的ID,策略可以很方便地加入到路径的选择中。
RIP协议工作过程(4-37)
假定网络中的路由器B的路由表有如下的项目(目的网络、距离、下一跳)
N1 7 A
N2 2 C
N6 8 F
N8 4 E
N9 4 F
现在B收到从C发来的路由信息(目的网络、距离): (N2, 5)、(N3, 9)、(N6, 4)、(N8, 4)、(N9, 5),试求路由器B更新后的路由表(详细说明每项的原因)。
N1 7 A 无新信息,不变
N2 5 C 相同下一跳,更新
N3 9 C 新项目,增加
N6 5 C 不同下一跳,距离更短,更新
N8 4 E 不同下一跳,距离一样,不变
N9 4 F 不同下一跳,距离更大,不变
路由协议传输问题(4-40)
RIP使用UDP,OSPF使用IP,而BGP使用TCP。这样做有何优点?为什么RIP周期性地和邻站交换路由信息而BGP却不这样做?
RIP只和邻站交换信息,UDP虽不保证可靠性,但UDP开销小。
OSPF使用可靠的洪泛法,并直接使用IP,好处是灵活和开销小。
BGP需要交换自治系统间的路由信息,交换的信息大,使用TCP提供可靠交付。
RIP利用周期性地和邻站交换路由信息来发现网络拓扑的变化,如路由器或链路的失效,而且UDP不可靠,周期性地交换路由信息也可避免路由信息丢失带来的问题。而BGP通过KEEPALIVE(保活)报文,用来周期性地证实对等方的连通性,同时TCP是可靠的,而不需要周期性地发送路由信息。
RIP用UDP省资源,OSPF直接用IP更灵活,BGP用TCP确保信息不丢。RIP需定期更新,BGP用保活机制。