我有 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
然而,如果有疑问,第二种方法似乎效果最好。