Netplan 以及如何正确准备它

Ubuntu 是一个令人惊叹的操作系统,我已经很长时间没有使用 Ubuntu 服务器了,并且没有必要从稳定版本升级我的桌面。 不久前,我不得不处理最新版本的 Ubuntu 服务器 18.04,当我意识到我无限落后于时代并且无法设置网络时,我的惊讶无以复加,因为用于设置网络接口的旧系统编辑 /etc/network 文件 /interfaces 已经付诸东流。 那么什么来取代它呢? 一些可怕的、乍一看完全无法理解的东西,遇到了“Netplan”。

说实话,一开始我不明白这是怎么回事,“为什么需要这个,因为一切都很方便”,但经过一点练习我发现它有它自己的魅力。歌词就够了,让我们继续了解 Netplan 是什么,这是 Ubuntu 中用于网络设置的新实用程序,至少“我在其他发行版中没有看到过类似的东西。”Netplan 之间的显着区别在于配置是用语言编写的 Yaml,是的,你没听错,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/.

来源: habr.com

添加评论