Làm chủ Netplan trên Ubuntu: Hướng dẫn toàn diện về cấu hình mạng bằng YAML

.

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

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

  1. Chạy netplan apply sau khi lưu tệp cấu hình.
  2. 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 apply
    
    sudo 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

  1. Sử dụng lệnh ping để kiểm tra kết nối:
    ping 8.8.8.8
    
  1. Á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

  1. Cấu hình YAML trực quan : Dễ đọc và dễ chỉnh sửa.
  2. Thiết kế mạng linh hoạt : Hỗ trợ nhiều giao diện, bonding, routes và VLAN.
  3. Giao diện thống nhất : Hoạt động trên systemd-networkdNetworkManager.
  4. 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

  1. Thiết kế mạng ảo : Sử dụng nhiều VLAN để phân đoạn mạng một cách logic.
  2. Cấu hình IPv6 : Chuẩn bị cho hạ tầng mạng hiện đại.
  3. Kịch bản tự động : Tự động hoá cấu hình bằng Ansible hoặc Puppet.
  4. 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.

Tài nguyên bổ sung

年収訴求