Вопрос или проблема
Мы установили свежую копию CentOS на “HP Proliant DL380p Gen8”, и интерфейсы Ethernet испытывают странную, колеблющуюся проблему с подключением, когда интерфейсы либо работают без проблем, либо полностью не работают.
Вот некоторые выводы команд:
Systemctl status network
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 2019-04-15 03:38:16 EDT; 3min 18s ago
Docs: man:systemd-sysv-generator(8)
Process: 6557 ExecStart=/etc/rc.d/init.d/network start (code=exited, status=1/FAILURE)
Apr 15 03:38:14 localhost.localdomain systemd[1]: Starting LSB: Bring up/down networking...
Apr 15 03:38:15 localhost.localdomain network[6557]: Bringing up loopback interface: [ OK ]
Apr 15 03:38:15 localhost.localdomain network[6557]: Bringing up interface eno1: ERROR : [/etc/sysconfig/network-scripts/ifup-eth] Device eno1 does not seem to be present, delaying initialization.
Apr 15 03:38:15 localhost.localdomain network[6557]: [FAILED]
Apr 15 03:38:16 localhost.localdomain systemd[1]: network.service: control process exited, code=exited status=1
Apr 15 03:38:16 localhost.localdomain systemd[1]: Failed to start LSB: Bring up/down networking.
Apr 15 03:38:16 localhost.localdomain systemd[1]: Unit network.service entered failed state.
Apr 15 03:38:16 localhost.localdomain systemd[1]: network.service failed.
ifconfg -a
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
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
lspci -nn|grep net
03:00.0 Ethernet controller [0200]: Broadcom Inc. and subsidiaries NetXtreme BCM5719 Gigabit Ethernet PCIe [14e4:1657] (rev 01)
03:00.1 Ethernet controller [0200]: Broadcom Inc. and subsidiaries NetXtreme BCM5719 Gigabit Ethernet PCIe [14e4:1657] (rev 01)
03:00.2 Ethernet controller [0200]: Broadcom Inc. and subsidiaries NetXtreme BCM5719 Gigabit Ethernet PCIe [14e4:1657] (rev 01)
03:00.3 Ethernet controller [0200]: Broadcom Inc. and subsidiaries NetXtreme BCM5719 Gigabit Ethernet PCIe [14e4:1657] (rev 01)
Ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
nmcli c
NAME UUID TYPE DEVICE
eno1 2c3315f0-9a56-4c6f-9cab-a55e3a0f7f2d ethernet --
eno2 657324ea-5e27-4d31-a6ce-314227330869 ethernet --
eno3 6c53e522-01ce-4807-bfe1-46266cb45e29 ethernet --
eno4 e7cebe37-3d20-4e34-b951-ea5901c36a1c ethernet --
/etc/sysconfig/network-scripts/ifcfg-eno1
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="dhcp"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="eno1"
UUID="2c3315f0-9a56-4c6f-9cab-a55e3a0f7f2d"
DEVICE="eno1"
ONBOOT=yes
HWADDR=2c:76:8a:5d:ea:b8
nmcli device status
DEVICE TYPE STATE CONNECTION
lo loopback unmanaged --
nmcli device status
GENERAL.DEVICE: lo
GENERAL.TYPE: loopback
GENERAL.HWADDR: 00:00:00:00:00:00
GENERAL.MTU: 65536
GENERAL.STATE: 10 (unmanaged)
GENERAL.CONNECTION: --
GENERAL.CON-PATH: --
IP4.ADDRESS[1]: 127.0.0.1/8
IP4.GATEWAY: --
IP6.ADDRESS[1]: ::1/128
IP6.GATEWAY: --
lspci -vv
journalctl -b 0 | grep devices
journalctl -b 0 | grep kernel
journalctl -b 0 | grep module
CentOS обычно поставляется с отключенной сетью, если вы не включите ее вручную при установке. Если ваши физические сетевые соединения подключены правильно, вы можете проверить соединения с помощью команды ip link
. Вы можете изменить строку ONBOOT=no
на ONBOOT=yes
в каждой конфигурации интерфейса, найденной по следующему пути.
/etc/sysconfig/network-scripts/ifcfg-xxxx
И вы можете получить больше информации, набрав команду nmcli c
, если это новая версия CentOS 7.x
Переименуйте имя файла интерфейса.
mv ifcfg-en01 ifcfg-eno1
Ответ или решение
Ваша проблема с сетевыми интерфейсами на CentOS может быть связана с несколькими факторами, и для ее успешного решения потребуется последовательный подход. Рассмотрим ключевые шаги, которые помогут вам устранить неполадки.
1. Проверка состояния сетевых интерфейсов
По вашему описанию видно, что команда ip a
показывает только интерфейс lo
(loopback), а интерфейсы eno1
, eno2
, eno3
и eno4
не отображаются. Это может говорить о том, что система не распознает сетевые интерфейсы.
Анализируя вывод команды systemctl status network
, мы видим сообщения об ошибках, которые указывают на то, что интерфейс eno1
не распознан: Device eno1 does not seem to be present
. Это может происходить из-за проблем с драйверами, неправильной конфигурации или даже оборудования.
2. Проверка конфигурации интерфейсов
В файле конфигурации для интерфейса eno1
, /etc/sysconfig/network-scripts/ifcfg-eno1
, убедитесь, что параметр ONBOOT
установлен в yes
. Это позволяет системе автоматически поднимать интерфейс при загрузке:
ONBOOT=yes
Если вы не уверены в наличии файла, проверьте, есть ли другие файлы конфигурации для интерфейсов, например, ifcfg-eno2
, ifcfg-eno3
и так далее.
3. Переименование файлов конфигурации
Убедитесь, что названия файлов конфигурации соответствуют имена интерфейсов. Если, например, у вас есть файл с именем ifcfg-en01
, переименуйте его в ifcfg-eno1
, чтобы он соответствовал имени интерфейса:
mv /etc/sysconfig/network-scripts/ifcfg-en01 /etc/sysconfig/network-scripts/ifcfg-eno1
4. Проверка драйверов
Поскольку на вашем сервере установлены сетевые контроллеры Broadcom NetXtreme BCM5719
, важно убедиться, что для этих контроллеров установлены правильные драйверы. Вы можете попробовать выполнить следующую команду для проверки состояния драйвера:
lspci -k | grep -A 3 -i net
Это позволит вам увидеть, какой драйвер используется для сетевых устройств и активен ли он. Возможно, потребуются дополнительные действия для установки или обновления драйверов.
5. Активация сетевых интерфейсов с помощью nmcli
Поскольку вы используете nmcli
, обратите внимание на состояние сетевых устройств с помощью команды:
nmcli device status
Если интерфейсы в состоянии "unmanaged", это может означать, что NetworkManager не управляет ими, возможно, из-за конфигурационных файлов или настроек systemd. Убедитесь, что NetworkManager активирован и работает:
systemctl start NetworkManager
systemctl enable NetworkManager
6. Обновление и диагностика
После всех настроек и проверок не забудьте перезагрузить сетевые службы:
systemctl restart network
Ещё один полезный шаг — это проверить журналы системы на наличие ошибок, связанных с сетевыми устройствами или интерфейсами. Используйте команды:
journalctl -xe | grep -i network
Заключение
Устранение неполадок с сетевыми интерфейсами в CentOS может быть сложной задачей, но следуя приведенным шагам, вы сможете выявить и исправить основную причину проблемы. Важно систематически подходить к решению, поочередно проверяя настройки, драйвера и состояние аппаратного обеспечения. Если проблемы сохраняются, вы можете также рассмотреть возможность подключения к официальным ресурсам поддержки CentOS или сообществу для получения дополнительной помощи.