Ip

從轉發表創建 IP 範圍

  • December 7, 2016

我正在解決練習問題,並得到:

考慮一個使用 8 位主機地址的數據報網路。假設一個路由器使用最長前綴匹配並且有如下轉發表:

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

這可以:

1100 00001101 11110

1000 00001011 11111

1110 00001111 11112

0000 0000_ 0111 1111_3

對於 的範圍0,為什麼前綴匹配不是狀態110,最長的前綴匹配?我可以採取哪些步驟來考慮和計算這個範圍?

這個問題有點棘手,我一直在假設範圍內有順序進展。我意識到介面 0、1 或 2 都沒有包含 0000 0000 的目標地址,因此它將是其他範圍的開始。為了確定其他範圍的結束,我需要知道其他前綴匹配中未考慮的最小可能值。 因此,為介面的 0 前綴匹配減去 1 得到 0111 1111

0000 00000111 1111``3

確定了範圍的開始,我可以確定結束嗎?是的!介面 2 將停在 1111 1111,知道兩者之間的前綴匹配是使用 AND 邏輯比較創建的,只有 1110 0000 會生成 111 的前綴匹配

到目前為止我有:

0000 0000to 0111 1111for 3

1XXX XXXXto 1XXX XXXXfor 0

10XX XXXXto 10XX XXXXfor 1

1110 0000to 1111 1111for2

如果 1110 0000 是介面 2 範圍的開始,那麼從中減去 1 將得到下相鄰範圍的結束,即 1101 1111。現在,如果我將地址 1101 1111 通過轉發表它會退出介面 0。因此,1101 1111 是介面 0 的結束範圍。根據我擁有的範圍重新排列我的表格:

0000 0000to 0111 1111for 3

10XX XXXXto 10XX XXXXfor 1

1XXX XXXXto 1101 1111for 0

1110 0000to to 1111 1111for2

現在,將 1 添加到介面 3 的結束範圍產生:1000 0000。通過轉發表傳遞此值將使其退出介面 1。因此,1000 0000 是介面 1 範圍的開始。

0000 0000to 0111 1111for 3

1000 0000to 10XX XXXXfor 1

1XXX XXXXto 1101 1111for0

1110 00001111 1111_2

剩下要確定的是介面 0 的起點在哪裡,如果它是 1000 0000,它將與介面 1 重疊。因此,1100 0000 是唯一與它前綴匹配的地址,並且只有它。從 1100 0000 中減去 1,得到介面 1 地址範圍的結尾。

0000 00000111 11113

1000 00001011 11111

1100 00001101 11110

1110 0000_ 1111 1111_2

有人對此有任何意見嗎?

引用自:https://serverfault.com/questions/819031