路由的下一跳到底應該是誰?

做類似題最快的方法是將路由表包含的IP地址范圍寫出來,然后看看目的IP地址是否包含在其中。如果沒有包含其中,該條路由無效。如果包含其中,該條路由有效。在所有有效的路由條目選擇最長的掩碼長度,即為最佳路由,對應的下一跳為最佳下一跳。
以該題目為例,目的IP= 132.19.237.5,接下來一一列舉每個路由條目的IP地址范圍:
(1)132.0.0.0/8 ----- R1
IP地址范圍:132.0.0.0 – 132.255.255.255
目的IP= 132.19.237.5位于以上地址范圍,有效路由?,匹配長度= 8。
(2)132.0.0.0/11 ----- R2
IP地址范圍:132.0.0.0 – 132.31.255.255
目的IP= 132.19.237.5位于以上地址范圍,有效路由?,匹配長度= 11。
(3)132.19.232.0/22 ----- R3
IP地址范圍:132.19.232.0 – 132.19.235.255
目的IP= 132.19.237.5不在以上地址范圍,無效路由?,無法匹配。
(4)0.0.0.0/0 ----- R4
IP地址范圍:0.0.0.0 – 255.255.255.255
目的IP= 132.19.237.5位于以上地址范圍,有效路由?,匹配長度= 0。
很顯然,路由條目有效匹配的共有三條,分別為1、2、4,對應的匹配長度分別為8、11、0。按照最長匹配原則,選擇匹配長度=11的R2路由,其下一跳為最佳下一跳。
最后如何寫出一條路由的所有IP地址范圍,以132.0.0.0/11為例,它是132.0.0.0/8的第一個子網,一共包含8個/11子網。分別為:
- 132.0.0.0/11
- 132.32.0.0/11
- 132.64.0.0/11
- 132.96.0.0/11
- 132.128.0.0/11
- 132.160.0.0/11
- 132.192.0.0/11
- 132.224.0.0/11
那么132.0.0.0/11包含的第一個IP地址就是它本身,最后一個地址即為下一個子網132.32.0.0/11 -1 = 132.32.31.255/11。