Начальная настройка
Как администратор Linux вы установили новую версию Linux с 6 сетевыми картами от eth0 до eth5. Интерфейс eth0 настроен правильно, и все остальные интерфейсы в данный момент работают, но без IP-адреса. Сетевые парни просто подключили четыре кабеля к этой коробке. Два кабеля локальной сети используются для подключения блока к производственной сети, а два - для подключения блока к частной сети. Вы только знаете, что eth0 подключен к производственной сети. Но вы не знаете, какой другой сетевой адаптер подключен к тому же коммутатору, поскольку серверы разных поколений и / или сетевые парни используют неправильные сетевые карты для своих подключений.
Задача под рукой
Поскольку эта настройка типична для вашей инфраструктуры, вы хотите автоматизировать настройку связующих интерфейсов. Теперь у вас есть задача определить, какие сетевые адаптеры вообще не подключены, а какие сетевые карты связаны с одним и тем же коммутатором, поэтому они могут быть связаны. У вас есть доступ только к блокам Linux и вы не можете запрашивать переключатели.
идеи
Определить статус ссылки легко:
ethtool $device | grep 'Link detected' | cut -d ':' -f 2
Но как сопоставить устройства, подключенные к одному коммутатору?
В HP-UX есть инструмент для этой цели, который называется linkloop [1]. Официальный инструмент Linux отсутствует (хотя есть старый проект SourceForce).
Возможные решения, которые уже пришли мне в голову:
Слушайте на всех интерфейсах с tcpdump. Составьте и отправьте ICMP (широковещательный) пакет. Интерфейсы, которые видят этот пакет, должны быть подключены к одному и тому же коммутатору. -> нужны предложения простых инструментов, которые могут быть использованы для этого. Я хотел бы использовать простые команды оболочки или Python для сценариев.
Попробуйте поговорить с внешним блоком через некоторый простой протокол (HTTP?) И посмотрите, есть ли ответ. -> Ошибка склонна и зависит от внешнего блока.
У вас есть дальнейшие идеи или предложения, как решить эту задачу?
Заранее спасибо за все комментарии!