我有一个脚本(问题的底部),它添加了一个虚拟链接,向该链接添加了一些地址,并向该链接添加了一些路由。
我怎样才能使ip link
,ip addr
和ip route
命令持续存在?
我正在使用 Debian stretch,安装了 NetworkManager。
想法1:
如果我把这个文件放进去,/etc/network/if-up.d/
它可能会在机器启动时被调用。 /etc/NetworkManager/dispatcher.d/01ifupdown
似乎指向这个目录。
更新:我试过了,这不是一个好主意
想法2:
我可能需要将其翻译成不同的配置语言并将其放入 中/etc/network/interfaces.d/
,但到目前为止我看到的配置此文件的示例假定设备存在。我还没有找到等效于ip link add mocknet type dummy
.
该文件依靠auto
行首的关键字来识别物理接口 ( auto mocknet
),但mocknet
尚不存在。
工作脚本
ip link add mocknet type dummy
ip addr add 10.10.1.1/24 dev mocknet
ip addr add 10.10.2.1/24 dev mocknet
ip addr add 10.10.3.1/24 dev mocknet
ip addr add 10.10.4.1/24 dev mocknet
ip addr add 10.10.5.1/24 dev mocknet
ip addr add 10.10.6.1/24 dev mocknet
ip addr add 10.10.7.1/24 dev mocknet
ip addr add 10.10.8.1/24 dev mocknet
ip addr add 10.10.9.1/24 dev mocknet
ip link set mocknet up
ip route del 10.10.1.0/24
ip route del 10.10.2.0/24
ip route del 10.10.3.0/24
ip route del 10.10.4.0/24
ip route del 10.10.5.0/24
ip route del 10.10.6.0/24
ip route del 10.10.7.0/24
ip route del 10.10.8.0/24
ip route del 10.10.9.0/24
ip route add 10.10.1.0/24 dev mocknet proto kernel scope link src 10.10.1.1 metric 6000
ip route add 10.10.2.0/24 dev mocknet proto kernel scope link src 10.10.2.1 metric 6000
ip route add 10.10.3.0/24 dev mocknet proto kernel scope link src 10.10.3.1 metric 6000
ip route add 10.10.4.0/24 dev mocknet proto kernel scope link src 10.10.4.1 metric 6000
ip route add 10.10.5.0/24 dev mocknet proto kernel scope link src 10.10.5.1 metric 6000
ip route add 10.10.6.0/24 dev mocknet proto kernel scope link src 10.10.6.1 metric 6000
ip route add 10.10.7.0/24 dev mocknet proto kernel scope link src 10.10.7.1 metric 6000
ip route add 10.10.8.0/24 dev mocknet proto kernel scope link src 10.10.8.1 metric 6000
ip route add 10.10.9.0/24 dev mocknet proto kernel scope link src 10.10.9.1 metric 6000
想法2是正确的。此外,将这个简单的脚本翻译成正确的文件并不难。这里的一个惊喜是它
ip link set mocknet up
是自动的。man interfaces
提供了一些很好的信息。这是工作文件:/etc/network/interfaces.d/mocknet
:我不确定这样做是否
/bin/ip
是/sbin/ip
“正确”的方法,但一切似乎都有效。