Netplan 以及如何正確準備它

Ubuntu 是一個令人驚嘆的作業系統,我已經很久沒有使用 Ubuntu 伺服器了,也沒有必要從穩定版本升級我的桌面。 不久前,我必須處理最新版本的 Ubuntu 伺服器 18.04,當我意識到我無限落後於時代並且無法設定網路時,我的驚訝無以復加,因為用於設定網路介面的舊系統編輯/etc/network 檔案/ interfaces 已經付諸東流。 那麼什麼來取代它呢? 一些可怕的、乍看之下完全無法理解的東西,遇到了「Netplan」。

說實話,一開始我不明白這是怎麼回事,“為什麼需要這個,因為一切都很方便”,但經過一點練習我發現它有它自己的魅力。歌詞就夠了,讓我們繼續了解Netplan 是什麼,這是Ubuntu 中用於網絡設置的新實用程序,至少「我在其他發行版中沒有看到過類似的東西。」Netplan 之間的顯著區別在於配置是用語言編寫的 雅美,是的,你沒聽錯,YAML,開發人員決定與時俱進(無論他們如何讚揚它,我仍然認為它是一種糟糕的語言)。 這種語言的主要缺點是它對空格非常敏感,讓我們用一個例子來看看配置。

設定檔位於路徑 /etc/netplan/filename.yaml 中,每個區塊之間應該有 + 2 個空格。

1)標準頭如下圖所示:

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

讓我們看看我們現在做了什麼:

  • 網路:-這是配置區塊的開始。
  • renderer: networkd - 在這裡我們指示我們將使用的網路管理器,這是networkd或NetworkManager
  • version: 2 - 據我了解,這裡是 YAML 版本。
  • 乙太網路:-此區塊表示我們將配置乙太網路協定。
  • enps0f0: — 指示我們將配置哪個網路介面卡。
  • dhcp4:no - 分別為 4 v6 dhcp6 禁用 DHCP v6

2)讓我們嘗試分配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

這裡我們設定poppy、ipv4、網關和dns伺服器。 請注意,如果我們需要多個 IP 位址,那麼我們將用逗號分隔它們,並在後面加上一個強制空格。

3)如果我們需要怎麼辦 結合?

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

  • bond: - 解釋我們將配置綁定的區塊。
  • bond0: - 任意介面名稱。
  • 接口: - 在 bond-ding 中收集的一組接口,“如前所述,如果有多個參數,我們在方括號中描述它們。”
  • 參數:——描述參數設定區塊
  • mode: — 指定綁定的工作模式。
  • mii-monitor-interval:— 將監控間隔設定為 1 秒。

在名為 bond 的區塊內,您也可以設定位址、網關4、路由等參數。

我們已經為網路添加了冗餘,現在剩下的就是安裝 VLAN 就可以認為設定完成了。

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: — 聲明 vlan 配置區塊。
  • vlan10: — vlan 介面的任意名稱。
  • id: — 我們的 VLAN 的標籤。
  • link:——可存取 VLAN 的介面。
  • 路線:——聲明路線描述區塊。
  • — to: — 設定需要路由的位址/子網路。
  • via: — 指定可存取我們的子網路的閘道。
  • on-link:-我們表明,當連結被提升時,路由應該始終被註冊。

請注意我如何放置空格;這在 YAML 中非常重要。

因此,我們描述了網路介面、建立了綁定,甚至還添加了 VLAN。 讓我們應用我們的配置,netplan apply 命令將檢查我們的配置是否有錯誤,如果成功則應用它。接下來,當系統重新啟動時,該配置將自行引發。

在收集了之前的所有程式碼區塊後,我們得到了以下結果:

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]
    

現在我們的網路已經準備好運行了,一切都不像一開始看起來那麼可怕,程式碼變得非常漂亮和可讀。 PC 謝謝你的 netplan,連結中有一本很棒的手冊 https://netplan.io/.

來源: www.habr.com

添加評論