我想使用文件配置 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
您应该使用
source
或source-directory
语句来包含接口配置的附加文件。在新系统上,默认情况下有一行source-directory /etc/network/interfaces.d/*
,强制包含相应目录下的所有文件。您不需要额外的文件。所有配置都可以放在一个地方。小例子:
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
文件的现有情况。