iStoreOS+三层交换机+PVE实现VLAN独立网段隔离+互通+接入互联网

2026-03-29 15:38:58 1点赞 2收藏 1评论

个人一贯风格、直接进入主题:

现状和需要解决的问题:

所有设备挤在同一IPv4段所有设备挤在同一IPv4段

- 150+智能家居lot设备、PVE集群(独立软路由+2台PVE主机,部署超过60+docker服务(均分配独立IP)及虚拟机)、台式PC*4、笔记本*2、平板*3),全部挤在同一IPv4段,导致IPv4地址耗尽(虽然可以通过更改掩码增加可分配地址,但不是本文重点)、存在广播风暴导致全屋网络瘫痪的风险。

解决思路:

- 通过三层交换机规划独立IP网段并进行VLAN隔离(隔离全域广播风暴),交换机设置各网段网关地址进行VLAN互通。

- 交换机开启DHCP Server,对下联设备(包含物理/虚拟设备)进行设备间路由、DHCP分配IP,并上联软路由。减轻软路由压力。

- iStoreOS创建多个VLAN子接口,进行各独立网段接入互联网的NAT地址转换。各网段均可通过同一互联网接口接入。

- PVE宿主机与虚拟机通过同一物理网口实现管理口与业务口VLAN隔离、分属不同的独立网段,防止造成环路,网络阻塞。(该功能为小众需求,推荐使用多物理网口或网卡SRIOV拆分来进行划分)

需要的硬件:

- 一台三层管理型交换机(本人垃圾佬,海鲜市场捡的希力威视16口2.5G+4口万兆SFP+交换机,型号为SR-S25G3420F)

- 一台软路由(物理/虚拟机均可,本人使用的是部署在一台单独PVE宿主机上的iStoreOS软路由)

方案实操:

1、交换机设置:

1.1 - 进行vlan隔离、互通设置(新建vlan、指定端口);

除开已有的Default vlan1,需要新建三个独立网段,绑定VLAN并进行隔离(隔离广播域)。设置如下:

- IP段1:192.168.50.0/24,交换机管理地址:192.168.50.11 - Default vlan1,这是原始的默认网段;

- IP段2:10.10.2.0/24,交换机网关地址:10.10.2.254 - HomeLAN_[vlan.2] ,这是用于家庭网络中通过有线接入的物理设备使用的网段;

- IP段3:10.10.3.0/24,交换机网关地址:10.10.3.254 - WirelessLAN_[vlan.3],这是用于家庭网络中通过WLAN接入的物理设备,包含lot智能家居设备(可以更细分为普通WLAN IP网段,用于接入手机平板、笔记本等;lot专用WLAN IP网段用于智能家居等物联网设备接入,该功能需要另外配置一台可发射多路WLAN信号的无线路由器/FTTR/ACAP设备,本次先行略过);

- IP段4:10.10.4.0/24,交换机网关地址:10.10.4.254 - Virtual Env Network_[vlan.4],这是用于虚拟服务专用网段,用于分配PVE虚拟机/LXC和Docker容器独立IP。

1.2 - 交换机端口模式设置:

- 接入物理设备一端的Port设置为“Access”模式,仅Untag,PVID(native VLAN)设置为相应规划网段的VLAN ID;

- 接入PVE宿主机一端的Port设置为"Trunk"模式,PVID 1,放行VLAN(Tagged/已标记)为规划虚拟服务专用网段的VLAN ID(本案例为4);

1.3 - 设置交换机各网段网关地址、开启VLAN网段的DHCP服务:

各品牌交换机命令行各不相同,有的可以通过web页面进行设置;有的无web页面、只能通过命令行进行设置。这里以我在用的希力威视交换机为例(客服说兼容思科命令行):

Username: admin

Password: *****

Switch# configure

Switch(config)# interface vlan 2

Switch(config-if)# ip address 10.10.2.254/24

Switch(config-if)# dhcpd 10.10.2.2 10.10.2.253 10.10.2.254 192.168.50.1

Switch(config-if)# dhcpd on

Switch(config)#

按以上命令分别设置好VLAN2、VLAN3、VLAN4的DHCP Server,并启动服务。

请注意:

- 交换机开启DHCP Server的前置条件是必须先设置好该网段的交换机网关地址;

- 由于交换机网关地址10.10.x.254、以及软路由网段VLAN子接口地址10.10.x.1的存在,故交换机DHCP分配范围最大为10.10.x.2 - 10.10.x.253;

- 交换机各网段的网关地址仅用于交换机对下联设备进行设备间路由、DHCP分配IP,并上联软路由。由软路由上创建的网段VLAN子接口进行互联网接入的NAT地址转换,交换机网关地址非互联网接入网关地址。

2、iStroeOS软路由设置:

- 添加(创建)VLAN (802.1q)设备(eth0.2、eth0.3、eth0.4 .etc,eth0为路由器lan口),基于该设备添加(创建)接口,协议为静态地址,ip地址为VLAN划分网段指定的路由器子接口地址(eg. 10.10.2.1 .etc),掩码填入255.255.255.0(/24对应的另一种写法)网关为PPPoE接口地址;

- 高级设置 - 取消“使用默认路由”

- 防火墙设置 - 将接口加入防火墙 LAN区域

- DHCP服务器 - 关闭(交由三层交换机对下联设备进行设备间路由、DHCP分配IP,即仅使用新创建的设备、接口进行互联网接入的NAT地址转换)

3、PVE宿主机(单网口承载宿主机管理口、虚拟机/LXC容器业务口)

3.1 -(VLAN感知方案)

- 选择PVE节点 - 系统 - 网络:默认管理接口(vmbr0)开启“VLAN感知”,VLAN IDs写入需要放行的VLAN ID(本案例中为4);

- 虚拟机/LXC容器添加“网络设备”,选择vmbr0,VLAN标签填入规划用于虚拟服务专用网段对应的VLAN ID(本案例为4)。

3.2(VLAN子接口方案)

- 选择PVE节点 - 系统 - 网络:创建“Linux VLAN”,名称随意(命名会直接绑定VLAN标签,尽量使用vlan4、vmbr1.4等),VLAN原始设备填入vmbr0同一物理网卡,不设置IP及网关;

- 创建“Linux Bridge”,勾选“VLAN感知”,VLAN IDs填入规划用于虚拟服务专用网段对应的VLAN ID(本案例为4),桥接端口填入上一步创建的“Linux VLAN”名称;

- 虚拟机/LXC容器添加“网络设备”,选择上一步创建的“Linux Bridge”,VLAN标签留空。

以上两种方案区别在于是否交由虚拟机/LXC容器自身处理VLAN报文。VLAN感知方案由虚拟机/LXC容器自身收发处理VLAN-TAG报文,相当于直接给虚拟机/LXC容器一个Trunk口;VLAN子接口方案由宿主机对VLAN进/出报文进行剥离/封装,然后传递给虚拟机/LXC容器,虚拟机/LXC容器一端依然为Access口。

以上为本次实操的记录笔记。最近比较忙,没时间截图及细致到每一步操作。在此仅提供思路及主要操作过程。抛砖引玉,大家有问题可在评论区留言,有时间会尽量回复。

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起
1评论

  • 精彩
  • 最新
  • 注意:按此设置后,无论是自定义IP还是DHCP分配,网关地址必须设置为交换机网关地址,eg.10.10.x.254,否则部署在软路由docker内、并且通过反代向外提供的域名无法从内网环境访问(直接访问容器内网ip无问题),推测是由于将路由器子接口ip(eg.10.10.x.1)直接设为客户端默认网关后,由于路由路径绕过了交换机网关ip,导致NAT环回下一跳缺失,导致无法完成路由环回。

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
2
扫一下,分享更方便,购买更轻松