Как получить все IP-адреса сетевых интерфейсов с помощью BMC/IPMI

Вопрос или проблема

У меня есть множество серверов, загруженных на Debian 12, подключенных к общему коммутатору. Все, что я знаю, это их BMC MAC-адреса и пароли BMC для каждого устройства (все они не от одного производителя).

Существует ли стандартный способ узнать все IP-адреса Ether интерфейсов, соответствующих MAC-адресам BMC (устройству)? Существует ли команда Ipmitool для получения IP-адресов всех сетевых интерфейсов?

Подсказка:

  1. У меня есть IP-адрес одного из этих устройств, и я могу зайти в него по SSH (это мой DHCP-сервер).
  2. На указанной выше машине я могу запустить arp-scan и получить все IP-адреса других машин, которые подключены к тому же коммутатору, но как я могу понять, какой IP принадлежит какому соответствующему MAC-адресу BMC.

Существует несколько возможных решений вашей проблемы.

  • Вы можете прочитать файл конфигурации и файл аренды DHCP-сервера и найти соответствия IP <-> MAC-адресов оттуда.

Например, с DHCP-сервером ISC вы найдете любые постоянные IP-адреса, назначенные через DHCP, в конфигурационном файле DHCP /etc/dhcp/dhcpd.conf:

host bmcname {
        hardware ethernet 12:34:56:78:90:ab;
        fixed-address 192.168.12.34;
        ...

А любые непостоянные назначения можно найти в файле аренды DHCP /var/lib/dhcp/dhcpd.leases:

lease 192.168.12.48 {
  starts 5 2024/09/27 05:22:47;
  ends 5 2024/09/27 13:22:47;
  cltt 5 2024/09/27 05:22:47;
  binding state active;
  next binding state free;
  rewind binding state free;
  hardware ethernet 23:45:67:89:0a:bc;
  ...
  • После выполнения arp-scan вы можете пинговать IP-адрес (или сделать что-то еще, что вызовет отправку трафика), с любой системы в том же сетевом сегменте, затем, если целевой IP-адрес отвечает на пинг, вы сразу выполните arp -a, чтобы просмотреть локальную таблицу ARP.
$ ping -c 1 192.168.12.34 >/dev/null   # просто для создания трафика
$ /sbin/arp -a | grep 192.168.12.34
bmc.server.name (192.168.12.34) at 12:34:56:78:90:ab [ether] on eno1
  • Вы можете установить пакет ipmiutil, выполнить ipmiutil discover и получить список всех IP-адресов, отвечающих на запросы IPMI (т.е. интерфейсы BMC) вместе с их задаными именами хостов BMC.

Пример с одним BMC:

$ ipmiutil discover
idiscover ver 1.11
Discovering IPMI Devices:
01| response from |  192.168.12.34      | bmc.server.name 

idiscover: 1 pings sent, 1 responses
ipmiutil discover, completed successfully

Ответ или решение

Чтобы получить IP-адреса всех сетевых интерфейсов, используя BMC/IPMI, есть несколько возможных решений, которые вы можете рассмотреть. Ваша ситуация с серверами, работающими под управлением Debian 12, и доступом к MAC-адресам BMC с помощью паролей может быть решена следующим образом.

1. Использование DHCP-сервера

Если вы имеете доступ к DHCP-серверу, который назначает IP-адреса вашим серверам, вы можете просмотреть конфигурационные файлы. Для сервера DHCP ISC вы можете проверить:

  • Конфигурационный файл: /etc/dhcp/dhcpd.conf — в этом файле будут указаны статические назначения IP-адресов к MAC-адресам.

    host bmcname {
      hardware ethernet 12:34:56:78:90:ab;
      fixed-address 192.168.12.34;
    }
  • Файл аренд: /var/lib/dhcp/dhcpd.leases — здесь перечислены активные IP-адреса, выданные DHCP.

    lease 192.168.12.48 {
    starts 5 2024/09/27 05:22:47;
    ends 5 2024/09/27 13:22:47;
    hardware ethernet 23:45:67:89:0a:bc;
    }

2. Использование arp-scan и arp

Запустите arp-scan для сканирования всех устройств в вашей сети. Например:

sudo arp-scan --localnet

После этого вы можете выполнить ping любого IP-адреса, чтобы инициировать трафик на этом адресе, а затем использовать команду arp для проверки ARP-таблицы:

ping -c 1 192.168.12.34 >/dev/null
arp -a | grep 192.168.12.34

Это позволит вам получить MAC-адрес, связанный с IP-адресом.

3. Использование ipmiutil

Установите пакет ipmiutil и выполните команду ipmiutil discover. Это поможет вам обнаружить все IPMI-устройства в сети и отобразить их IP-адреса наряду с настроенными BMC-именами:

sudo ipmiutil discover

Пример вывода:

Discovering IPMI Devices:
01| response from |  192.168.12.34      | bmc.server.name 

Это позволит вам легко идентифицировать IP-адреса BMC для различных серверов.

Заключение

Каждый из предложенных методов позволит вам получить IP-адреса интерфейсов сетевых карт на ваших серверах. Выбор метода будет зависеть от вашего уровня доступа и предпочтений. Если у вас есть доступ к DHCP-серверу, это может быть наиболее прямой способ. В противном случае, использование arp-scan вместе с arp или ipmiutil может быть очень эффективным.

Оцените материал
Добавить комментарий

Капча загружается...