Quên /etc/network/interfaces đi, giờ là thời của Netplan
Nếu bạn đã quen với việc sửa file /etc/network/interfaces trên các bản Debian cũ, việc làm quen với Netplan trên Ubuntu 18.04 trở đi có thể gây chút bỡ ngỡ. Thay vì dùng các dòng lệnh cấu hình rời rạc, Netplan yêu cầu chúng ta làm việc với định dạng YAML. Cách tiếp cận này mang tính khai báo (declarative) giúp việc quản lý hạ tầng đồng nhất hơn.
Tôi từng mất trắng một buổi chiều khi chuyển từ CentOS sang Ubuntu 22.04 chỉ để tìm nơi đặt cấu hình mạng. Ban đầu, sự nhạy cảm của YAML với các khoảng trắng khiến tôi khá khó chịu. Tuy nhiên, khi triển khai cho các cụm Cluster hơn 50 node, tôi nhận thấy Netplan cực kỳ lợi hại. Nó giúp đồng bộ cấu hình qua Ansible nhanh và ít sai sót hơn hẳn cách làm truyền thống.
Netplan có gì khác biệt với các phương pháp cũ?
Hãy xem nhanh bảng so sánh dưới đây để hiểu vị trí của Netplan trong hệ sinh thái Linux:
- ifupdown (Truyền thống): Đơn giản nhưng dễ rối khi hệ thống có trên 10 card mạng hoặc chạy Bond/Bridge phức tạp.
- NetworkManager: Lựa chọn số một cho Laptop/Desktop nhờ khả năng bắt Wifi linh hoạt, nhưng lại quá nặng nề cho môi trường Server.
- Netplan (Hiện đại): Đóng vai trò lớp trừu tượng (Abstraction layer). Bạn viết file YAML, Netplan sẽ biên dịch cấu hình đó cho
systemd-networkdhoặcNetworkManagerxử lý.
Ưu và nhược điểm khi vận hành thực tế
Điểm cộng
- Cấu trúc phân cấp: Nhìn vào file YAML, bạn sẽ thấy ngay mối quan hệ giữa IP, card mạng và Bridge. Mọi thứ rất trực quan.
- Chế độ an toàn: Lệnh
netplan trylà tính năng “đáng tiền” nhất. Bạn có 120 giây để xác nhận thay đổi. Nếu cấu hình sai gây mất kết nối SSH, hệ thống sẽ tự động rollback về trạng thái cũ. - Quản lý theo module: Bạn có thể chia nhỏ cấu hình thành nhiều file trong
/etc/netplan/để dễ bảo trì.
Điểm trừ
- YAML cực kỳ khắt khe: Chỉ cần dư một khoảng trắng hoặc dùng nhầm phím Tab thay vì Space, toàn bộ cấu hình sẽ hỏng. Đây là lỗi phổ biến nhất với những người mới bắt đầu.
Ba kịch bản cấu hình phổ biến nhất
Trước khi bắt tay vào sửa file, hãy dùng lệnh ip a để kiểm tra chính xác tên interface (ví dụ: eth0, enp0s3 hoặc ens18).
1. Thiết lập IP tĩnh (Static IP) chuẩn xác
Tru cập thư mục cấu hình và mở file (thường là 01-netcfg.yaml):
sudo nano /etc/netplan/01-netcfg.yaml
Dưới đây là mẫu cấu hình chuẩn cho Server:
network:
version: 2
renderer: networkd
ethernets:
enp0s3:
dhcp4: no
addresses:
- 192.168.1.100/24
routes:
- to: default
via: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 1.1.1.1]
Lưu ý quan trọng: Từ bản Ubuntu 22.04, từ khóa gateway4 đã bị khai tử. Bạn nên dùng cấu trúc routes như trên để đảm bảo tương thích lâu dài.
2. Tạo Network Bridge cho ảo hóa (KVM/LXD)
Khi chạy máy ảo, bạn cần một Bridge để các VM giao tiếp với mạng ngoài. Thay vì gán IP cho card vật lý, chúng ta sẽ gán nó vào Bridge.
network:
version: 2
renderer: networkd
ethernets:
enp0s3:
dhcp4: no
bridges:
br0:
interfaces: [enp0s3]
addresses: [192.168.1.100/24]
routes:
- to: default
via: 192.168.1.1
nameservers:
addresses: [8.8.8.8]
parameters:
stp: true
forward-delay: 4
3. Cấu hình Bonding (LACP) tăng băng thông và dự phòng
Trong môi trường doanh nghiệp, việc cắm 2 dây mạng vào 2 Switch khác nhau giúp tránh sự cố Single Point of Failure. Netplan xử lý việc này rất gọn gàng:
network:
version: 2
renderer: networkd
ethernets:
enp0s3:
dhcp4: no
enp0s8:
dhcp4: no
bonds:
bond0:
interfaces: [enp0s3, enp0s8]
addresses: [10.0.0.50/24]
parameters:
mode: 802.3ad
mii-monitor-interval: 100
lacp-rate: fast
transmit-hash-policy: layer2+3
Quy trình áp dụng cấu hình “sống còn”
Đừng bao giờ gõ ngay sudo netplan apply. Nếu có lỗi cú pháp hoặc sai IP, bạn sẽ bị văng khỏi SSH ngay lập tức. Nếu Server đặt ở trung tâm dữ liệu cách xa hàng trăm cây số, đây thực sự là một rắc rối lớn.
Hãy luôn sử dụng:
sudo netplan try
Lệnh này sẽ kiểm tra cú pháp và chạy thử. Nếu sau 120 giây bạn không xác nhận, hệ thống sẽ tự trả về cấu hình cũ. Nếu muốn soi lỗi chi tiết, hãy thêm flag debug:
sudo netplan --debug apply
Kinh nghiệm thực chiến để tránh lỗi ngớ ngẩn
- Luôn dùng 2 khoảng trắng (2 spaces): Đừng bao giờ dùng Tab. YAML coi Tab là ký tự không hợp lệ.
- Kiểm tra tên card: Sau khi cập nhật Kernel hoặc đổi phần cứng,
eth0có thể biến thànhens18. Hãy dùngip link showđể kiểm tra lại. - Lỗi sau khi Reboot: Nếu
netplan applychạy tốt nhưng khởi động lại mất mạng, hãy kiểm tra trạng thái service bằngsystemctl status systemd-networkd.
Làm chủ Netplan là bước đệm quan trọng để tiến tới hạ tầng dạng mã nguồn (Infrastructure as Code). Khi đã quen với YAML, bạn sẽ thấy việc quản trị mạng trở nên logic, sạch sẽ và chuyên nghiệp hơn rất nhiều.
