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