
OpenWrt Network configuration
device 和 interface 关系

- device
device 表示底层的网络设备,如物理网卡、桥接设备(bridge)、VLAN 设备等。
通过 config device 定义,描述设备类型、端口成员、VLAN 等属性。
例如:br-lan 是一个桥接设备,lan1、lan2 是物理端口。 - interface
interface 表示网络层的逻辑接口,负责分配 IP 地址、协议(如 static、dhcp、pppoe)、防火墙区域等。
通过 config interface 定义,绑定到一个或多个 device 上。
例如:lan 接口绑定到 br-lan 设备,负责局域网的 IP 配置和服务。 - 关系
一个 interface 绑定到一个 device(如 option device 'br-lan'),实现 IP 层配置和管理。
一个 device 可以被多个 interface 复用(如 VLAN 场景下)。
device 负责数据链路层(L2),interface 负责网络层(L3)。
bash
config device
option name 'br-lan'
option type 'bridge'
list ports 'lan1'
list ports 'lan2'
config interface 'lan'
option device 'br-lan'
option proto 'static'
option ipaddr '192.168.1.1'
option netmask '255.255.255.0'
bash
root@OpenWrt:~# cat /etc/config/network
config interface 'loopback'
option ifname 'lo'
option proto 'static'
option ipaddr '127.0.0.1'
option netmask '255.0.0.0'
config globals 'globals'
option ula_prefix 'fdb5:b795:d08a::/48'
option packet_steering '1'
config interface 'lan'
option type 'bridge'
option ifname 'lan1 lan2 lan3'
option proto 'static'
option netmask '255.255.255.0'
option ip6assign '60'
option ipaddr '192.168.5.1'
config device 'lan_lan1_dev'
option name 'lan1'
option macaddr 'c8: :f4:60:40:f9'
config device 'lan_lan2_dev'
option name 'lan2'
option macaddr 'c8: :f4:60:40:f9'
config device 'lan_lan3_dev'
option name 'lan3'
option macaddr 'c8: :f4:60:40:f9'
config interface 'wan'
option ifname 'eth1'
option proto 'dhcp'
config device 'wan_eth1_dev'
option name 'eth1'
option macaddr 'c8: :f4:60:40:fc'
config interface 'wan6'
option ifname 'eth1'
option proto 'dhcpv6'
config interface 'zerotier'
option ifname 'ztx7zqbter'
option _orig_ifname 'ztx7zqbter'
option _orig_bridge 'true'
option proto 'none'
option auto '1'
option delegate '0'

bash
openwrt的有线网络配置文件位于/etc/config/network,老高的配置如下:
config interface 'loopback'
option ifname 'lo'
option proto 'static'
option ipaddr '127.0.0.1'
option netmask '255.0.0.0'
config globals 'globals'
option ula_prefix 'auto'
config interface 'lan'
option ifname 'eth0.1'
option force_link '1'
option type 'bridge'
option proto 'static'
option ipaddr '192.168.1.1'
option netmask '255.255.255.0'
option ip6assign '60'
option macaddr '64:09:80:05:e1:bb'
config interface 'wan'
option ifname 'eth0.2'
option _orig_ifname 'eth0.2'
option _orig_bridge 'false'
option proto 'pppoe'
option macaddr '64:09:80:05:e1:bc'
option username '11100026295'
option password '380926'
config interface 'wan6'
option _orig_ifname '@wan'
option _orig_bridge 'false'
option proto '6to4'
config switch
option name 'mt762x'
option reset '1'
option enable_vlan '1'
config switch_vlan
option device 'mt762x'
option vlan '1'
option ports '0 1 2 3 5 6t'
config switch_vlan
option device 'mt762x'
option vlan '2'
option ports '4 6t'
bash
openwrt的无线网络配置文件位于/etc/config/wireless,老高的配置如下:
config wifi-device 'rai0'
option type 'mt7612'
option mode '14'
option channel 'auto'
option txpower '100'
option ht '20+40+80'
option country 'US'
option disabled '0'
config wifi-iface
option device 'rai0'
option network 'lan'
option mode 'ap'
option ssid 'BYBY_WORLD'
option encryption 'psk2'
option key 'xxx'
config wifi-device 'ra0'
option type 'rt2860v2'
option mode '9'
option channel 'auto'
option txpower '100'
option ht '40'
option country 'US'
option disabled '0'
config wifi-iface
option device 'ra0'
option network 'lan'
option mode 'ap'
option wps 'pbc'
option ssid 'HELLO_WORLD'
option encryption 'psk2'
option key 'xxx'
tagged 和 untagged 用于描述端口在 VLAN 中的行为

端口是否接收802.1Q帧,在于untagged或tagged两者之一是否含有这个Vid,含则收,无则弃。
无论是一下哪个,交换机端口都会接收:
bash
oport hybrid vlan 10 tagged
oport hybrid vlan 10 untagged
untagged和tagged的区别在发送数据帧时。
untagged剥离数据帧头的Vlan标记,将802.1Q帧恢复为传统以太网帧后发送至下一交换机或计算机。
tagged保持802.1Q帧格式发送至下一交换机,若发送至计算机非Vlan感知的计算机不能识别。
Tag 机制核心解释
Tagged(已标记)
端口收发的数据包带有 VLAN 标签(802.1Q tag)。
适用于 VLAN 感知设备(如路由器 CPU、交换机 Trunk 口)。
只有能识别 VLAN 的设备才能处理 tagged 数据。
Untagged(未标记)
端口收发的数据包不带 VLAN 标签,普通以太网流量。
交换机在流量进入时自动分配默认 VLAN(PVID),流量离开时去除 VLAN 标签。
每个端口只能在一个 VLAN 下设置为 untagged。
Off(禁用)
该端口在此 VLAN 下不允许流量进出。
端口行为
Tagged 端口
出口时加 VLAN 标签,入口时要求有正确的 VLAN 标签。
用于设备间传递多个 VLAN 流量。
Untagged 端口
出口时去除 VLAN 标签,入口时自动分配 PVID。
用于连接普通设备(如 PC),无需识别 VLAN。
PVID(Port VLAN ID)
给 untagged 流量分配的默认 VLAN ID。
在 OpenWrt 的 UCI 配置中可设置,但 LuCI 界面一般不可见。
总结:
Tagged 用于 VLAN 感知设备互连,Untagged 用于普通设备接入,PVID 决定 untagged 流量属于哪个 VLAN。
交换机通过这些机制实现端口隔离和多网段管理。
python
Tagged 流量:
进入端口时:交换机检查 VLAN 标签,只有标签匹配的 VLAN 才允许流量进入。
离开端口时:交换机保留 VLAN 标签,数据包带标签发出,供下游设备识别 VLAN。
Untagged 流量:
进入端口时:交换机自动为数据包分配该端口的默认 VLAN(PVID),内部处理时加上 VLAN 标签。
离开端口时:交换机去除 VLAN 标签,数据包以普通以太网帧发出,终端设备无需识别 VLAN。
一个端口只能属于一个 Untagged VLAN(即只能设置一个 PVID),但可以属于多个 Tagged VLAN。
Untagged:每个端口只能设置为一个 VLAN 的 untagged 成员。
Tagged:同一个端口可以同时作为多个 VLAN 的 tagged 成员,收发带不同 VLAN 标签的数据包。
一个端口收到无标签(untagged)流量时,会自动为这些数据包打上该端口配置的 Untagged VLAN(即 PVID)的 VLAN ID,这样交换机内部就能识别这些流量属于哪个 VLAN。
单线复用

https://blog.csdn.net/f2157120/article/details/119460852
单臂路由
单臂路由是指在一台路由器(或三层交换机)上只用一个物理网口,通过配置多个 VLAN 子接口,实现不同 VLAN 间的三层路由转发。
这种方式常用于节省端口资源,实现多网段互通。
一个视频,彻底搞清tag untag pvid vid access trunk这些概念的区别和联系!交换基础知识,小白福音~

交换机内部所有流量都是带标签的 不然交换机如何知道转发