Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
464 views
in Technique[技术] by (71.8m points)

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?


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

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


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...