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

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

相关推荐
m0_720245014 小时前
网络编程(6)
网络
Justin_195 小时前
Linux-Shell编程之sed和awk
linux·运维·服务器
塔中妖5 小时前
【华为OD】5G网络建设
网络·5g·华为od
半桔6 小时前
【Linux手册】消息队列从原理到模式:底层逻辑、接口实战与责任链模式的设计艺术
java·linux·运维·服务器
华纳云IDC服务商6 小时前
Linux服务器的系统安全强化超详细教程
linux·服务器·系统安全
衍余未了6 小时前
k8s镜像推送到阿里云,使用ctr推送镜像到阿里云
linux·运维·服务器
Forever_Hopeful6 小时前
【C 语言生成指定范围随机数(整数 + 小数):原理、实现与避坑指南】
服务器·c语言·开发语言
yiqiqukanhaiba6 小时前
Linux编程笔记1-概念&数据类型&输入输出
linux·运维·服务器
乌萨奇也要立志学C++6 小时前
【Linux】进程概念(一):从冯诺依曼体系到 PCB 的进程核心解析
linux·运维·服务器
游九尘7 小时前
服务器都是用的iis, 前端部署后报跨域,不是用同一个服务器 是前端项目的服务器做Nginx转发,还是后端项目的服务器做Nginx转发?
服务器·前端·nginx