Netplan và cách chuẩn bị đúng cách

Ubuntu Hệ điều hành tuyệt vời, đã lâu rồi tôi chưa dùng đến nó. Ubuntu Tôi đang dùng máy chủ và việc cập nhật máy tính để bàn của mình từ một phiên bản ổn định là không hợp lý. Vì vậy, cách đây không lâu, tôi phải xử lý một bản phát hành hoàn toàn mới. Ubuntu Trên máy chủ 18.04, tôi hoàn toàn kinh ngạc khi nhận ra mình đã lạc hậu quá xa và không thể cấu hình mạng vì hệ thống cũ kỹ dùng để cấu hình giao diện mạng bằng cách chỉnh sửa tệp /etc/network/interfaces đã biến mất. Và thứ thay thế nó là gì? Một thứ đáng sợ và thoạt nhìn hoàn toàn khó hiểu - đó chính là "Netplan".

Thành thật mà nói, lúc đầu tôi không hiểu Netplan là gì và "tại sao lại cần thiết, khi mà mọi thứ đều rất tiện lợi", nhưng sau một thời gian sử dụng, tôi nhận ra nó có sức hấp dẫn riêng. Vậy là đủ lời hoa mỹ rồi, hãy cùng tìm hiểu Netplan là gì. Đây là một tiện ích mới để cấu hình mạng trong... Ubuntu, ít nhất là "Tôi chưa từng gặp trường hợp nào như thế này ở các bản phân phối khác." Một điểm khác biệt đáng kể của Netplan là cấu hình được viết bằng ngôn ngữ YAML, vâng, bạn đã nghe đúng YAML, các nhà phát triển đã quyết định theo kịp thời đại (và dù họ có khen ngợi nó bao nhiêu đi chăng nữa, tôi vẫn nghĩ đó là một ngôn ngữ tệ hại). Nhược điểm chính của ngôn ngữ này là nó rất nhạy cảm với khoảng trắng, hãy xem cấu hình bằng một ví dụ.

Các tập tin cấu hình nằm dọc theo đường dẫn /etc/netplan/filename.yaml, giữa mỗi khối phải có + 2 dấu cách.

1) Tiêu đề tiêu chuẩn trông như thế này:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0f0:
      dhcp4:no

Hãy xem những gì chúng tôi đã làm bây giờ:

  • mạng: - đây là phần bắt đầu của khối cấu hình.
  • renderer: networkd - ở đây chúng tôi chỉ ra trình quản lý mạng mà chúng tôi sẽ sử dụng, đây là networkd hoặc NetworkManager
  • version: 2 - theo tôi hiểu thì ở đây là phiên bản YAML.
  • ethernets: - khối này cho biết rằng chúng tôi sẽ định cấu hình giao thức ethernet.
  • enps0f0: - cho biết bộ điều hợp mạng nào chúng tôi sẽ định cấu hình.
  • dhcp4:no - tắt DHCP v4, tương ứng cho 6 v6 dhcp6

2) Hãy thử gán địa chỉ IP:

    enp3s0f0:
      dhcp4:no
      macaddress: bb:11:13:ab:ff:32
      addresses: [10.10.10.2/24, 10.10.10.3/24]
      gateway4: 10.10.10.1
      nameservers:
        addresses: 8.8.8.8

Ở đây chúng tôi đặt máy chủ poppy, ipv4, cổng và dns. Lưu ý rằng nếu chúng ta cần nhiều hơn một địa chỉ IP thì chúng ta viết chúng cách nhau bằng dấu phẩy và có dấu cách bắt buộc sau đó.

3) Nếu chúng ta cần thì sao liên kết?

  bonds:
    bond0:
      dhcp4: no
      interfaces: [enp3s0f0, enp3s0f1]
      parameters: 
        mode: 802.3ad
        mii-monitor-interval: 1

  • trái phiếu: - một khối giải thích rằng chúng ta sẽ cấu hình liên kết.
  • bond0: - tên giao diện tùy ý.
  • giao diện: - một tập hợp các giao diện được thu thập trong một liên kết, “như đã nêu trước đó, nếu có một số tham số, chúng tôi mô tả chúng trong dấu ngoặc vuông.”
  • tham số: - mô tả khối cài đặt tham số
  • mode: - chỉ định chế độ mà liên kết sẽ hoạt động.
  • mii-monitor-interval: — đặt khoảng thời gian giám sát thành 1 giây.

Bên trong khối có tên là bond, bạn cũng có thể định cấu hình các tham số như địa chỉ, cổng4, tuyến đường, v.v.

Chúng tôi đã thêm dự phòng cho mạng của mình, bây giờ tất cả những gì còn lại là cài đặt vlan và việc thiết lập có thể được coi là hoàn tất.

vlans: 
    vlan10:
      id: 10
      link: bond0
      dhcp4: no
      addresses: [10.10.10.2/24]
      gateway: 10.10.10.1
      routes:
        - to: 10.10.10.2/24
          via: 10.10.10.1
          on-link: true

  • vlans: — khai báo khối cấu hình vlan.
  • vlan10: — tên tùy ý của giao diện vlan.
  • id: — thẻ của vlan của chúng tôi.
  • link: — giao diện mà qua đó vlan sẽ có thể truy cập được.
  • tuyến đường: - khai báo khối mô tả tuyến đường.
  • — đến: — đặt địa chỉ/mạng con mà tuyến đường cần đến.
  • via: — chỉ định cổng mà qua đó mạng con của chúng tôi có thể truy cập được.
  • on-link: — chúng tôi chỉ ra rằng các tuyến phải luôn được đăng ký khi liên kết được nâng lên.

Hãy chú ý đến cách tôi đặt dấu cách; điều này rất quan trọng trong YAML.

Vì vậy, chúng tôi đã mô tả các giao diện mạng, tạo liên kết và thậm chí thêm vlan. Hãy áp dụng cấu hình của chúng ta, lệnh netplan apply sẽ kiểm tra lỗi cấu hình của chúng ta và áp dụng nó nếu thành công.Tiếp theo, cấu hình sẽ tự nâng lên khi hệ thống được khởi động lại.

Sau khi thu thập tất cả các khối mã trước đó, đây là những gì chúng tôi có:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0f0:
      dhcp4: no
    ensp3s0f1:
      dhcp4: no
  bonds:
    bond0:
      dhcp4: no
      interfaces: [enp3s0f0, enp3s0f1]
      parameters: 
        mode: 802.3ad
        mii-monitor-interval: 1
  vlan10:
      id: 10
      link: bond0
      dhcp4: no
      addresses: [10.10.10.2/24]
      routes:
        - to: 10.10.10.2/24
          via: 10.10.10.1
          on-link: true
  vlan20:
    id: 20
    link: bond0
    dhcp4: no
    addresses: [10.10.11.2/24]
    gateway: 10.10.11.1
    nameserver:
      addresses: [8.8.8.8]
    

Bây giờ mạng của chúng tôi đã sẵn sàng hoạt động, mọi thứ hóa ra không đáng sợ như lúc đầu và mã hóa ra rất đẹp và dễ đọc. PC cảm ơn bạn vì netplan, có một hướng dẫn tuyệt vời tại liên kết https://netplan.io/.

Nguồn: www.habr.com

Mua dịch vụ lưu trữ đáng tin cậy cho các trang web có bảo vệ DDoS, máy chủ VPS VDS 🔥 Mua dịch vụ hosting website đáng tin cậy với bảo vệ DDoS, máy chủ VPS VDS | ProHoster