This translation is older than the original page and might be outdated. See what has changed.

澄清术语“Interface”

如果你曾使用过其他 Linux 发行版或者 pfSense 这样的路由器,那么术语“Interface”的用法可能有点令人困惑1)

OpenWrt配置中的“Interface”绝不能与物理接口混淆。这个词确实具有误导性。作为Unix管理员,你应该是知道ifconfig命令的,所以可能自然认为config interface lan做的事情与ifconfig一样。实际上只说对了一部分。

为了澄清一些东西(希望如此),让我们避免使用“interface”这个术语,而用更中性的词汇代替它(便于我们理解)。我们在OpenWrt中实际配置的可以称为“Connector”连接器2)。“Connector”的配置组合包含了将运行OpenWrt的设备连接到网络的所有属性。其包括物理设备(为避免完全使用“interface”术语,我称之为“controller”控制器)和配置信息。配置信息应用于controller,使设备能够加入网络。

这是一个伪配置,不是实际有效的配置代码!

config "connector" 'lan'
        option "controller" 'eth0'
        option "setup" 'static'
        option ipaddr '192.168.1.1'
        option netmask '255.255.255.0'

如果你已经对OpenWrt语法有所了解,您可以看到我用“connector”替换了interface,用“controller”替换了ifname,用“setup”替换了proto,以避免使用“interface”和任何相关的东西。

当然,该配置信息会对controller(ifname)有影响,你可以用ifconfig或更好的ip a s eth0命令查看效果。但请注意,这不是“eth0”的完整配置。可能有更多的connectors(interface)连接到涉及同一controller(ifname|物理设备)的其他网络。并且,根据所选择的设置,connector(interface)配置可能对controller(ifname|物理设备)之外的其他可配置项产生影响。

以IPv6连通性为例。IPv4和IPv6定义了不同的网络。IPv4地址的设备不能与IPv6地址的设备通信。因此,如果我们想让我们的设备与其他IPv6设备通信,就需要一个额外的connector(interface)。

这是一个伪配置,不是实际有效的配置代码!

config "connector" 'lan6'
        option "controller" 'eth0'
        option "setup" 'dhcp6'

这配置了另一个connector(interface),并且与上一个connector(interface)使用同一controller(ifname|物理设备)3),但使用了不同的设置策略,即使用dhcp(用于IPv6)的自动策略。因此,该配置不仅会影响controller(ifname|物理设备),还会影响辅助进程(在本例中为odhcpd)。

总之,在读取或写入OpenWrt网络配置时,请记住:

  • config interface … 不是物理接口的配置,而是某个网络连接器的规范。
  • ifname 通常不是用config interface配置的东西的名称,而是一个物理接口的名称4).
  • proto 不是http、ftp这类的网络协议,而是用于设置物理接口的协议,使其能够参与到它应该连接到的网络中。

1)
有几个概念的意思容易搞混
2)
interface配置应避免理解成物理接口,而应理解为连接器
3)
还好使用IPv6不需要新的物理设备
4)
不是很确定这个功能, 但是看起来你可以用 ifname '@…' 作为一个快捷方式来引用在其它interface配置中使用的物理接口
This website uses cookies. By using the website, you agree with storing cookies on your computer. Also you acknowledge that you have read and understand our Privacy Policy. If you do not agree leave the website.More information about cookies
  • Last modified: 2021/07/24 05:29
  • by someothertime