为环回接口分配唯一的本地地址

为环回接口分配唯一的本地地址

我有 Ubuntu 18.04.2,从 16:04 升级而来。之前我在 /etc/network/interfaces 中为环回接口分配了一个 IPv6 ULA(唯一本地地址)。我尝试在 netplan 中进行相同的分配。解析器接受将“lo”声明为以太网接口,但没有任何效果。如何使用 netplan 在启动时将 ULA 分配给环回接口?注意:网络管理器未提及为渲染器,因此我假设 systemd 在此处运行。

答案1

目前,netplan对环回适配器的支持几乎不存在。关于如何做到这一点的有限定义netplan是无稽之谈,实际上netplan依赖于系统本身来处理lo适配器,并没有真正接触它或用它做任何事情。

话虽如此,但有两种可能的方法将 ULA 添加到 Loopback 接口:(1)netplan假设您不使用网络管理器来控制您的配置,或(2)使用传统/etc/network/interfaces ifup/ifdown功能和命令调用。


方法 1:使用netplan配置

在您的 Netplanrenderer配置networkd中,理论上您可以使用这种类型的配置来添加地址(从这里):

network:
  version: 2
  renderer: networkd
  ethernets:
    lo:
      match:
        name: lo
      addresses: [ "fddb:d20c:44a5:a538::000f/64" ]

将此处的地址替换为您本地的 IPv6 ULA。

但是,这假设您正在使用netplan配置所有内容,并且不会将其交给网络管理器进行后端配置。


方法#2:使用预定义的/etc/network/interfaces环回定义,并附加ip调用。

这是“传统”方法,但我不能保证它将永远是一种有效的解决方案。

在许多情况下,lo适配器仍由(至少在 18.04 等版本中)定义/etc/network/interfaces。因此,我们可以利用这些定义和一些其他调用来使其与设置环回的调用一起ifup工作ifdown

配置文件中的示例/etc/network/interfaces如下(其中up定义了启动环回时要运行的命令,并down定义了关闭环回接口时要运行的命令 - 它们都在这里是为了完整性):

auto lo
iface lo inet loopback
    up ip -6 addr add fddb:d20c:44a5:a538::000f/64 dev lo
    down ip -6 addr del fddb:d20c:44a5:a538::000f/64 dev lo

然而,如果有疑问,第二种方法似乎效果最好。

相关内容