OpenWrt Network configuration

OpenWrt Network configuration

device 和 interface 关系

  1. device
    device 表示底层的网络设备,如物理网卡、桥接设备(bridge)、VLAN 设备等。
    通过 config device 定义,描述设备类型、端口成员、VLAN 等属性。
    例如:br-lan 是一个桥接设备,lan1、lan2 是物理端口。
  2. interface
    interface 表示网络层的逻辑接口,负责分配 IP 地址、协议(如 static、dhcp、pppoe)、防火墙区域等。
    通过 config interface 定义,绑定到一个或多个 device 上。
    例如:lan 接口绑定到 br-lan 设备,负责局域网的 IP 配置和服务。
  3. 关系
    一个 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这些概念的区别和联系!交换基础知识,小白福音~

https://www.bilibili.com/video/BV1ty421e7hk/?spm_id_from=...search-card.all.click\&vd_source=35b06c13f470dff84c947fa3045bafc3

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

相关推荐
charlie1145141916 分钟前
计算机网络八股文——TCP,UDP
网络·网络协议·tcp/ip·计算机网络·面试·udp·八股文
SHUIPING_YANG31 分钟前
windows软件ARM64和AMD64(x64)区别,如何查看电脑支持哪种
windows·电脑
OpsEye34 分钟前
台风季网络保卫战:互联网运维如何筑起“数字防波堤“?
运维·网络
Mu.3871 小时前
网络编程(一)TCP编程和UDP编程
网络·tcp/ip·udp
没有余地 EliasJie1 小时前
Ubuntu/Debian 搭建 Nginx RTMP 服务器全攻略
服务器·ubuntu·debian
自由鬼1 小时前
AI赋能操作系统:通往智能运维的未来
linux·运维·服务器·人工智能·程序人生·ai·操作系统
x晕x1 小时前
Qt 消息弹窗 Toast
linux·c++·windows·qt·mac
鹏大师运维2 小时前
MBR与GPT分区表深度解析:硬盘分区该怎么选?
linux·运维·服务器·gpt·国产操作系统·mbr·统信uos
天若有情6732 小时前
【人工智能】当AI智能体遇上安全与伦理:一场技术与人性的对话
网络·人工智能·安全
破刺不会编程2 小时前
linux线程互斥和同步
linux·运维·服务器·开发语言·网络