Назад | Перейти на главную страницу

Отказоустойчивый кластер CentOS - SIOCADDRT: нет такого процесса (при добавлении петли)

Я пытаюсь настроить два веб-сервера для сервера балансировки нагрузки. Аспект балансировки нагрузки работает нормально (он видит оба сервера, убивает их, если нужно, и, кажется, нормально направляет трафик). Единственная проблема связана с зацикливанием серверов:

/ и т.д. / sysconfig / сетевые сценарии / ifcfg-lo: 0

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

Каждый раз, когда я пробую "перезапуск сервисной сети"Я получаю SIOCADDRT: такого процесса нет при загрузке интерфейса loopback.

Кто-нибудь знает, что вызывает это?

Добавьте NO_ALIASROUTING = yes в конфигурацию псевдонима или в конфигурацию родительского устройства, если вам не нужна маршрутизация для какого-либо псевдонима. Проверьте свои псевдонимы ifup, поддерживает ли он NO_ALIASROUTING. В противном случае установка GATEWAY = "" в конфигурации псевдонима может помочь.

Обратите внимание, что в /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

Обновить:

Оказывается, это не имеет значения. Как говорит ларск, /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

Каждый раз, когда я пытаюсь «перезапустить сервисную сеть», я получаю 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.3.0 через 192.168.1.1, но случайно допускаю опечатку и ввожу неправильный адрес шлюза:

# route add 192.168.3.0/24 gw 192.168.2.1

Тогда я получаю это:

SIOCADDRT: No such process

Если вместо того, чтобы делать service network restart, что произойдет, если вы просто воспользуетесь ifup lo:0? Вы все еще получаете ту же ошибку?