从转发表创建 IP 范围

从转发表创建 IP 范围

我正在解决练习问题并得到:

考虑一个使用 8 位主机地址的数据报网络。假设路由器使用最长前缀匹配,并具有以下转发表:

| Prefix Match | Interface |
| 1            | 0         |
| 10           | 1         |
| 111          | 2         |
| otherwise    | 3         |

其结果是:

1100 00001101 11110
1000 0000为为为1011 1111​​​1
1110 00001111 11112
0000 00000111 11113

对于 的范围0,为什么前缀匹配不表示110,即最长前缀匹配?我可以采取哪些步骤来思考和计算这个范围?

答案1

这个问题有点棘手,我一直假设范围是连续的。我意识到接口 0、1 或 2 都不包含目标地址 0000 0000,因此它将是其他范围的起点。要确定其他范围的终点,我需要知道其他前缀匹配中未考虑的最小可能值。因此,从接口 0 前缀匹配中减去 1 得到 0111
0000 00001111 0111 11113

确定了范围的起点后,我可以确定终点吗?是的!接口 2 将在 1111 1111 处停止,知道两者之间的前缀匹配是使用 AND 逻辑比较创建的,只有 1110 0000 才会生成111的前缀匹配到目前为止,我有

0000 00000111 11113
1XXX XXXX1XXX XXXX0
10XX XXXX10XX XXXX1
1110 00001111 11112

如果 1110 0000 是接口 2 的范围的起始,那么从中减去 1 将得到较低相邻范围的结束,即 1101 1111。现在,如果我将地址 1101 1111 传递到转发表,它将退出接口 0。因此,1101 1111 是接口 0 的结束范围。根据我拥有的范围重新排列我的表:
0000 00000111 11113
10XX XXXX10XX XXXX1
1XXX XXXX1101 11110
1110 00001111 11112

现在,将 1 添加到接口 3的结束范围,得到:1000 0000。将此值传递通过转发表将使其退出接口 1。
0000 0000因此,1000 0000 是接口 1 范围的起始。0111 11113
1000 000010XX XXXX1
1XXX XXXX1101 11110
1110 00001111 11112

剩下要确定的是接口 0 的起始位置,如果是 1000 0000,它将与接口 1 重叠。因此,1100 0000 是唯一与它前缀匹配的地址。从 1100 0000 中减去 1,即可得出接口1地址范围的
0000 0000结尾。0111 11113
1000 00001011 11111
1100 00001101 11110
1110 00001111 11112

有人对此有什么意见吗?

相关内容