Tác giả: Ban biên tập ngoctraimkt.com | Ngày xuất bản: 2026-05-04
Thank you for reading this post, don't forget to subscribe!NetBox là mã nguồn mở Apache 2.0 được cộng đồng kỹ sư mạng dùng làm source of truth cho hạ tầng network. Thay vì ghi chép IP, VLAN, rack trong Excel, NetBox lưu toàn bộ dữ liệu IPAM/DCIM vào một hệ thống có API, có log và có phân quyền. Bài viết này sẽ trả lời: NetBox giải quyết bài toán gì, cài đặt ra sao, tích hợp Ansible thế nào và khi nào nên dùng Nautobot.
NetBox giải quyết bài toán quản lý hạ tầng mạng như thế nào?
NetBox giải quyết bằng cách tập trung toàn bộ dữ liệu IPAM và DCIM vào một database duy nhất, có liên kết chặt chẽ giữa thiết bị, cáp, IP, VLAN và circuit. Khi một kỹ sư cần biết IP nào đang gắn trên cổng nào, hoặc tuyến cáp đi qua patch panel nào, NetBox trả lời ngay từ một giao diện.
Trước đây, các team thường dùng nhiều tool rời rạc: một file Excel cho IP, một tool khác cho rack, một bảng tính cho cáp. Dữ liệu dễ lệch nhau và không ai dám thay đổi. NetBox xóa bỏ sự phân mảnh đó bằng cách định nghĩa schema chuẩn: Site có Rack, Rack có Device, Device có Interface, Interface có IP và VLAN. Toàn bộ quan hệ được kiểm tra ràng buộc tự động. Tìm hiểu thêm khái niệm IPAM để hiểu tầng logic của mô hình này.
Theo GitHub, repository netbox-community/netbox hiện có hơn 15.000 star, hơn 2.000 fork và hơn 300 người đóng góp. Con số này cho thấy NetBox không phải tool phòng lab, mà đã được kiểm chứng trong nhiều môi trường production. Bạn có thể dùng nó một mình, nhưng lợi ích thực sự xuất hiện khi team từ 5 người trở lên cùng cập nhật một nguồn dữ liệu.

Tại sao NetBox được xem là Source of Truth trong Network Automation?
NetBox là source of truth vì nó lưu trạng thái mong muốn của hạ tầng, không phải trạng thái phát sinh từ thiết bị. Công cụ automation đọc dữ liệu từ NetBox, đối chiếu với cấu hình hiện tại, rồi sinh ra các bước thay đổi. Nhờ đó, không có chuyện mỗi hệ thống tự hiểu một kiểu.
Một pipeline chuẩn thường gồm: NetBox cung cấp dữ liệu → Ansible/Salt/Nornir render template → thiết bị nhận config → hệ thống monitoring xác nhận. NetBox không trực tiếp push config, nhưng nếu NetBox sai thì toàn bộ pipeline sai theo. Vì vậy, nó được gọi là nơi bắt đầu của mọi thứ. Để tìm hiểu công cụ thực thi, bạn có thể đọc bài Ansible.
NetBox phát hành theo giấy phép Apache 2.0, nghĩa là doanh nghiệp được tự do cài đặt, sửa đổi và chạy mà không phải trả phí bản quyền. Dữ liệu trong NetBox cũng có change log: mọi thao tác thêm, sửa, xóa đều ghi rõ user và thời gian, giúp việc audit tự động hóa trở nên minh bạch.

Các thành phần dữ liệu chính trong NetBox liên kết với nhau ra sao?
Các thành phần chính trong NetBox liên kết theo thứ bậc từ vật lý tới logic: Site → Rack → Device → Interface → IP/VLAN. Mỗi object đều nằm dưới một object cha và có thể nối tới object khác qua Cable. Cấu trúc này giúp bạn truy vết nhanh từ cổng switch đến máy chủ, từ IP đến tên thiết bị.
Ví dụ, bạn tạo Site ‘Hà Nội’, bên trong có Rack ‘R01’, Rack có 42U. Device ‘core-sw01’ đặt tại U20, Interface ‘Ten0/2’ nối cáp tới Device ‘server01’ tại U30. Gán IP 10.0.0.1/24 cho interface đó, và gán VLAN 100 cho cùng interface. Khi ai đó hỏi VLAN 100 chạy trên máy nào, NetBox trả lời chỉ trong vài giây.
Ngoài ra, NetBox còn quản lý circuits, power panel, tenant, và custom fields. Các thành phần này không đứng rời rạc mà dùng chung ID, nên khi xóa một device, bạn có thể xem trước những IP, cable, power feed liên quan. Đây là điểm mà công cụ IPAM đơn thuần không làm được.
Hướng dẫn cài đặt NetBox với PostgreSQL, Redis và Gunicorn
Để chạy NetBox production, bạn cần Python 3.10+, PostgreSQL 14+, Redis 6+ và dùng Gunicorn làm WSGI server, Nginx làm reverse proxy. Cách nhanh nhất là clone repository chính thức, tạo virtualenv, cài dependencies, chạy migration rồi khởi động Gunicorn. Bạn có thể cài tay hoặc dùng Docker Compose.

- Clone repository:
git clone https://github.com/netbox-community/netbox.git, sau đó tạo fileconfiguration.pytheoconfiguration.example.py. - Tạo database PostgreSQL:
createdb netbox, tạo user riêng và cấu hình thông tin kết nối trongconfiguration.py. - Cài dependencies:
pip install -r requirements.txttrong virtualenv. Theo tài liệu chính thức NetBox, môi trường cần Python 3.10+, PostgreSQL 14+ và Redis 6+. - Chạy migration:
python manage.py migratevàpython manage.py createsuperuser. - Chạy Gunicorn:
gunicorn -c gunicorn.py netbox.wsgi, sau đó cấu hình Nginx proxy sang cổng Gunicorn.
Nếu muốn dùng thử nhanh, bạn có thể chạy docker-compose up từ repository NetBox Docker. Khi triển khai thực tế, hãy cấu hình backup PostgreSQL và Redis mỗi ngày.
Tích hợp NetBox với Ansible qua REST API cần những bước gì?
Cần ba bước: cài collection netbox.netbox trên control node, tạo API token trong NetBox, và viết playbook sử dụng các module để đọc/ghi dữ liệu. Ansible gọi REST API bằng HTTP, nên NetBox chỉ cần mở cổng 80/443 và cho phép địa chỉ control node truy cập.
Trong playbook, bạn khai báo netbox_url và netbox_token, sau đó dùng các module như netbox_device, netbox_ip_address, netbox_vlan để đồng bộ dữ liệu. Vì API trả JSON, bạn cũng có thể dùng module uri hoặc curl để thử nghiệm trước khi viết playbook.
Theo Ansible docs, collection netbox.netbox cung cấp hơn 50 module cho NetBox và được cập nhật bởi cộng đồng. Khi muốn lấy danh sách device, bạn dùng module netbox_device với state present hoặc absent; dữ liệu trả về sẽ khớp với object trong NetBox.
Khi nào nên chọn NetBox thay vì Nautobot?
Chọn NetBox khi bạn cần một source of truth ổn định, ít phụ thuộc plugin và chỉ tập trung vào IPAM/DCIM. Chọn Nautobot khi bạn muốn GraphQL, cấu trúc plugin cởi mở hơn, hoặc cần lưu thêm dữ liệu ngoài network. Nếu chỉ quản lý IP đơn thuần, phpIPAM là lựa chọn nhẹ hơn.
Nautobot được Network to Code fork từ NetBox vào năm 2018, theo tài liệu chính thức Nautobot. Từ đó hai dự án đi khác hướng: NetBox giữ triết lý core gọn và chuẩn, còn Nautobot đặt vào nền tảng dữ liệu mở rộng cho automation. Cả hai đều có REST API và hỗ trợ Ansible, nhưng Nautobot bổ sung GraphQL và data pipeline.
Bảng dưới so sánh nhanh ba lựa chọn thay thế:
| Tiêu chí | NetBox | Nautobot | phpIPAM |
|---|---|---|---|
| Loại công cụ | IPAM + DCIM | Nền tảng dữ liệu mạng, hướng plugin | IPAM đơn thuần |
| API | REST API | REST API + GraphQL | REST API |
| Mô hình DCIM | Rack, device, cable, power | Rack, device, cable, power | Không có |
| Khả năng mở rộng | Plugin có chọn lọc, giữ ổn định | Plugin mạnh, khuyến khích tùy biến | Hạn chế, chỉ đáp ứng IPAM |
| Cộng đồng phát triển | NetBox community | Network to Code | phpipam.net |
| Phù hợp | Network team muốn source of truth gọn | Nền tảng automation rộng | Team chỉ cần quản lý IP |
Nhìn chung, nếu bạn đã có team mạng và chỉ muốn chuẩn hóa hạ tầng, NetBox là lựa chọn an toàn. Nếu dự án cần nền tảng dữ liệu rộng hoặc GraphQL, hãy cân nhắc Nautobot. Còn phpIPAM chỉ phù hợp bổ sung, không thay thế được DCIM. Đọc thêm bài so sánh Nautobot và NetBox để có góc nhìn kỹ hơn.

Câu hỏi thường gặp
Dưới đây là các câu hỏi được hỏi nhiều nhất khi bắt đầu dùng NetBox. Các câu trả lời được viết ngắn gọn, tập trung vào nhu cầu thực tế của kỹ sư mạng, tránh lý thuyết dài dòng. Nếu bạn cần thêm thông tin, hãy đọc phần hướng dẫn phía trên hoặc tài liệu chính thức.
NetBox có miễn phí không?
NetBox miễn phí hoàn toàn theo giấy phép Apache 2.0. Bạn có thể tự cài trên server nội bộ hoặc dùng NetBox Cloud của NetBox Labs. Chi phí Cloud tính theo số lượng device hoặc người dùng, nhưng phần mềm lõi không thu phí.
NetBox có tự động push config cho thiết bị không?
Không. NetBox không kết nối trực tiếp đến switch/router và không sinh lệnh theo tình trạng thiết bị. Nó chỉ cung cấp dữ liệu chuẩn để các công cụ như Ansible, Nornir, Salt đọc qua API. Bạn cần xây dựng pipeline riêng để render template và đẩy cấu hình.
NetBox khác gì với phpIPAM?
phpIPAM chuyên quản lý IP, prefix, VLAN và có UI đơn giản, nhưng không quản lý rack, device, cable, power. NetBox kết hợp IPAM và DCIM, nên phù hợp khi bạn cần mô hình hóa toàn bộ hạ tầng từ tầng vật lý đến IP. Nếu chỉ cần IP, phpIPAM nhẹ hơn; nếu cần source of truth, NetBox trọn vẹn hơn.
Làm sao nhập dữ liệu từ Excel vào NetBox?
NetBox hỗ trợ import CSV ngay trong giao diện, hoặc bạn dùng REST API để đồng bộ hàng loạt. Với file Excel, hãy xuất thành CSV đúng tên field của NetBox, kiểm tra quan hệ site/rack/device trước khi import. Nếu có nhiều dữ liệu, nên viết script Python gọi API để tránh thiếu ràng buộc.
Kết luận: Lộ trình áp dụng NetBox cho hạ tầng của bạn
Nếu bạn đang dùng Excel hoặc nhiều tool IPAM/DCIM rời rạc, hãy bắt đầu bằng việc import một site nhỏ vào NetBox, tạo dữ liệu test và gọi API thử. Sau đó cài collection Ansible, viết playbook đồng bộ device, IP, VLAN rồi mở rộng dần. Mục tiêu là để NetBox trở thành nguồn duy nhất mọi pipeline đọc vào.
Đừng cố chuyển toàn bộ dữ liệu trong một tuần. Hãy chọn một mô hình pilot, dùng song song với hệ thống cũ, đối chiếu dữ liệu trước khi chuyển hẳn. . Khi đã ổn định, NetBox sẽ giảm thời gian tìm kiếm thông tin và giúp automation không đi sai hướng.

