.
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 giới thiệu trong các phiên bản Ubuntu bắt đầu từ 17.10. Trước đây, các công cụ như ifconfig và /etc/network/interfaces được sử dụng, nhưng Netplan mang lại một cách tiếp cận mới cho việc cấu hình mạng. Một trong những ưu điểm lớn nhất của Netplan là nó sử dụng các tệp YAML để mô tả các thiết lập mạng. Điều này làm cho việc cấu hình trở nên đơn giản và nhất quán, cho phép ngay cả những môi trường mạng phức tạp cũng có thể được quản lý dễ dàng.
Netplan hỗ trợ các backend như NetworkManager và systemd-networkd và có sẵn trên cả hai phiên bản Ubuntu Desktop và Server. Điều này cho phép quản lý mạng thống nhất trên các môi trường khác nhau.
Tại sao nên 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 các lợi ích sau:
- Cú pháp đơn giản : Định dạng YAML trực quan và có cấu trúc rõ ràng, giúp các cấu hình dễ hiểu ngay cả với người mới bắt đầu.
- Quản lý thống nhất : Vì nó hoạt động trên cả môi trường desktop và server, các cấu hình mạng đa dạng có thể được quản lý tập trung.
- Thay đổi động : Việc chỉnh sửa và áp dụng tệp cấu hình cho phép cập nhật các thiết lập mạng ngay lập tức.
Cấu trúc cơ bản của Netplan
Các tệp cấu hình Netplan thường nằm trong thư mục /etc/netplan/ và có phần mở rộng .yaml. Những tệp này chứa thông tin như cấu hình giao diện mạng, địa chỉ IP và chi tiết máy chủ DNS.
Dưới đây là một ví dụ về cấu hình Netplan cơ bản:
network:
version: 2
renderer: networkd
ethernets:
enp3s0:
dhcp4: true
Trong ví dụ này, giao diện Ethernet enp3s0 được cấu hình để nhận địa chỉ IP qua DHCP.
Vai trò của Netplan trên Ubuntu 18.04 LTS trở lên
Netplan được cài đặt mặc định trên Ubuntu 18.04 LTS và các phiên bản sau này và được sử dụng rộng rãi để quản lý mạng trong môi trường desktop và server. Trong môi trường server, nơi thường cần nhiều giao diện mạng hoặc gán IP tĩnh, tính linh hoạt của Netplan trở nên đặc biệt hữu ích.
Tiếp theo, chúng ta sẽ khám phá các ví dụ thực tế về cấu hình mạng bằng Netplan.
2. Cấu hình Netplan Cơ bản
Vị trí của các 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/. Bạn có thể thay đổi các thiết lập mạng bằng cách chỉnh sửa các tệp .yaml này. Các tên tệp như 50-cloud-init.yaml là phổ biến, nhưng có thể thay đổi tùy theo môi trường.
Để mở tệp cấu hình, sử dụng một trình soạn thảo 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)
Để tự động nhận địa chỉ IP bằng DHCP, sử dụng cấu hình YAML sau. Đây là thiết lập đơn giản nhất và thường được dùng trong môi trường gia đình và văn phòng.
network:
version: 2
renderer: networkd
ethernets:
enp3s0:
dhcp4: true
Cấu hình địa chỉ IP tĩnh
Một số môi trường yêu cầu gán địa chỉ IP tĩnh cho máy chủ hoặc các thiết bị cụ thể. Ví dụ dưới đây minh họa cách 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, áp dụng cấu hình Netplan bằng lệnh dưới đây:
sudo netplan apply
Kiểm tra cấu hình
Để xác minh rằng các thiết lập Netplan đã được áp dụng thành công, kiểm tra trạng thái 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
Các thiết bị có nhiều giao diện mạng có thể gán các thiết lập khác nhau cho từng giao diện. Ví dụ dưới đây cấu hình hai giao diện Ethernet:
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
Bonding cho dự phòng
Bonding kết hợp nhiều giao diện mạng thành một giao diện ảo duy nhất, cung cấp tính dự phòng và cải thiện tính sẵn sàng. Ví dụ dưới đây tạo một giao diện bond có tên 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 Wi‑Fi
Netplan cũng hỗ trợ cấu hình Wi‑Fi. Ví dụ sau kết nối tới một SSID cụ thể:
network:
version: 2
renderer: networkd
wifis:
wlp2s0:
access-points:
"my_wifi_network":
password: "password1234"
dhcp4: true
Cấu hình VLAN
Virtual LAN (VLAN) có thể phân đoạn mạng một cách logic. Ví dụ dưới đây tạo một VLAN trên enp3s0:
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 Netplan nâng cao
Cấu hình định tuyến tĩnh
Khi kết nối các mạng qua nhiều router, cần có định tuyến tĩnh. Ví dụ dưới đây chỉ định một tuyến để truy cập một mạng cụ thể:
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 này thiết lập một tuyến tĩnh cho mạng 10.0.0.0/24 thông qua cổng mặc định 192.168.1.1.
Nhiều cổng mặc định
Netplan cho phép đặt các cổng mặc định khác nhau cho mỗi giao diện. Điều này hữu ích khi truy cập Internet qua các phân đoạn mạng khác nhau:
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
Ví dụ dưới đây chỉ định các máy chủ 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
Cấu hình bonding nâng cao
Các chế độ bonding có thể được thay đổi để có các hành vi khác nhau. Ví dụ dưới đây cấu hình bonding kiểu round‑robin:
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: balance-rr
Chế độ balance-rr luân phiên lưu lượng qua hai giao diện, cải thiện hiệu năng nhờ phân phối băng thông.
Cấu hình VLAN nâng cao
VLAN được sử dụng trong các mạng quy mô lớn để chia môi trường một cách logic. Ví dụ dưới đây gán VLAN ID 100:
network:
version: 2
renderer: networkd
ethernets:
enp3s0:
dhcp4: true
vlans:
vlan100:
id: 100
link: enp3s0
addresses:
- 192.168.100.1/24
Điều này gán VLAN ID 100 cho giao diện enp3s0, tạo ra một mạng ảo được phân đoạn.
5. Khắc phục sự cố Netplan
Mặc dù Netplan tiện lợi, các lỗi cấu hình hoặc hạn chế của hệ thống có thể gây ra vấn đề. Phần này giải thích các vấn đề thường gặp và cách khắc phục chúng.
Các vấn đề và nguyên nhân thường gặp của Netplan
1. Cấu hình không được áp dụng
.
- Lỗi thụt lề YAML : YAML rất nghiêm ngặt về thụt lề. Khoảng cách không đúng sẽ ngăn việc phân tích cú pháp chính xác.
- Tên giao diện không đúng : Đảm bảo tên giao diện khớp với kết quả của lệnh
ip a.
Giải pháp
- Chạy
netplan applysau khi lưu tệp cấu hình. - Sử dụng
sudo netplan tryđể thử nghiệm các thay đổi trước khi áp dụng chúng một cách vĩnh viễn.sudo netplan applysudo netplan try
2. Lỗi kết nối mạng
- Cài đặt gateway hoặc DNS không đúng : Xác minh địa chỉ IP và cấu hình DNS.
- Vấn đề về giao diện vật lý : Kiểm tra cáp và phần cứng.
Giải pháp
- Sử dụng lệnh
pingđể kiểm tra kết nối:ping 8.8.8.8
- Áp dụng lại cấu hình mạng và khởi động lại các dịch vụ:
sudo systemctl restart networkd
3. Thông báo lỗi khi chạy netplan apply
Lỗi xảy ra khi cấu hình không chính xác hoặc giao diện không được nhận dạng.
- Ví dụ thông báo lỗi :
Error in network configuration: failed to bring up device enp3s0
Xác minh tên giao diện đúng bằng cách dùng ip a.
Giải pháp
Kiểm tra thụt lề, chính tả, tên giao diện và độ chính xác của địa chỉ IP.
Kiểm tra nhật ký
Nhật ký hệ thống rất hữu ích cho việc khắc phục sự cố. Sử dụng lệnh dưới đây để xem nhật ký liên quan đến mạng:
journalctl -u systemd-networkd
Lệnh này hiển thị thông tin chi tiết để giúp giải quyết các lỗi cấu hình.
6. Tóm tắt và Các bước tiếp theo
Sử dụng Netplan cho phép quản lý cài đặt mạng Ubuntu một cách đơn giản và hiệu quả. Dưới đây là bản tóm tắt và các bước tiếp theo được đề xuất để khám phá sâu hơn.
Những ưu điểm chính của Netplan
- Cấu hình YAML trực quan : Dễ đọc và dễ chỉnh sửa.
- Thiết kế mạng linh hoạt : Hỗ trợ nhiều giao diện, bonding, routes và VLAN.
- Giao diện thống nhất : Hoạt động trên
systemd-networkdvàNetworkManager. - Cập nhật thời gian thực : Áp dụng thay đổi ngay lập tức chỉ với một lệnh.
Các bước tiếp theo được đề xuất
- Thiết kế mạng ảo : Sử dụng nhiều VLAN để phân đoạn mạng một cách logic.
- Cấu hình IPv6 : Chuẩn bị cho hạ tầng mạng hiện đại.
- Kịch bản tự động : Tự động hoá cấu hình bằng Ansible hoặc Puppet.
- Tăng cường bảo mật : Củng cố tường lửa và các cài đặt kiểm soát truy cập.



