Lập bản đồ mạng Linux với lldpd: Cách xác định Switch Port không cần dò dây

Network tutorial - IT technology blog
Network tutorial - IT technology blog

Cảnh tượng một Sysadmin cầm đèn pin soi từng sợi cáp trong tủ Rack “spaghetti” không còn quá xa lạ. Nếu nhãn dán bị bong hoặc ghi sai, việc tìm xem server đang nối vào port nào của Switch là một cực hình. Lúc này, lldpd chính là trợ thủ đắc lực giúp bạn “nhìn xuyên thấu” hạ tầng mạng mà không cần rời khỏi ghế.

Đừng để việc dò dây làm mất thời gian của bạn

Trong các Data Center quy mô lớn, việc nắm bắt sơ đồ kết nối vật lý (Physical Topology) là bắt buộc. Thông thường, chúng ta hay dùng những cách thủ công đầy rủi ro:

  • Ghi nhãn (Labeling): Dễ sai lệch sau vài lần bảo trì hoặc thay dây.
  • Tra bảng MAC trên Switch: Bạn phải login vào Switch, tìm MAC của server rồi check port. Quá rườm rà nếu bạn có hàng trăm server.
  • Giao thức tự động: Thiết bị tự “chào hỏi” và khai báo thông tin cho nhau. Đây là cách chuyên nghiệp nhất.

Tại sao nên chọn LLDP thay vì CDP hay SNMP?

Mỗi giao thức đều có ưu nhược điểm riêng, nhưng LLDP đang dần trở thành tiêu chuẩn thống trị.

CDP (Cisco Discovery Protocol) là hàng độc quyền của Cisco. Nếu hạ tầng của bạn là một “nồi lẩu thập cẩm” gồm Dell, HP và Juniper, CDP sẽ sớm bộc lộ hạn chế. Trong khi đó, SNMP lại quá nặng nề. Để vẽ bản đồ mạng qua SNMP, bạn cần một hệ thống giám sát (NMS) phức tạp và không thể xem nhanh kết quả ngay tại dòng lệnh.

LLDP (Link Layer Discovery Protocol) là chuẩn quốc tế IEEE 802.1AB. Mọi hãng lớn hiện nay đều hỗ trợ nó. Nó hoạt động ở Layer 2, nghĩa là ngay cả khi server chưa có IP, các thiết bị vẫn có thể thấy nhau. lldpd là bản triển khai mã nguồn mở siêu nhẹ cho Linux, hỗ trợ cả LLDP và khả năng “nhại” lại các giao thức khác như CDP hay EDP.

Ưu điểm thực chiến của lldpd

Qua kinh nghiệm vận hành thực tế, mình đánh giá cao lldpd ở ba điểm:

  • Tương thích tuyệt vời: Nói chuyện mượt mà với hầu hết Switch hiện đại.
  • CLI thân thiện: Công cụ lldpcli có cú pháp rất giống với CLI của thiết bị mạng chuyên dụng.
  • Thông tin cực chi tiết: Bạn sẽ biết chính xác tên switch, số port, VLAN và thậm chí là các tính năng (capabilities) của thiết bị đối diện.

Hướng dẫn triển khai lldpd trên Linux

Dưới đây là các bước thực hiện trên Ubuntu/Debian. Với CentOS/RHEL, bạn chỉ cần thay apt bằng dnf.

Bước 1: Cài đặt gói

sudo apt update && sudo apt install lldpd -y

Bước 2: Kích hoạt dịch vụ

Hãy đảm bảo daemon đang chạy và tự khởi động cùng hệ thống để dữ liệu luôn được cập nhật:

sudo systemctl enable --now lldpd

Bước 3: Khám phá các thiết bị láng giềng

Để biết server đang kết nối với ai, hãy chạy lệnh thần thánh này:

sudo lldpcli show neighbors

Kết quả trả về sẽ giải mã mọi nghi ngờ của bạn:

-------------------------------------------------------------------------------
LLDP neighbors:
-------------------------------------------------------------------------------
Interface:    eth0, via: LLDP, last updated: 20s
  Chassis:
    ChassisID:     mac 00:25:90:bd:f4:c2
    SysName:       Core-Switch-Tầng-5
    SysDescr:      Cisco IOS Software, C3750E Software
    Capability:    Bridge, enabled
    Capability:    Router, enabled
  Port:
    PortID:        ifname GigabitEthernet1/0/24
    PortDescr:     Connect-to-Web-Server-01
-------------------------------------------------------------------------------

Nhìn vào đây, bạn biết ngay server đang cắm vào port Gi1/0/24 của con switch Core-Switch-Tầng-5. Không cần đoán mò, không cần dò dây.

Mẹo tối ưu và Bảo mật

1. Xuất dữ liệu cho Automation

Nếu bạn đang viết script để tự động hóa việc quản lý, hãy sử dụng định dạng JSON. Nó giúp việc bóc tách dữ liệu trở nên cực kỳ đơn giản:

sudo lldpcli show neighbors -f json

2. Quy hoạch IP nhanh sau khi xác định Port

Khi đã biết server nằm ở VLAN nào trên Switch, bước tiếp theo thường là gán IP. Để tránh nhầm lẫn khi tính toán dải IP (đặc biệt là các subnet lẻ như /27 hay /29), mình thường dùng IP Subnet Calculator. Công cụ này giúp xác định nhanh range IP và Broadcast chỉ trong vài giây.

3. Chế độ chỉ nhận (Receive-only)

Trong môi trường bảo mật cao, bạn có thể không muốn server tiết lộ thông tin của mình. Để server chỉ “nghe” mà không “nói”, hãy chỉnh sửa file /etc/default/lldpd:

DAEMON_ARGS="-r"

Sau đó khởi động lại: sudo systemctl restart lldpd.

Khắc phục sự cố khi không thấy thiết bị

Nếu lệnh show neighbors trống rỗng, hãy kiểm tra 3 điểm sau:

  1. Cấu hình Switch: Nhiều dòng Cisco mặc định tắt LLDP. Hãy vào config mode và gõ lldp run.
  2. Trạng thái Interface: Cáp phải được cắm chặt và đèn link phải sáng.
  3. Firewall: Dù hiếm gặp, nhưng hãy đảm bảo firewall không chặn EtherType 0x88cc.

Việc cài đặt lldpd lên toàn bộ cụm Cluster 50 node giúp mình vẽ lại sơ đồ kết nối chỉ trong 5 phút. Giải pháp này loại bỏ hoàn toàn các lỗi ngớ ngẩn do cắm nhầm dây giữa các node dự phòng. Chúc anh em quản trị hệ thống Linux nhàn nhã hơn với thủ thuật này!

Share: