广播地址设为自己的ip地址,子网掩码设为255.255.255.255 是什么意思

最近看《构建高性能web站点》(老版)第12章讲LVS-DR的配置,有一段针对Real Server的配置不明所以:

ifconfig lo:0 125.12.12.77 broadcast125.12.12.77 netmask 255.255.255.255 up

route add -host 125.12.12.77 dev lo:0

查了些资料,netmask设为4个255虽然不常见,但却是很自然的一件事。netmask原意是用于分割子网网络号和子网主机号,所以大部分私有网络(如家庭网络或企业网络)会按需配置或默认的255.255.255.0(表示该子网能容纳255个主机)。在上例中,这个虚拟ip显然不需要配置子网,所以设为4个255表示无子网是自然、合理的。(末尾的up表示update)

这段代码的意图是避免多台RealServer设定了相同的虚拟ip之后导致ip冲突,我猜测:

  • 广播地址设为自己的ip,用于收到同ip发来的消息时,让系统误认为是广播消息(因此系统不觉得ip冲突)
  • 向路由表加规则,用于向同ip发出消息时,被发送的消息将进入环回接口,即只有该主机自己能收到,不会向网络扩散。
结论:
掩码设为4个255与防止ip冲突无关。
 
另外,书中避免ARP响应的代码中,针对lo(环回接口)设定是没有意义的,可以删除。
 
参考:
http://os.51cto.com/art/201105/264303.htm
http://os.51cto.com/art/201105/262536.htm
 
原文地址:https://www.cnblogs.com/web21/p/6705093.html