Неожиданно столкнулся с проблемой настройки сети после чистой установки CentOS 7. Пришлось потратить минут 30 на такой простой операции, прежде чем понял, в чем проблема и исправил ее. Поделюсь с вами и себе на память оставлю решение. Оно даже не сразу нагуглилось, пришлось разные варианты испробовать.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном онлайн-курcе по администрированию MikroTik. Автор курcа – сертифицированный тренер MikroTik Дмитрий Скоромнов. Более 40 лабораторных работ по которым дается обратная связь. В три раза больше информации, чем в MTCNA.
Содержание:
Введение
У меня на руках чистая свежеустановленная система CentOS 7.
Во время установки я забыл руками указать настройки сети и система установилась с дефолтной конфигурацией, получив сетевые параметры по dhcp. При этом в директории с описанием сетевых настроек /etc/sysconfig/network-scripts было пусто. Сеть настроил Network Manager. На сервере он совершенно не нужен, поэтому удалим его.
Удаление Network Manager в CentOS
Удалить Network Manager очень просто. Выполняем несколько команд в консоли сервера:
# systemctl stop NetworkManager # systemctl disable NetworkManager
Если мы сейчас перезапустим сеть или перезагрузим сервер, то удаленно подключиться к серверу не сможем. Хорошо, что есть ILO :) Я хоть и не сразу перезагрузился, но управление сервером потерял. Расскажу, в чем была причина
После отключения и удаления Network Manager, я нарисовал конфиг для сетевого интерфейса с именем eno1.
# cat /etc/sysconfig/network-scripts/ifcfg-eno1
DEVICE="eno1" HWADDR="98:f2:b3:f7:0e:90" ONBOOT=yes NETBOOT=yes BOOTPROTO=none TYPE=Ethernet NAME="eno1" DNS1=10.1.3.21 IPADDR=10.1.3.14 NETMASK=255.255.255.0 GATEWAY=10.1.3.21
По идее, этого достаточно. Отправил сервер в перезагрузку и удаленно больше не смог к нему подключиться.
Unit network.service entered failed state
Хорошо, что был доступ к консоли сервера с помощью kvm-over-ip, а конкретно через ILO, идущего в комплексе с сервером HP. Я никогда не рекомендую менять настройки сети и делать глобальные изменения или начальную настройку iptables, если у вас нет доступа к консоли. Чаще всего все проходит нормально, но все равно иногда случаются непредвиденные ситуации и доступ к серверу отключается. Если он стоит в ЦОД, то это полный провал. Настройку сети и фаервола я всегда делаю в самом начале и больше стараюсь их не трогать без крайней необходимости.
После перезагрузки сеть не поднялась, а в логах были следующие ошибки:
systemd[1]: Starting LSB: Bring up/down networking... systemd[1]: network.service: control process exited, code=exited status=6 systemd[1]: Failed to start LSB: Bring up/down networking systemd[1]: Unit network.service entered failed state systemd[1]: network.service failed
Говорю сразу решение, которое помогло мне. Нужно создать пустой файл network в директории /etc/sysconfig.
# touch /etc/sysconfig/network
Перезапускаем сеть:
# systemctl restart network
Ошибок нет, сеть поднялась.
Заключение
Такая странная ошибка с сетью возникла. То ли это связано с последним обновлением CentOS, то ли еще с чем, не знаю. Я часто устанавливаю и настраиваю сервера, но с подобной ошибкой столкнулся впервые. Чаще всего я настройки сети задаю еще в момент начала установки, редко потом что-то меняю. Может быть из-за этого вижу эту ошибку впервые.
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.
Решил отказаться Network Manager в пользу network-scripts но после отключения NM один интерфейс не получает ipv4 адрес по dhcp уже не знаю куда копать, воиспрозвел ситуацию в тестовой среде ситаация анологичная.
CentOS stream 8 ядро 4,18 оброз с яндекса брал
Еще вариант - наличие файла конфигурации несуществующего интерфейса. У меня был eth0, а после миграции в облако ens139, удалил конфиги и ошибка исчезла
У меня пишет
network.service: control process exited, code=exited status=1
И способ не сработал. В каталоге /etc/sysconfig уже был этот файл, его содержание:
NETWORKING=yes
Удалил его, создал пустой файл, бесполезно, вот что пишет:
[root@ats ~]# systemctl status network.service
● network.service - LSB: Bring up/down networking
Loaded: loaded (/etc/rc.d/init.d/network; bad; vendor preset: disabled)
Active: failed (Result: exit-code) since Mon 2020-06-15 11:16:05 MSK; 3min 7s ago
Docs: man:systemd-sysv-generator(8)
Process: 9039 ExecStart=/etc/rc.d/init.d/network start (code=exited, status=1/FAILURE)
Jun 15 11:16:05 ats.office.local network[9039]: RTNETLINK answers: File exists
Jun 15 11:16:05 ats.office.local network[9039]: RTNETLINK answers: File exists
Jun 15 11:16:05 ats.office.local network[9039]: RTNETLINK answers: File exists
Jun 15 11:16:05 ats.office.local network[9039]: RTNETLINK answers: File exists
Jun 15 11:16:05 ats.office.local network[9039]: RTNETLINK answers: File exists
Jun 15 11:16:05 ats.office.local network[9039]: RTNETLINK answers: File exists
Jun 15 11:16:05 ats.office.local systemd[1]: network.service: control process exited, code=exited status=1
Jun 15 11:16:05 ats.office.local systemd[1]: Failed to start LSB: Bring up/down networking.
Jun 15 11:16:05 ats.office.local systemd[1]: Unit network.service entered failed state.
Jun 15 11:16:05 ats.office.local systemd[1]: network.service failed.
В чем еще может быть причина и каково решение? Подскажите пожалуйста
Попробуй вот это:
ip addr flush eth0
systemctl restart networking
Вместо eth0 укажи имя своего интерфейса.
Подозреваю, что просто ошибка в настройках интерфейса есть. Как он настраивался?
у меня был неправильно прописан MAC интерфейса при этой ошибке. Посмотреть ошибки инициализации интерфейса:
journalctl -xe
там ошибки найдете
Thank you for this document. this solution of creating #touch /etc/sysconfig/network
worked in my case.
Я так понимаю, что networkmanager разработка redhat и в любом случае он управляет сетью по дефолту. Где-то прочитал, что nm сам создаёт конфиги интерфейсов и пишет их в network-scripts. Возможно network.service читает конфиги сети и при несовпадении/ошибке выдаёт соответствующий вывод. То есть service нечто исполнителя... Кстати пустой файл делает сервис рабочим, но ругался в моём случае на (что-то) ipv6, якобы маршрутизация выключена в настройках, но не выключена в системе, не помню точно. Фиксилось записью типа ip........ =1/0 в этом файле. В любом случае получается двойной костыль. Как вариант надо запихать правильные настройки интерфейсов. Я не авторитет, я только студент, но малоли я что-то соображаю и кому-то эта заметка поможет. У меня такая проблема была при настройке dummy