Nỗi ám ảnh mang tên “Sợi cáp này đi về đâu?”
Tôi từng quản lý một hệ thống mạng cho văn phòng 100 nhân sự cùng một datacenter nhỏ với khoảng 30 con switch, router đủ loại từ Cisco, HP đến Juniper. Cảnh tượng quen thuộc nhất là mỗi khi có sự cố hoặc cần chuyển chỗ ngồi, tôi lại phải lúi húi cầm đèn pin vào phòng server. Việc SSH vào từng con switch rồi gõ show mac address-table hay show cdp neighbors thực sự là cực hình.
Áp lực nhất là khi sếp hỏi: “Thiết bị có IP 192.168.1.50 đang cắm vào port nào?”. Nếu bạn vẫn đang loay hoay mở file Excel “Sơ đồ mạng” cập nhật từ… 2 năm trước, tin tôi đi, bạn đang tự làm khó mình rồi.
Tại sao quản lý thủ công luôn là ‘nhiệm vụ bất khả thi’?
Mạng lưới là một thực thể sống. Nó thay đổi hàng ngày: thêm thiết bị, cắm lại port, hay thay switch lỗi. Duy trì sơ đồ bằng Visio hay Excel thường thất bại vì:
- Dữ liệu luôn ‘outdate’: Chỉ cần một lần kỹ thuật viên quên update sau khi cắm lại dây, toàn bộ tài liệu trở thành đống rác.
- Truy vết quá chậm: Việc đăng nhập thủ công vào 10 thiết bị để tìm một địa chỉ MAC có thể ngốn của bạn 30 phút quý giá.
- Thiếu tính liên kết: Bạn có IP nhưng không biết Port, có Port nhưng không rõ nó thuộc VLAN nào nếu không login trực tiếp.
Các phương án cứu cánh cho dân SysAdmin
Thông thường, anh em quản trị thường dùng vài cách sau:
- Quét Nmap: Biết máy nào đang online nhưng hoàn toàn ‘mù’ về vị trí port vật lý.
- Dùng Zabbix hoặc LibreNMS: Theo dõi băng thông rất tốt. Tuy nhiên, tính năng vẽ sơ đồ Topology và quản lý Port chuyên sâu thường khá yếu.
- Netdisco: Đây là ‘vũ khí’ chuyên biệt. Nó trả lời chính xác câu hỏi: “Cái gì đang cắm vào đâu và các switch nối với nhau thế nào?”.
Netdisco: ‘Chân ái’ cho quản trị hạ tầng
Netdisco là công cụ mã nguồn mở sử dụng SNMP để tự động thu thập dữ liệu. Nó không chỉ liệt kê thiết bị mà còn tự vẽ sơ đồ mạng, theo dõi lịch sử IP/MAC và quản lý VLAN tập trung.
Điểm đáng tiền nhất là khả năng tìm kiếm thần tốc. Chỉ cần gõ một phần IP hoặc MAC, hệ thống sẽ chỉ đích danh: Switch A, Port Gi0/1, VLAN 10. Bạn sẽ tiết kiệm được ít nhất 80% thời gian tìm kiếm thiết bị trong mạng.
Chuẩn bị trước khi cài đặt
- Một máy ảo Ubuntu 22.04 hoặc Debian 12.
- Quyền sudo.
- Các thiết bị mạng đã bật SNMP (v2c hoặc v3).
Các bước cài đặt Netdisco chi tiết
Quên kiểu cài đặt thủ công từng thư viện Perl phức tạp ngày xưa đi. Bây giờ chúng ta sẽ dùng script hiện đại để tối ưu thời gian.
Bước 1: Cài đặt các gói phụ trợ
sudo apt update
sudo apt install -y curl modern-perl postgresql-all graphviz libdbd-pg-perl libsnmp-perl libssl-dev libcrypt-openssl-rsa-perl
Bước 2: Tạo user chuyên dụng
Đừng bao giờ chạy Netdisco bằng quyền root. Đó là nguyên tắc bảo mật tối thượng.
sudo useradd -m -p x -s /bin/bash netdisco
sudo su - netdisco
Bước 3: Cài đặt Netdisco App
Tại terminal của user netdisco, hãy chạy lệnh sau:
mkdir ~/bin
curl -L https://cpanmin.us | perl - --notest --local-lib ~/perl5 App::Netdisco
# Cập nhật PATH để hệ thống nhận lệnh
echo 'export PATH=$PATH:$HOME/bin' >> ~/.bashrc
source ~/.bashrc
Bước 4: Thiết lập Database
Netdisco dùng PostgreSQL để lưu trữ. Bạn cần tạo database và user (thực hiện với quyền sudo):
sudo -u postgres psql -c "CREATE USER netdisco WITH PASSWORD 'mat_khau_cua_ban';"
sudo -u postgres psql -c "CREATE DATABASE netdisco OWNER netdisco;"
Bước 5: Cấu hình hệ thống
Quay lại user netdisco, tạo file cấu hình tại ~/environments/deployment.yml:
mkdir ~/environments
nano ~/environments/deployment.yml
Dán nội dung sau vào và lưu ý chỉnh sửa thông tin DB, SNMP:
database:
name: 'netdisco'
user: 'netdisco'
pass: 'mat_khau_cua_ban'
host: 'localhost'
snmp_auth:
- community: 'your_public_string'
read: true
Bước 6: Khởi tạo dữ liệu
~/bin/netdisco-deploy
Lệnh này sẽ tự động tạo bảng, tải MIBs (thư viện nhận diện thiết bị Cisco, HP…) và tạo tài khoản admin cho giao diện web.
Kích hoạt dịch vụ
Netdisco hoạt động với hai thành phần: Giao diện Web và Backend quét mạng.
~/bin/netdisco-web start
~/bin/netdisco-daemon start
Bây giờ, hãy mở trình duyệt và truy cập http://IP-Server:5000.
Mẹo thực chiến để làm chủ Netdisco
1. Kỹ thuật ‘mồi’ thiết bị
Lúc mới cài xong, Netdisco sẽ trống trơn. Bạn cần cung cấp IP của thiết bị Core đầu tiên:
~/bin/netdisco-do discover -d 10.0.0.1
Nhờ giao thức CDP/LLDP, Netdisco sẽ tự ‘mò’ ra các switch vệ tinh và tự động thêm chúng vào sơ đồ. Bạn không cần add từng con switch bằng tay.
2. Lịch trình quét tự động
Để dữ liệu luôn chính xác, hãy thiết lập lịch quét trong file deployment.yml:
schedule:
discoverall: '0 1 * * *' # Quét toàn bộ hệ thống lúc 1h sáng
macwalk: '*/30 * * * *' # Cập nhật vị trí máy tính mỗi 30 phút
arpwalk: '*/20 * * * *' # Cập nhật bảng IP/MAC mỗi 20 phút
3. Quyền năng Port Control
Nếu cấu hình SNMP có quyền Write, bạn có thể thực hiện Shut/No-Shut port ngay trên web. Tính năng này cực hữu ích khi cần cô lập nhanh một máy tính đang phát tán mã độc mà bạn không rảnh để mở terminal SSH.
Lời kết
Netdisco không thay thế hoàn toàn Zabbix, nhưng nó là mảnh ghép còn thiếu để quản lý hạ tầng vật lý. Kinh nghiệm của tôi cho thấy, triển khai Netdisco giúp giảm 70% áp lực khi xử lý sự cố kết nối. Nếu bạn đang quản lý trên 10 con switch, hãy cài đặt nó ngay hôm nay để thoát khỏi kiếp ‘dò dây’ mệt mỏi.
