LINUX.ORG.RU
ФорумAdmin

Когда поднимаю интерфейс lo, падает сеть на сервере

 ,


0

2

Привет, лор. Вот такая магия происходит. На сервере два интерфейса, один из которых смотрит в Интернет, другой в локальную сеть. Сервер достался на обслуживание недавно, так что я ничего так не корячил, а корячили, наверняка, прошлые админы.

Суть проблемы такова: запускаем сервер, всё стартует, nginx, php-fpm, memcache, потом сайт ругается на таймаут от memcached, я пытаюсь перезапустить memcache, но он не может забиндиться на 127.0.0.1, пытаюсь поднять локальный интерфейс

ifconfig lo up

и сеть падает.

Таблицу маршрутизации и настройку интерфейсов приведу попозже, как сервак восстановят. А пока, можете мне сказать, почему такое вообще может быть?

Ответ на: комментарий от Deleted

Так вот в чём дело. :) Тем не менее, сервак пока поднимают. А в сохранённом тексте терминала вот такие строчки нашёл. Это после запуска сервера. Там, кажется, есть чувак, который выполняет роль скрипта инициализации сети:

  282  ifconfig eth0 192.168.192.3 netmask 255.255.255.0
  283  ifconfig eth1 195.144.232.169 netmask 255.255.255.240
  284  route add default gw 195.144.232.161
  285  route
  286  ping 192.168.192.198

И каждый раз приходится им звонить, и просить всё перенастроить заново.

blablacon
() автор топика
Ответ на: комментарий от blablacon

А это чувак там и должен быть?

Может ему не стоит это делать и полностью передать дела тебе?

Deleted
()

Что за жесть? Зачем ты его поднимаешь? Как lo интерфейс может быть не поднят?

я пытаюсь перезапустить memcache, но он не может забиндиться на 127.0.0.1, пытаюсь поднять локальный интерфейс

Странное решение. Разбирайся, почему memcached не поднимается.

generator ★★★
()
Ответ на: комментарий от Deleted

Да, наверное должен. Там уволился чувак, который отвечал за этот сервер, и они передали его нам. Полностью мне передать не получится, так как должен кто-то же перезагружать сервера, и исполнять роль init, пока я всё не настрою.

blablacon
() автор топика
Ответ на: комментарий от generator

А фиг знает! Просто ifconfig выдаёт eth0 и eth1, lo видно только в выводе ifconfig -a. Похоже на то, что сначала чувак подходит, поднимает lo, запускает memcache, вырубает lo, и запускает всё остальное.

Потому что он не может забиндиться на 127.0.0.1 :)

blablacon
() автор топика
Ответ на: комментарий от generator

А, кстати, на счёт треша. Падает не сеть на серваке, я неправильно написал. Падает ssh. Именно ssh. Только я поднимаю lo, и сразу

root@web:/var/log# Write failed: Broken pipe
wh@ololobuntu:~$
Но сайт, и nginx работает.

blablacon
() автор топика

Ну, допустим на lo назначены, помимо 127.0.0.1 ещё и другие адреса (eth0 и eth1), с помощью команды ″ip addr add″, причём ″ifconfig″ эти адреса не покажет. Когда интерфейс поднимается, эти адреса появляются в системе.

Вобще, лучше сначала разберитесь, может ли этот сервер перегружаться самостоятельно. Если он без помощи того чувака не бутится, то нафиг такое на обслуживание брать. Если же он может сам загрузиться, то запускаете там ″screen″, в нём делаете что-то типа ″sleep 300 && reboot″. А в другом экземпляре ″screen″ запускаете последовательность команд, поднимающих интерфейс lo, записывающих в файл адрес/машртуты и опускающих интерфейс lo, всё это в одной строке, через ″;″.

mky ★★★★★
()
Ответ на: комментарий от mky

Это вряд ли. Он же писал, что сеть вручную поднимают. Ну и здесь не руководство к действию, а указание, в какую сторону надо смотреть :)

generator ★★★
()
Последнее исправление: generator (всего исправлений: 1)
Ответ на: комментарий от generator

Я понял, что он только ″lo″ вручную поднимает, а остальные интерфейсы поднимаются сами. И я не уверен, что дело в ″/etc/network/interfaces″, вполне возможно, что предыдущий админ накостылил скрипт где-нибудь в rc.local или ещё где.

не руководство к действию

Хорошо, если ТС это понимет, а то тупо введёт эту команду с ″>″, перезапишет файл и потом ещё никто не вспомнит, какой у них ip-адрес, выданый провайдером :-)

mky ★★★★★
()
Ответ на: комментарий от mky

он только ″lo″ вручную поднимает

Вроде выше было о том, что вручную eth0 и eth1 поднимаются.

предыдущий админ накостылил скрипт где-нибудь в rc.local

Кстати может быть просто /etc/init.d/networking из автозагрузки убрали. Хотя это не объясняет того, почему при поднятии lo отваливается ssh.

generator ★★★
()
Ответ на: комментарий от mky

Мне эти вещи сразу в глаза бросаются. :)

Сейчас гляну, что там по скриптам. Может что-то жууткое найду.

blablacon
() автор топика

Да нет, вроде бы всё в порядке, никаких лишних скриптов нет, /etc/init.d/networking в автозагрузке.

Может всё-таки к ним ехать придётся, вот уж делаа. :)

blablacon
() автор топика
root@web:/etc/nginx/sites-enabled# ping 127.0.0.1
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
^C
--- 127.0.0.1 ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 2014ms

root@web:/etc/nginx/sites-enabled# 

Мдеее :)

blablacon
() автор топика
Ответ на: комментарий от blablacon

Так у тебя lo в дауне.

Конфиги норм, но можно бы перенести dns в resolv.conf и лучше заменить allow-hotplug на auto.

invokercd ★★★★
()
Ответ на: комментарий от blablacon

Вот это меня смущает:

0.0.0.0/16 via 192.168.192.254 dev eth0

Хотя, может у вас там действительно есть такая сеть.

никаких лишних скриптов нет

Ну тогда получается, что у них сервер сам не может загрузится, а будет ждать, когда тот чувак проициализирует сеть или уберёт интерфейс lo. И это как-то не правильно, обновил ядро и звать этого чувака? А если он в отпуске?

/etc/init.d/networking в автозагрузке

Тогда после загрузки lo должен быть поднят.

Ну попробуйте поднять у себя в вируталки копию этого сервера, по идее можно установить чистрый дистрибутив и просто скопировать /etc/ с этого сервера. Ну или ехать и тыкать в консоль, при этом иметь где-то сервер с ssh, чтобы проверить, что ssh работает.

mky ★★★★★
()
Ответ на: комментарий от generator

Как lo интерфейс может быть не поднят?

при старте ядра нет интерфейсов. потом инитскрипты их поднимают

anonymous
()
Ответ на: комментарий от blablacon

Ещё есть скрипты в

/etc/network/if-pre-up.d/
/etc/network/interfaces.d/
/etc/network/if-up.d/
/etc/network/run
/etc/network/if-post-down.d
/etc/network/if-down.d
Надо каждый изучить внимательно.

Вот, например, мой список скриптов (ноут с wifi, kvm/qemu):

ls /etc/network/if-pre-up.d/ /etc/network/interfaces.d/ /etc/network/if-up.d/ /etc/network/run /etc/network/if-down.d /etc/network/if-post-down.d
/etc/network/if-down.d:
avahi-autoipd  openvpn	upstart  wpasupplicant

/etc/network/if-post-down.d:
avahi-daemon  bridge  vde2  vlan  wireless-tools  wpasupplicant

/etc/network/if-pre-up.d/:
bridge	ethtool  vde2  vlan  wireless-tools  wpasupplicant

/etc/network/if-up.d/:
avahi-autoipd  avahi-daemon  ethtool  ip  mountnfs  ntpdate  openssh-server  openvpn  upstart  wpasupplicant

/etc/network/interfaces.d/:

/etc/network/run:
ifstate
Попробуй от этого отталкиваться.

Ещё есть смысл проверить содержимое /etc/rc.local и crontab -e.

Deleted
()
Последнее исправление: WiZ_Ed (всего исправлений: 1)
Ответ на: комментарий от anonymous

потом инитскрипты их поднимают

Вот и я об этом. А у него не поднимают. Значит либо соответствующий инитскрипт не загружается сам (он говорит, что загружается), либо нправильный конфиг в файле interfaces (в данном случае правильный), либо как выше написал mky интерфейс где-то гасится, например в rc.local.

generator ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.