我正在尝试为负载平衡服务器配置两个 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