使用Netplan进行快速网络配置

ninethought 2017-07-14

本周早些时候,我在 Artful 中上传了 netplan 0.21,稳定版本的 SRU 还在开发中。后续还会有很多值得期待的功能,但目前的版本已经相当好用。现在,你已经可以用它来描述桌面计算机和服务器的典型网络配置,甚至是一些有趣、复杂的设置,比如跨多个 VLAN 绑定桥接...

使用入门

最简单的 netplan 配置看起来类似如下所示:

# Let NetworkManager manage all devices on this system

network:

  version: 2

  renderer:NetworkManager

启动时,netplan 会发现此配置(自版本 16.10 起所有新系统均已安装此配置),并生成一个空文件:/run/NetworkManager/conf.d/10-globally-managed-devices.conf。这将告诉系统,NetworkManager 是系统中唯一的网络配置渲染器,并且默认情况下将由它管理所有设备。

初试:一个简单的服务器

我们先在一个假设的 Web 服务器上试一下,例如我最爱用的测试服务器:www.perdu.com。

network:

  version: 2

  ethernets:

    eth0:

      dhcp4:true

这个超级简单的配置告诉系统,eth0 设备将使用 DHCP4 启动。netplan 还支持 DHCPv6,以及静态 IP、设置路由等功能。

进阶:构建更复杂的配置

假设我需要两个网卡为一组,用它们连接我网络上的 VLAN 108:

network:

              version: 2

              ethernets:

                eth0:

                  dhcp4:n

                eth1:

                  mtu: 1280

                  dhcp4:n

              bonds:

                bond0:

                interfaces:

                  - eth1

                  - eth0

                  mtu: 9000

              vlans:

                bond0.108:

                  link:bond0

                  id: 108

可以看到,哪怕是配置极其复杂的网络,操作起来也轻而易举,只用一个文件就能全部搞定。而且最妙的是,你不用去操心实际的设置是什么。

可选不同后端

目前,netplan 支持 NetworkManager 或 systemd-networkd 作为后端。默认会使用 systemd-networkd,但是考虑到它不支持无线网络,所以这里我们还是需要依靠 NetworkManager。

你之所以无需在意最终由什么来支持你的配置,是因为 netplan 会为你抽象出这一切。它会根据 "renderer" 属性生成必需的配置,因此你无需知道如何在每个后端定义特殊的设备属性。

正如我前面提到的,我们还在努力增添更多功能,但核心就是这些:netplan 可设置绑定、桥接、vlan、独立网络接口,并且同时适用于静态地址和 DHCP 地址。它还支持许多用来对绑定设备或桥接设备的精确行为进行微调的常用桥接及绑定参数。

敬请期待…

接下来我将添加适当的支持,让大家能在设备上设置“克隆”MAC。目前,我正在检查这方面的代码,全力扫清最后的问题。

另外,我还计划改进对设备管理状态的处理;并解决与支持 MaaS 相关的一些错误,在这方面,简单的配置风格确实有独到之处。

一想到 netplan 未来的发展,我就特别兴奋。它对于解决其他工具目前存在的一些短板似乎有着巨大的潜力。我也很想听听大家日常使用 netplan 的故事,所以如果你正在使用它,快来与我分享你的心得体会吧!

原文发表于 Mathieu Trudel-Lapierre 的个人博客 

相关推荐