Thiết lập ban đầu
Là một quản trị viên Linux, bạn đã cài đặt một hộp Linux mới với 6 NIC eth0 đến eth5. Giao diện eth0 được cấu hình chính xác và tất cả các giao diện khác hiện đang hoạt động nhưng không có địa chỉ IP. Những kẻ mạng chỉ đơn giản là gắn bốn dây cáp vào hộp này. Hai cáp LAN được sử dụng để kết nối hộp với mạng sản xuất và hai cáp được sử dụng để kết nối hộp với mạng riêng. Bạn chỉ biết rằng eth0 được kết nối với mạng sản xuất. Nhưng bạn không biết các NIC khác được kết nối với cùng một công tắc vì có các thế hệ máy chủ khác nhau và / hoặc các kẻ mạng sử dụng các NIC sai cho các kết nối của chúng.
Nhiệm vụ trong tầm tay
Vì thiết lập này là điển hình cho cơ sở hạ tầng của bạn, bạn muốn tự động hóa cấu hình của các giao diện liên kết. Bây giờ bạn có nhiệm vụ phát hiện các NIC nào hoàn toàn không được kết nối và các NIC nào được liên kết với cùng một công tắc để chúng có thể được liên kết. Bạn chỉ có quyền truy cập vào các hộp Linux và không thể truy vấn các thiết bị chuyển mạch.
Ý tưởng
Phát hiện trạng thái liên kết rất dễ dàng:
ethtool $device | grep 'Link detected' | cut -d ':' -f 2
Nhưng làm thế nào để khớp với các thiết bị được kết nối với cùng một công tắc?
Trong HP-UX có một công cụ cho mục đích đó gọi là linkloop [1]. Công cụ Linux chính thức bị thiếu (mặc dù có một dự án SourceForce cũ).
Các giải pháp khả thi đã xuất hiện trong đầu tôi là:
Nghe trên tất cả các giao diện với tcpdump. Thủ công và gửi một gói ICMP (quảng bá). Các giao diện thấy gói đó cần được kết nối với cùng một công tắc. -> cần đề xuất của các công cụ đơn giản có thể được sử dụng cho điều đó. Tôi muốn sử dụng các lệnh shell đơn giản hoặc Python cho kịch bản.
Hãy thử nói chuyện với một hộp bên ngoài thông qua một số giao thức dễ dàng (HTTP?) Và xem có phản hồi không. -> Dễ bị lỗi và phụ thuộc vào hộp bên ngoài.
Bạn có thêm ý tưởng hoặc đề xuất làm thế nào để giải quyết nhiệm vụ này?
Cảm ơn bạn trước cho tất cả các ý kiến!