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教程的建議。