CentOS 故障转移群集 - SIOCADDRT:没有这样的过程(添加环回时)

CentOS 故障转移群集 - SIOCADDRT:没有这样的过程(添加环回时)

我正在尝试为负载平衡服务器配置两个 Web 服务器。负载平衡方面工作正常(它可以看到两个服务器,如果需要就杀死它们,并且似乎可以很好地引导流量)。唯一的问题是服务器循环:

/etc/sysconfig/网络脚本/ifcfg-lo:0

DEVICE=lo:0
IPADDR=<Virtual IP>
NETMASK=255.255.255.255
ONBOOT=yes
NAME=loopback

每次我尝试“服务网络重启“我得到了SIOCADDRT:没有这样的过程加载环回接口时。

有人知道这是什么原因造成的吗?

答案1

每次我尝试“服务网络重启”时,都会收到 SIOCADDRT:加载环回接口时没有这样的过程。

这通常来自route命令,意味着您正在尝试通过无效网关设置路由。例如,如果我有:

# ip addr list
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether b8:ac:6f:a6:bf:a6 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.10/24 brd 192.168.1.255 scope global external

然后我尝试通过 192.168.1.1 添加到 192.168.3.0 的路由,但不小心输入了错误的网关地址:

# route add 192.168.3.0/24 gw 192.168.2.1

然后我得到这个:

SIOCADDRT: No such process

如果不执行service network restart,而只使用 ,会发生什么情况ifup lo:0?您还会遇到相同的错误吗?

答案2

如果您不需要路由任何别名,请在别名配置或父设备配置中添加 NO_ALIASROUTING=yes。检查您的 ifup-aliases 是否支持 NO_ALIASROUTING。如果不支持,请在别名配置中设置 GATEWAY="" 即可解决问题。

答案3

请注意,/usr/share/doc/initscripts-*/sysconfig.txt 指出别名设备不应重复父设备中包含的信息。

/etc/sysconfig/network-scripts/ifcfg-<interface-name> and
/etc/sysconfig/network-scripts/ifcfg-<interface-name>:<alias-name>:

  The first defines an interface, and the second contains
  only the parts of the definition that are different in a
  "alias" (or alternative) interface.  For example, the
  network numbers might be different, but everything else
  might be the same, so only the network numbers would be
  in the alias file, but all the device information would
  be in the base ifcfg file.

它还说使用ONPARENT而不是ONBOOT

ONBOOT=yes|no (not valid for alias devices; use ONPARENT)

ONPARENT=yes|no
  Whether to bring up the device when the parent device is brought
  up.
  Default: yes

这让我觉得这ONBOOT=yes是不正确的。如果改用,会发生什么ONPARENT

DEVICE=lo:0
IPADDR=<Virtual IP>
NETMASK=255.255.255.255
ONBOOT=yes

更新:

事实证明这并不重要。正如 larsks 所说,/etc/sysconfig/network-scripts/ifup-aliases仅检查ONPARENT=no

for FILE in ifcfg-${parent_device}:* ; do
   is_ignored_file "$FILE" && continue
   ini_env;
   . $FILE;
   [ -z "$DEVICE" ] && DEVICE=${FILE##ifcfg-}
   [ "$ONPARENT" != "no" -a "$ONPARENT" != "NO" ] && new_interface;
   unset DEVICE
done

相关内容