1. Tổng quan về Netplan trên Ubuntu
Netplan là gì?
Netplan là công cụ quản lý cấu hình mạng được Ubuntu áp dụng từ phiên bản 17.10 trở đi. Trước đây, việc cấu hình mạng thường sử dụng ifconfig
hoặc /etc/network/interfaces
, nhưng Netplan cung cấp một phương thức mới thay thế. Điểm đặc biệt nhất của Netplan là sử dụng tệp YAML để mô tả cấu hình mạng. Nhờ đó, việc thiết lập mạng trở nên đơn giản, nhất quán và dễ dàng quản lý ngay cả trong những cấu trúc mạng phức tạp.
Netplan hỗ trợ các backend như NetworkManager
và systemd-networkd
, cho phép sử dụng trên cả phiên bản máy tính để bàn (Desktop) và máy chủ (Server) của Ubuntu. Điều này giúp người dùng có thể quản lý mạng theo một cách thống nhất trên các môi trường khác nhau.
Tại sao nên sử dụng Netplan?
So với các phương pháp cấu hình mạng truyền thống, Netplan mang lại nhiều ưu điểm:
- Cú pháp đơn giản: YAML có cấu trúc rõ ràng, dễ hiểu, giúp người mới bắt đầu có thể tiếp cận nhanh chóng.
- Quản lý thống nhất: Có thể sử dụng cho cả môi trường máy tính để bàn và máy chủ, giúp quản lý cấu hình mạng dễ dàng hơn.
- Thay đổi linh hoạt: Chỉ cần chỉnh sửa tệp cấu hình và áp dụng lại là có thể thay đổi mạng ngay lập tức mà không cần khởi động lại hệ thống.
Cấu trúc cơ bản của Netplan
Các tệp cấu hình của Netplan thường nằm trong thư mục /etc/netplan/
với phần mở rộng là .yaml
. Các tệp này chứa thông tin về giao diện mạng, địa chỉ IP và máy chủ DNS.
Dưới đây là một ví dụ về tệp YAML cấu hình đơn giản của Netplan:
network:
version: 2
renderer: networkd
ethernets:
enp3s0:
dhcp4: true
Ví dụ này cho phép giao diện mạng enp3s0
nhận địa chỉ IP tự động từ DHCP.
Vai trò của Netplan trong Ubuntu 18.04 LTS trở đi
Kể từ Ubuntu 18.04 LTS, Netplan được cài đặt mặc định và được sử dụng rộng rãi trong cả môi trường máy chủ và máy tính để bàn. Đặc biệt, trong môi trường máy chủ, nơi có nhiều giao diện mạng hoặc cần cấu hình địa chỉ IP tĩnh, Netplan giúp đơn giản hóa việc quản lý mạng.
Tiếp theo, chúng ta sẽ tìm hiểu cách thiết lập mạng bằng Netplan một cách cụ thể.

2. Cách thiết lập cơ bản với Netplan
Vị trí tệp cấu hình Netplan
Các tệp cấu hình Netplan thường được lưu trong thư mục /etc/netplan/
. Việc chỉnh sửa các tệp .yaml
trong thư mục này sẽ giúp thay đổi cấu hình mạng. Ví dụ, tệp có tên 50-cloud-init.yaml
thường xuất hiện trên các hệ thống Ubuntu, nhưng có thể thay đổi tùy theo môi trường.
Để mở tệp cấu hình, bạn có thể sử dụng trình chỉnh sửa văn bản như vi
hoặc nano
:
sudo vi /etc/netplan/50-cloud-init.yaml
Cấu hình địa chỉ IP động (DHCP)
Nếu bạn muốn sử dụng DHCP để tự động nhận địa chỉ IP, hãy sử dụng cấu hình YAML như sau. Đây là cách thiết lập đơn giản nhất, phù hợp với hầu hết môi trường gia đình hoặc văn phòng.
network:
version: 2
renderer: networkd
ethernets:
enp3s0:
dhcp4: true
Cấu hình địa chỉ IP tĩnh
Trong một số trường hợp, bạn cần đặt địa chỉ IP tĩnh cho máy chủ hoặc thiết bị cụ thể. Dưới đây là một ví dụ cấu hình địa chỉ IP tĩnh:
network:
version: 2
renderer: networkd
ethernets:
enp3s0:
addresses:
- 192.168.1.100/24
gateway4: 192.168.1.1
nameservers:
addresses:
- 8.8.8.8
- 8.8.4.4
Áp dụng cấu hình
Sau khi chỉnh sửa tệp cấu hình, sử dụng lệnh sau để áp dụng thay đổi:
sudo netplan apply
Kiểm tra cấu hình
Để xác nhận rằng cấu hình Netplan đã được áp dụng đúng, bạn có thể kiểm tra trạng thái của các giao diện mạng bằng lệnh sau:
ip a

3. Cấu hình nhiều giao diện mạng
Cấu hình nhiều giao diện Ethernet
Đối với các máy chủ hoặc thiết bị có nhiều giao diện mạng, bạn có thể đặt địa chỉ IP và cấu hình riêng cho từng giao diện. Dưới đây là ví dụ về cách thiết lập hai giao diện Ethernet với cấu hình khác nhau.
network:
version: 2
renderer: networkd
ethernets:
enp3s0:
dhcp4: true
enp4s0:
addresses:
- 192.168.1.150/24
gateway4: 192.168.1.1
nameservers:
addresses:
- 8.8.8.8
- 8.8.4.4
Cấu hình bonding để tăng tính dự phòng
Bonding là kỹ thuật giúp gộp nhiều giao diện mạng thành một giao diện ảo để tăng tính dự phòng và đảm bảo tính khả dụng của mạng. Dưới đây là ví dụ thiết lập hai giao diện Ethernet thành một giao diện ảo bond0
.
network:
version: 2
renderer: networkd
bonds:
bond0:
interfaces:
- enp3s0
- enp4s0
addresses:
- 192.168.1.200/24
gateway4: 192.168.1.1
nameservers:
addresses:
- 8.8.8.8
- 8.8.4.4
parameters:
mode: active-backup
primary: enp3s0
Cấu hình kết nối Wi-Fi
Netplan cũng hỗ trợ cấu hình kết nối Wi-Fi. Dưới đây là ví dụ thiết lập kết nối Wi-Fi với SSID cụ thể.
network:
version: 2
renderer: networkd
wifis:
wlp2s0:
access-points:
"my_wifi_network":
password: "password1234"
dhcp4: true
Cấu hình VLAN
Trong một số trường hợp, VLAN (Virtual LAN) được sử dụng để phân chia mạng một cách logic. Netplan hỗ trợ cấu hình VLAN như sau:
network:
version: 2
renderer: networkd
ethernets:
enp3s0:
dhcp4: true
vlans:
vlan10:
id: 10
link: enp3s0
addresses:
- 192.168.10.1/24

4. Cấu hình nâng cao với Netplan
Cấu hình định tuyến tĩnh
Nếu cần kết nối mạng thông qua nhiều bộ định tuyến, bạn có thể thiết lập định tuyến tĩnh bằng Netplan. Ví dụ dưới đây chỉ định tuyến lưu lượng đến mạng 10.0.0.0/24
qua 192.168.1.1
.
network:
version: 2
renderer: networkd
ethernets:
enp3s0:
addresses:
- 192.168.1.100/24
routes:
- to: 10.0.0.0/24
via: 192.168.1.1
Cấu hình nhiều cổng gateway mặc định
Nếu có nhiều giao diện mạng, bạn có thể cấu hình các cổng gateway khác nhau cho từng giao diện.
network:
version: 2
renderer: networkd
ethernets:
enp3s0:
addresses:
- 192.168.1.100/24
gateway4: 192.168.1.1
enp4s0:
addresses:
- 10.0.0.100/24
gateway4: 10.0.0.1
Cấu hình máy chủ DNS
Bạn có thể chỉ định máy chủ DNS một cách tĩnh trong Netplan. Dưới đây là ví dụ sử dụng DNS công cộng của Google.
network:
version: 2
renderer: networkd
ethernets:
enp3s0:
addresses:
- 192.168.1.100/24
nameservers:
addresses:
- 8.8.8.8
- 8.8.4.4
5. Xử lý sự cố với Netplan
Các vấn đề thường gặp và nguyên nhân
1. Cấu hình không được áp dụng
Nếu sau khi áp dụng cấu hình nhưng không có thay đổi, hãy kiểm tra các nguyên nhân sau:
- Lỗi thụt dòng trong YAML: YAML rất nhạy với khoảng trắng và thụt dòng. Kiểm tra lại tệp cấu hình xem có lỗi nào không.
- Sai tên giao diện mạng: Sử dụng lệnh
ip a
để kiểm tra tên giao diện thực tế.
Giải pháp
sudo netplan apply
sudo netplan try
Kiểm tra nhật ký lỗi
Bạn có thể xem nhật ký lỗi bằng lệnh:
journalctl -u systemd-networkd

6. Tổng kết và bước tiếp theo
Những lợi ích chính của Netplan
Netplan mang lại nhiều lợi ích:
- Cấu hình YAML dễ hiểu: Dễ chỉnh sửa và quản lý.
- Hỗ trợ linh hoạt: Hỗ trợ cả
NetworkManager
vàsystemd-networkd
. - Thay đổi nhanh chóng: Cấu hình có thể được áp dụng ngay lập tức.
Các bước tiếp theo
Để nâng cao kiến thức về Netplan, bạn có thể:
- Thiết lập mạng ảo (VLAN) để quản lý hệ thống phức tạp.
- Cấu hình IPv6 để chuẩn bị cho tương lai.
- Tự động hóa bằng Ansible hoặc Puppet.
- Tăng cường bảo mật bằng cách thiết lập tường lửa và hạn chế truy cập.
Tài nguyên học tập
Bạn có thể tham khảo các tài liệu chính thức: