OpenWrt的网络配置文件是/etc/config/network,它负责交换芯片VLAN、网络接口和路由的配置。
此文件在编辑和保存之后需要执行
/etc/init.d/network reload命令,目的是为了在变更生效前,停止和重启网络。
interface类型的section声明了逻辑网络接口,可以为这些接口指定IP地址、别名、物理网络接口名称、路由规则 及 防火墙规则。
一个最简的interface节包含以下行:
config 'interface' 'wan'
option 'proto' 'dhcp'
option 'ifname' 'eth0.1'
wan 是唯一的 逻辑网络接口名称
dhcp 指定接口协议,这里是dhcp
eth0.1 是相关联的物理网络接口名称(用ifconfig可看到)
接口协议可以是以下之一:
不同的协议,额外的选项也不一样
所有协议类型的有效选项
"static"协议
"pppoe"协议
"dhcp"协议
2、alias配置多个ip
网络接口支持配置多个ip地址,在linux系统中可以通过ip addr命令进行配置和查看,OpenWrt系统中可以通过修改network配置设置接口多ip
配置实例
/etc/config/network lan接口配置如下
/etc/init.d/network restart后,通过ip命令查看
3、配置路由
network配置文件也支持配置路由,可以增加多个section配置多条路由规则
配置路由实例
修改/etc/config/network配置,增加以下路由配置
保存后重启网络(/etc/init.d/network reload)
然后通过route命令查看路由是否生效
可以看到系统中多了两条路由规则
4桥配置
OpenWrt lan的桥(bridge)名称叫br-lan,一个桥下面可以增加多个接口,如无线接口wlan0,以太网eth0接口等,在同一个桥下的接口是二层链路互通的,同一桥的接口数据上升到三层(ip层)后,都复用桥的地址,也就是我们经常说的lan口地址,可以通过ifconfig br-lan查看
OpenWrt桥配置
修改桥名称
修改/etc/config/network配置,将lan口的桥名称由lan修改为0
修改无线配置
无线默认是绑定到br-lan桥的,修改了桥名称也要对于修改无线绑定的桥,无线配置在/etc/config/wireless中,绑桥的option为network,默认是lan,我们可以修改为0,表示绑定到br-0
重启network(/etc/init.d/network reload)
查看接口信息如下
现在eth0.1和wlan0绑定到了br-0桥下,lan口ip也配置到了br-0桥上。
4、Ubus查看网络接口状态
网络除了配置,还有有实时状态,/etc/config/network只是配置文件,该配置最终是通过netifd守护进程读取和生效,类似于Ubuntu等linux发行版的NetworkManager。OpenWrt中采用了ubus消息机制,netifd注册了查询网络状态的相关接口,可以通过ubus命令实时获取当前系统的网络信息,返回结果为json格式方便开发处理。
常用的ubus命令
查看wan口状态
查看lan口状态
查看无线状态
5、总结
网络是OpenWrt固件的基础,大部分的插件都依赖于网络配置,所以要精通OpenWrt首先要对网络了如指掌。希望通过该篇文章能够帮助到大家更好的学习OpenWrt系统的使用和开发,也欢迎大家提出OpenWrt教程的建议。