首页 > 其他分享 >openwrt中设置vlan

openwrt中设置vlan

时间:2025-01-10 18:01:11浏览次数:3  
标签:vlan VLAN option 配置 设置 DHCP config openwrt

在 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 界面配置:

    1. 登录 OpenWrt 的 LuCI 管理界面。
    2. 导航到 网络 (Network) -> 交换机 (Switch)
    3. 你会看到交换机的端口列表。点击 添加 VLAN (Add VLAN) 按钮。
    4. 配置 VLAN ID、描述 (可选) 以及端口成员关系:
      • 未标记 (untagged): 端口以 Access 模式加入 VLAN,发送和接收不带 VLAN 标签的帧。
      • 已标记 (tagged): 端口以 Trunk 模式加入 VLAN,发送和接收带 VLAN 标签的帧。
      • 关 (off): 端口不属于该 VLAN。
    5. 重复步骤 3 和 4,创建所有需要的 VLAN。
    6. 点击 保存并应用 (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 界面配置:

    1. 导航到 网络 (Network) -> 接口 (Interfaces)
    2. 点击 添加新接口 (Add new interface)
    3. 配置接口名称 (例如 eth0.10 表示 VLAN 10)、协议 (例如 静态地址)、物理设置选择对应的物理接口并在后面加上 . 和 VLAN ID (例如 eth0.10)。
    4. 防火墙设置 (Firewall Settings) 中,将接口分配到合适的防火墙区域。
    5. 重复步骤 2-4,为每个 VLAN 创建一个接口。
    6. 点击 保存并应用 (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 界面配置:

    1. 导航到 网络 (Network) -> 接口 (Interfaces)
    2. 编辑每个 VLAN 对应的接口。
    3. DHCP 服务器 (DHCP Server) 标签页中:
      • 勾选 启用 (Ignore interface)
      • 配置 开始 (Start)限制 (Limit),定义 DHCP 地址池的起始 IP 和数量。
      • 配置 租约时间 (Leasetime)
    4. 点击 保存并应用 (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 界面配置:

    1. 导航到 网络 (Network) -> 防火墙 (Firewall)
    2. 区域 (Zones) 标签页中,可以为每个 VLAN 创建一个独立的防火墙区域,或者将多个 VLAN 划分到同一个区域。
    3. 通信规则 (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

相关文章

  • 078:vue+cesium 设置开始结束时间,循环自动播放
    作者:还是大剑师兰特,曾为美国某知名大学计算机专业研究生,现为国内GIS领域高级前端工程师,CSDN知名博主,深耕openlayers、leaflet、mapbox、cesium,canvas,echarts等技术开发,欢迎加微信(gis-dajianshi),一起交流。查看本专栏目录-本文是第078篇文章文章目录一......
  • bat命令电脑微信双开怎么设置
    找到微信安装路径通常微信安装在 C:\ProgramFiles(x86)\Tencent\WeChat\WeChat.exe 或 C:\ProgramFiles\Tencent\WeChat\WeChat.exe。创建批处理文件(.bat)打开记事本,输入以下内容并保存为 wechat_dual_open.bat:@echooffstart"""C:\ProgramFiles(x86)\Te......
  • Codeblocks20.03修改字体的设置问题 [clone]
    最近想用codeblocks重新学习一下c语言,于是下载了最新的20.03版本,但是codeblocks的默认主题实在是不舒服,所以想去找找codeblocks的主题和字体如何配置,配置主题上网搜搜可以得到答案,本文不再赘述,重点是更换字体时出现以下问题:点掉这个框之后,再次打开时还是默认字体。于是到网上搜......
  • 在Lazarus下的Free Pascal编程教程——打造有智能感知的用户设置操作界面
    0.前言我想通过编写一个完整的游戏程序方式引导读者体验程序设计的全过程。我将采用多种方式编写具有相同效果的应用程序,并通过不同方式形成的代码和实现方法的对比来理解程序开发更深层的知识。了解我编写教程的思路,请参阅体现我最初想法的那篇文章中的“1.编程计划”和“2.已经......
  • 卷王公开查询设置(1.6版本)
    1、公开查询设置页面说明创建的流程为:问卷->设置->公开查询设置->新增查询页面页面标题,设置查询页面的标题页面查询描述信息,设置查询页面的描述查询条件,点击设置可以选择多个查询条件,必须满足所有的查询条件才能输出结果查询结果,可以控制每一个字段的权限,目前支持三......
  • 科技风?写实风?教你设置多风格三维地图
    概述三维地图通过高度、深度、立体感等表现形式,能够真实还原地形地貌、城市建筑和空间结构。相比二维地图,它能够更清晰地展示复杂的地理数据,帮助用户快速理解空间关系,如地形起伏、建筑高度等。在实际应用中,我们可以将不同风格的三维地图作为项目的主体元素进行展示,山海鲸可视化提......
  • 【硬件测试】基于FPGA的16psk调制解调系统开发与硬件片内测试,包含信道模块,误码统计
    1.算法仿真效果本文是之前写的文章: <<基于FPGA的16PSK调制解调系统,包含testbench,高斯信道模块,误码率统计模块,可以设置不同SNR-CSDN博客>> 的硬件测试版本。 在系统在仿真版本基础上增加了ila在线数据采集模块,vio在线SNR设置模块,数据源模块。硬件ila测试结果如下:(完......
  • Linq中的设置操作 (C#):Distinct 和 DistinctBy、Except 和 ExceptBy、Intersect 和 In
    LINQ中的集运算是指根据相同或单独集合中是否存在等效元素来生成结果集的查询运算。注:这些示例使用System.Collections.Generic.IEnumerable<T>数据源。基于System.Linq.IQueryProvider的数据源使用System.Linq.IQueryable<T>数据源和表达式树。表达式树对允许的C#语......
  • 服务器安全设置教程,手把手保护好你的主机(保姆级)
    防护的意义自古以来,攻击和防护就像盾牌和矛处于对立面上。自打有linux系统以来,这两个对立面就一直彼此的升级,又彼此的促进。互联网时代,网站、APP、服务均部署在远程服务器上,这背后牵涉到巨大的经济利益和商业价值,于是各种产业链就有了巨大的攻击动力,所以防护的好可以减少遭......
  • Excel如何分区设置密码,一个区域一个密码,数据收集时使用太方便了
    大家好,我是小鱼。很多小伙伴在使用Excel表格的时候,有可能需要为不同的区域设置不同的密码,比如搜集公司不同的部门,或者学校不同的班级的信息时,为了使收集的信息不被别人改动,这时就需要为他们各自设置自己的密码。其实,在使用wps制作Excel表格收集信息时,分区设置密码,实现一个区域......