在 OpenWrt 中优雅地使用 VLAN 和 DHCP,可以实现灵活的网络隔离和高效的 IP 地址管理。以下是一些建议和步骤,帮助你实现这一目标:
一、规划 VLAN 和 IP 地址
在开始配置之前,首先需要进行合理的规划:
- 确定 VLAN ID: 规划好需要划分的 VLAN 以及对应的 VLAN ID。例如:
- VLAN 10: 管理网络 (Management)
- VLAN 20: 员工网络 (Staff)
- VLAN 30: 客人网络 (Guest)
- VLAN 40: 物联网设备 (IoT)
- 设计 IP 地址方案: 为每个 VLAN 规划好 IP 地址段,确保各个网段之间不重叠。例如:
- VLAN 10: 192.168.10.0/24
- VLAN 20: 192.168.20.0/24
- VLAN 30: 192.168.30.0/24
- VLAN 40: 192.168.40.0/24
二、配置 VLAN
OpenWrt 中有两种主要的 VLAN 配置方式:基于接口的 VLAN (Interface-based VLAN) 和 基于交换机的 VLAN (Switch-based VLAN)。
1. 基于交换机的 VLAN (推荐)
这种方式直接操作交换机芯片,性能更好,配置也更直观。
-
LuCI 界面配置:
- 登录 OpenWrt 的 LuCI 管理界面。
- 导航到 网络 (Network) -> 交换机 (Switch)。
- 你会看到交换机的端口列表。点击 添加 VLAN (Add VLAN) 按钮。
- 配置 VLAN ID、描述 (可选) 以及端口成员关系:
- 未标记 (untagged): 端口以 Access 模式加入 VLAN,发送和接收不带 VLAN 标签的帧。
- 已标记 (tagged): 端口以 Trunk 模式加入 VLAN,发送和接收带 VLAN 标签的帧。
- 关 (off): 端口不属于该 VLAN。
- 重复步骤 3 和 4,创建所有需要的 VLAN。
- 点击 保存并应用 (Save & Apply)。
-
UCI 命令行配置:
编辑
/etc/config/network
文件,添加类似如下的配置:
config switch
option name 'switch0'
option reset '1'
option enable_vlan '1'
config switch_vlan
option device 'switch0'
option vlan '10'
option ports '0t 2 3'
option description 'Management'
config switch_vlan
option device 'switch0'
option vlan '20'
option ports '0t 4 5'
option description 'Staff'
config switch_vlan
option device 'switch0'
option vlan '30'
option ports '0t 6'
option description 'Guest'
config switch_vlan
option device 'switch0'
option vlan '40'
option ports '0t 7'
option description 'IoT'
* `switch` 部分定义了交换机。
* `switch_vlan` 部分定义了各个 VLAN,`ports` 选项指定了端口成员关系:
* `0t` 表示 CPU 端口,通常需要设置为 tagged。
* `2 3` 表示端口 2 和 3,根据需要设置为 untagged 或 tagged。
修改完成后,执行 `uci commit network` 和 `/etc/init.d/network restart` 使配置生效。
2. 基于接口的 VLAN
这种方式通过创建虚拟接口来实现 VLAN 划分,配置相对复杂,性能略逊于基于交换机的 VLAN。
-
LuCI 界面配置:
- 导航到 网络 (Network) -> 接口 (Interfaces)。
- 点击 添加新接口 (Add new interface)。
- 配置接口名称 (例如
eth0.10
表示 VLAN 10)、协议 (例如静态地址
)、物理设置选择对应的物理接口并在后面加上.
和 VLAN ID (例如eth0.10
)。 - 在 防火墙设置 (Firewall Settings) 中,将接口分配到合适的防火墙区域。
- 重复步骤 2-4,为每个 VLAN 创建一个接口。
- 点击 保存并应用 (Save & Apply)。
-
UCI 命令行配置:
编辑
/etc/config/network
文件,添加类似如下的配置:
config interface 'vlan10'
option device 'eth0.10'
option proto 'static'
option ipaddr '192.168.10.1'
option netmask '255.255.255.0'
option ip6assign '60'
config interface 'vlan20'
option device 'eth0.20'
option proto 'static'
option ipaddr '192.168.20.1'
option netmask '255.255.255.0'
option ip6assign '60'
修改完成后,执行 `uci commit network` 和 `/etc/init.d/network restart` 使配置生效。
三、配置 DHCP
OpenWrt 使用 odhcpd
作为 DHCP 服务器。
-
LuCI 界面配置:
- 导航到 网络 (Network) -> 接口 (Interfaces)。
- 编辑每个 VLAN 对应的接口。
- 在 DHCP 服务器 (DHCP Server) 标签页中:
- 勾选 启用 (Ignore interface)。
- 配置 开始 (Start) 和 限制 (Limit),定义 DHCP 地址池的起始 IP 和数量。
- 配置 租约时间 (Leasetime)。
- 点击 保存并应用 (Save & Apply)。
-
UCI 命令行配置:
编辑
/etc/config/dhcp
文件,添加类似如下的配置:
config dhcp 'vlan10'
option interface 'vlan10'
option start '100'
option limit '150'
option leasetime '12h'
option dhcpv4 'server'
config dhcp 'vlan20'
option interface 'vlan20'
option start '100'
option limit '150'
option leasetime '12h'
option dhcpv4 'server'
* `interface` 选项指定了 DHCP 服务监听的接口。
* `start` 和 `limit` 选项定义了 DHCP 地址池的范围。
* `leasetime` 选项定义了 IP 地址租约时间。
修改完成后,执行 `uci commit dhcp` 和 `/etc/init.d/odhcpd restart` 使配置生效。
四、配置防火墙 (可选)
根据需要配置防火墙规则,控制不同 VLAN 之间的访问权限。
-
LuCI 界面配置:
- 导航到 网络 (Network) -> 防火墙 (Firewall)。
- 在 区域 (Zones) 标签页中,可以为每个 VLAN 创建一个独立的防火墙区域,或者将多个 VLAN 划分到同一个区域。
- 在 通信规则 (Traffic Rules) 标签页中,可以创建具体的防火墙规则,允许或阻止不同 VLAN 之间的通信。
-
UCI 命令行配置:
编辑
/etc/config/firewall
文件,添加或修改防火墙规则。
五、其他优化建议
- 使用 DNSMasq 替代 odhcpd (可选): DNSMasq 功能更强大,可以提供 DNS 解析和 DHCP 服务。
- 启用 IPv6 支持 (可选): 如果需要支持 IPv6,可以在接口配置中启用 IPv6 分配。
- 定期备份配置: 使用 LuCI 界面的 系统 (System) -> 备份/升级 (Backup / Flash Firmware) 功能备份 OpenWrt 配置。
总结:
通过以上步骤,你可以在 OpenWrt 中优雅地使用 VLAN 和 DHCP,实现网络的灵活划分和 IP 地址的高效管理。记住,合理的规划和清晰的配置是关键。建议在修改配置之前备份 OpenWrt 配置,以便在出现问题时可以快速恢复。
标签:vlan,VLAN,option,配置,设置,DHCP,config,openwrt From: https://blog.csdn.net/u011027104/article/details/145005379