无法通过 /etc/network/interfaces.d 内不同文件中的条目配置网络接口

无法通过 /etc/network/interfaces.d 内不同文件中的条目配置网络接口

我想使用文件配置 vlan 接口/etc/network/interfaces.d/,例如

vlan1cfg

auto vlan1
iface vlan1 inet static
    address <some addr>
    netmask <some mask>
    vlan-raw-device <some bridge>
    post-up route add -net 224.0.0.0/4 vlan1
    post-up ip addr add <some addr>/25 dev vlan1
    post-up ip addr add <some addr>/25 dev vlan1

并且在某些系统上有条件地我想使用额外的配置文件向该接口添加额外的地址,例如

vlan1cfgadd

auto vlan1
iface vlan1 inet static
    post-up ip addr add <some other addr>/25 dev vlan1

如果我发出ifquery -v vlan1它,它会报告所有文件的解析,但只会报告第一个解析文件的命令。我以为命令是从所有文件中收集的。

我想在一个地方的网络配置中进行此设置,可以吗?

答案1

  1. 您应该使用sourcesource-directory语句来包含接口配置的附加文件。在新系统上,默认情况下有一行source-directory /etc/network/interfaces.d/*,强制包含相应目录下的所有文件。

  2. 您不需要额外的文件。所有配置都可以放在一个地方。小例子:

auto vlan1
iface vlan1 inet static
    vlan-raw-device brX
    vlan-id 1
    address <some-addr>/<prefix-len>
    up ip addr add <some-addr-2>/<prefix-len> dev ${IFACE} || true
    up ip addr add <some-addr-3>/<prefix-len> dev ${IFACE} || true
    up ( test -f /var/run/vlan1.extra.address && ip addr add <some-other-addr>/<prefix-len> dev ${IFACE} ) || true
    post-up ip route replace 224.0.0.0/4 dev ${IFACE} || true

在此示例中,附加地址的使用取决于/var/run/vlan1.extra.address文件的现有情况。

相关内容