关于 /etc/network/interface 的疑问

包含网卡/无线网的网络问题和ADSL/校园网/宽带拨号支持及代理/共享等网络使用问题
回复
头像
自由建客
帖子: 13468
注册时间: 2008-07-30 23:21
系统: Debian stable AMD64

关于 /etc/network/interface 的疑问

#1

帖子 自由建客 »

vde 文档中举例如下

代码: 全选

    auto vde0
    iface vde0 inet manual
        vde2-switch -
        vde2-slirp -dhcp
那个 vde2-switch、 vde2-slirp 既不是 $PATH 中的任何命令,甚至连这个文件都没有,所以它不是外部命令。再说外部命令不都是用 up、 down 之类的起头的吗? ifupdown 是如何识得这两行的?

如果是 ifupdown 自己一开始就有的“内部命令”,那为何 ifupdown 的所有文档都却之不提?
如果 ifupdown 的“插件”“扩展”,那应该是安装 vde 时带上的,我查过 vde2 的安装包和其安装脚本,都没见任何迹象表明 vde 给 ifupdown 装过“插件”。
头像
自由建客
帖子: 13468
注册时间: 2008-07-30 23:21
系统: Debian stable AMD64

Re: 关于 /etc/network/interface 的疑问

#2

帖子 自由建客 »

哈哈……大胆的尝试了一番,原来 ifupdown 是这样工作的!有意思!
vde2-switch 等等,任何只要不是 address、 up、 down 等之类 ifupdown 原先就有定义的命令, ifupdown 都会将其转换成相应环境变量然后专递给众脚本。一,变量名为 "IF_" 加全部变成大写的命令名;二,减号变成下划线;三,后续参数全变成其变量值。或许还有更复杂的规则,但我目前只知道这三点。
比如
vde2-switch - 会变成 IF_VDE2_SWITCH='-'
vde2-slirp -n 192.168.10.0 -dhcp 变成 IF_VDE2_SLIRP='-n 192.168.10.0 -dhcp'
回复