我的理解是,接口的网络掩码告诉接口属于哪个子网。这个信息的意思是,路由系统知道到这个子网的数据包应该被路由到这个接口。特别是,在配置地址时,Linux会自动添加此路由:
# ip address add 1.1.1.1/24 dev eth0
# ip route
1.1.1.0/24 dev eth0 proto kernel scope link src 1.1.1.1此外,子网定义广播地址,使主机知道如何发送广播分组,以及何时接收地址末尾有几个1's的分组。
网络面具还有什么其他意义吗?也就是说,如果我手动删除自动创建的路由,如果这个接口从未发送广播,并且对广播接收不感兴趣,那么与带有/32网络掩码的地址有什么不同吗?
发布于 2015-08-28 09:15:20
首先,不能用/32配置Linux上的主网络接口。
从主机的角度来看,网络掩码定义了主机所在子网的范围。
使用它,主机知道何时直接或通过默认网关将数据包发送到另一台主机。
接口需要发送和接收广播,因为没有它,ARP将无法工作,因此它将无法使用网络。
发布于 2015-08-28 09:24:22
我的理解是,接口的网络掩码告诉接口属于哪个子网。
上面所写的内容可以解释为“网络掩码是任意应用于接口以便它可以自由选择到哪个网络通信的东西”,但事实并非如此。
网络地址(例如10.0.7.0)和网络掩码(例如,255.255.255.0,即前缀符号中的/24 )标识子网(此处,10.0.7.0/24)。必须正确地将接口(例如eth0)配置为属于它所连接的子网的唯一IP地址(例如,我们可以选择10.0.7.42);此外,还需要指定接口的网络掩码与子网掩码相同。
/32网络掩码不存在,因为它没有任何意义。使用中最大的网络掩码是/30,它允许两个有效的主机,并且只用于点对点连接。
https://unix.stackexchange.com/questions/226040
复制相似问题