Hướng dẫn sử dụng Netplan trên Ubuntu|Từ cơ bản đến nâng cao về cấu hình mạng

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ư NetworkManagersystemd-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:

  1. 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.
  2. 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.
  3. 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ả NetworkManagersystemd-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: