route add 10.2.0.0 mask 255.255.0.0 202.88.219.254 mask指的什么?

mask 255.255.0.0指的是 202.88.219.254网卡的子网掩码吗?
我202.88.219.254这个网关的子网掩码是255.255.255.0,可是运维让我输入的确实255.255.0.0?

阅读 3k
2 个回答

route add 10.2.0.0 mask 255.255.0.0 202.88.219.254
这条命令执行后,在数据再次进行转发时,会按以下规则进行匹配:

  1. 假设目标地址为:10.2.34.23。则计算机会计算 10.2.34.23 & 255.255.0.0的值是否与10.2.0.0 & 255.255.0.0的值是否相等。

计算结果为: 10.2.34.23 & 255.255.0.0 = 10.2.0.010.2.0.0 & 255.255.0.0 = 10.2.0.0
最终结果相等均为10.2.0.0,所以该数据的下一跳将转发给202.88.219.254

  1. 假设目标地址为:10.3.1.2。则:

10.3.1.2 & 255.255.0.0 = 10.3.0.0 并不等于10.2.0.0 & 255.255.0.0 = 10.2.0.0的结果10.2.0.0。
所以该数据的下一跳将转发给默认网关。

所以mask与设置的转发地址202.88.219.254无关。mask = 255.255.0.0 的作用是在10.2.0.0的基础上设置了一个范围,表示:IP地址属于:10.2.0.0 - 10.2.255.255 的数据,转发给202.88.219.254。

如果mask 设置为 255.255.255.0,则表示:IP地址属于:10.2.0.0 - 10.2.0.255 的数据,转发给202.88.219.254。

换成二进制更能说明一切:

IP: 10.2.0.0
mask: 255.255.0.0
IP:     00001010 00000010 00000000 00000000
mask:   11111111 11111111 00000000 00000000

掩码为1对应的部分,IP地址必须相同;掩码为0对应的部分,IP地址可以随意变动,其变动范围为:00000000 0000000011111111 11111111

所以IP地址的范围为:00001010 00000010 00000000 00000000 - 00001010 00000010 11111111 11111111,即:10.2.0.0 - 10.2.255.255

如果掩码为3个255,则如下:

IP: 10.2.0.0
mask: 255.255.255.0
IP:     00001010 00000010 00000000 00000000
mask:   11111111 11111111 11111111 00000000

掩码为1对应的部分,IP地址必须相同;掩码为0对应的部分,IP地址可以随意变动,其变动范围为:0000000011111111

所以IP地址的范围为:00001010 00000010 00000000 00000000 - 00001010 00000010 00000000 11111111,即:10.2.0.0 - 10.2.0.255

不是的,, 255.255.0.0 是 10.2.0.0 的子网掩码..

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题