LINUX.ORG.RU
ФорумAdmin

debian не меняет ip при перезапуске networking

 , , ,


0

3

Странная штука меня постигла.

debian 9 виртуалка на kvm. клонирую машинку с новенького темплейта, который я сделал, отключив эти веселые названия типа ens19 и оставив eth0.

Update:

посколько практически все читают этот пост не так , как я написал, я сделал вывод, что может быть я не понятно описал ситуацию.

действия:

на машине есть 1 интерфейс с 1 айпи.

заходим в /etc/network/interfaces и МЕНЯЕМ айпи.

перегружаем сервиc networking любым способом.

IP не меняется. подробнее ниже.

Конец апдейта. ----------

/etc/network/interfaces

source /etc/network/interfaces.d/*

auto lo
iface lo inet loopback

allow-hotplug eth0
iface eth0 inet static
	address 10.10.10.200/24
	gateway 10.10.10.1
	dns-nameservers 8.8.8.8

меняю 10.10.10.200 на 10.10.10.199

перезапускаю сервис 

/etc/init.d/networking restart

и eth0 падает. Поднимаю его и на нем тот же ип 10.10.10.200

в syslog

ifdown[857]: RTNETLINK answers: Cannot assign requested address

потому что старый айпи не сбрасывается

#  ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 12:45:cd:11:c5:68 brd ff:ff:ff:ff:ff:ff
    inet 10.10.10.200/24 brd 10.10.10.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet 10.10.10.199/24 brd 10.10.10.255 scope global secondary eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::1045:cdff:fe11:c568/64 scope link 
       valid_lft forever preferred_lft forever

если поменять allow-hotplug eth0 на auto eth0 , то все тоже самое , за исключением того, в первом действии eth0 не падает.

При перезагрузке само -собой адрес меняется, но это уже перебор - перегружать машину из-за смены IP ( хотя мы стремимся к этому благодаря системдику)

И вот вопрос, это я дурак или мейнтейнеры опять херни наделали?

★★★★

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

тогда уж так:

# sed -i -- 's/10.0.0.113\/24/10.0.0.112\/24/g' /etc/network/interfaces \
                 && ifdown enp0s3 && ip addr flush dev enp0s3 && ifup enp0s3

RTNETLINK answers: Cannot assign requested address
кстати, канает. ip addr flush помогает.

НО....

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

А теперь НО...

Адын.)

Первое, что хотелось бы отметить. Как певрым подметил anonymous_sama:

Корректно - делаешь ifdown для интерфейса, меняешь настройки в interfaces, потом делаешь ifup

о чем в документации и написано. И хоть SevikL и цитирует, что это все старье, что оно аш для Debian Wheezy, но, похоже, что этого никто еще не отменял...

Ну и зачем вообще делать networking restart, когда есть ifupdown, надо то всего лишь интерфейс переподнять... Оно, кстати, прекрасно делает свое дело, вы в этом сами убедились:

ifdown eth0 && sed -i — 's/10.10.10.200\/24/10.10.10.199\/24/g' /etc/network/interfaces && ifup eth0

Дыва.)

я думаю, что там ошибка в скрипте перезапуска сервиса

Очень похоже, что проблема кроется в том, что отметил Yur4eg

Вероятно, потому что ifdown не знает о том что ты редактировал конфиг и пытается удалить несуществующий адресс с интерфейса

Наверное это, как минимум, одна из причин, по которой service networking restart не дает ожидаемого результата...

Тыри.)

А теперь про systemctl restart ifup@eth0

Вот пример: https://pastebin.com/GFZ7Mdg2. Где себя как то не так повела система? имхо, система себя повела абсолютно адекватно;) Кстати, если сменить static на dhcp, то все плачевно...

Вот как быть в селдующей ситуации?
Представьте, что на этой машине вы не один и что какой-либо сервис-демон-прога забиндовался на OLD_IP:SRV_PORT, либо открыта сессия (ssh) => developer@OLD_IP:SSH_PORT. Этот девелопер, уже как пол дня, делает (и никак не дождется) сложную/долгую выборку с базы данных сервера, что бы у себя чета там потестить... И тут вы (admin_can_do_everything@) подменили адрес и sudo network restart... А если это какой-либо привелигированный сервис?.. Как systemctl должен поступить в данной ситуации???

Итого:

новый адрес вам назначен? - да
старые сессии остались целыми? - да
хотим, что бы старый адрес удалился с интерфейса - тоже есть метод это сделать (их уже кучу описали)

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

перезапуск сервиса подразумевает обычно перезапуск сервиса с перечитыванием конфигов и стартом с обновленными конфигами.

constin ★★★★
() автор топика
14 октября 2017 г.
Ответ на: комментарий от constin

auto lo iface lo inet loopback

allow-hotplug eth0 iface eth0 inet static address 10.10.10.200/24 gateway 10.10.10.1 dns-nameservers 8.8.8.8 В место allow-hotplug = auto

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

если поменять allow-hotplug eth0 на auto eth0 , то все тоже самое

написано даже не в комментарии , а в самом посте.

constin ★★★★
() автор топика

Столкнулся с подобной проблемой в Debian 9

Остановился на решении, предложенным Hanuken

#правлю /etc/network/interfaces
ifdown $interface
ip addr flush dev $interface
ifup $interface

sergost
()
2 августа 2018 г.
5 ноября 2018 г.
Ответ на: комментарий от constin

Как все плохо то. Кстати да, что делать, если ssh рвётся, а физического доступа к серверу нет, или осложнен в виду территориальной удаленности?

ivanlex ★★★★★
()
Ответ на: комментарий от ivanlex
mv interfaces_new /etc/network/interfaces && ifdown eth0 && ifup eth0

Для надежности можно все это делать в скрине/тмуксе

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

Все равно костыль. Раньше было как то проще.

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

Кстати да, что делать, если ssh рвётся, а физического доступа к серверу нет, или осложнен в виду территориальной удаленности?

Не делать именно так. Ваш КО.

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