查找下一跳的地址

时间:2012-06-01 12:48:08

标签: ip router

我有下一张桌子:

Network adress    NetMask         Next Hop
128.96.166.0      255.255.255.0   1
128.96.166.0      255.255.252.0   2
0.0.0.0           0.0.0.0         3

我想找到路由器将发送到每个Hop的adreeses范围。例如,地址的IP:128.96.166.0将发送到Hop 1。

我不明白NetMak是如何帮助我解除它的。是不是总是会去跳1?

3 个答案:

答案 0 :(得分:5)

要决定的算法是:

If (IP address BitwiseAND NetMask == NetwordAddress) Then
    Forward to Next Hop

答案 1 :(得分:2)

首先,开始以二进制形式阅读网络掩码。在这种形式中,网络掩码始终为1s后跟0。网络掩码告诉您相关前缀的长度(以位为单位)(1表示相关位,0表示不相关位)。例如 128.96.166.1和128.96.166.2将被发送到Hop1 b / c,如果你只查看前24位,两个地址具有相同的24个第一位,就像网络地址的前24位一样。但是地址128.96.167.1不会被发送到Hop1,b / c第24位是不同的。 但Hop2的条目有不同的网络掩码。 Hop2的网络掩码表示仅查看前22位。当只查看前22位128.96.167.1匹配Hop2的网络地址时,发往128.96.167.1的数据包将通过Hop2发送。

此外: 查看前22位时,Hop1和Hop2的网络地址匹配128.96.166.1和128.96.166.2。但是,(正常)任何组件都会选择Hop1为128.96.166.1和128.96.166.2,因为该规则匹配更多位。这被称为“最长前缀匹配”,并且同意“如果有更多匹配位,则此跳将使数据包更接近最终目的地”。

答案 2 :(得分:1)

这里有一个简单的ip子网计算器:http://www.subnet-calculator.com/