OpenWrt下仅获ISP分配单个/64子网时搭建主Wi-Fi与受限访客Wi-Fi的方案咨询
OpenWrt下仅获ISP分配单个/64子网时搭建主Wi-Fi与受限访客Wi-Fi的方案咨询
嘿,这个场景我碰到过不少,虽说ISP只给一个/64的IPv6子网确实有点受限,但完全可以在OpenWrt上实现主Wi-Fi和访客Wi-Fi共存,还能保证两者的隔离。下面给你几个实用的方案,你可以根据自己的需求选:
方案一:给访客网启用NAT6(IPv6地址转换)
这是最省心的方案,原理和IPv4的NAT类似,主网直接用ISP分配的/64地址,访客网用私有IPv6前缀,然后通过路由器把访客网的流量转换成主网的IPv6地址出去。
- 操作步骤:
- 进OpenWrt的LuCI界面,新建访客Wi-Fi对应的接口,选择静态IPv6,设置一个私有前缀,比如
fc00:abc::/64(只要是fc00::/7范围内的都可以) - 安装必要的包:通过SSH登录路由器,执行
opkg update && opkg install iptables-mod-nat6 odhcp6c - 配置NAT6规则:在防火墙里添加SNAT规则,把访客网的IPv6流量转换成路由器WAN口的IPv6地址(比如
2001:db8:123:456::1) - 配置防火墙隔离规则:禁止访客网接口访问主网的所有IP段,只允许访问公网资源
- 进OpenWrt的LuCI界面,新建访客Wi-Fi对应的接口,选择静态IPv6,设置一个私有前缀,比如
方案二:拆分/64子网为两个逻辑段(需关闭SLAAC)
虽然标准里/64是推荐的最小可路由子网,但我们可以手动划分地址段,让主网和访客网各用一部分,再用防火墙隔离。注意这个方法要关闭自动地址配置(SLAAC),避免设备乱拿地址。
- 操作步骤:
- 假设ISP给的/64是
2001:db8:abcd:1234::/64,我们把它拆成两个/65段:主网用2001:db8:abcd:1234::/65,访客网用2001:db8:abcd:1234:8000::/65 - 配置主网的DHCPv6服务器,只分配前半段的地址;给访客网单独配置DHCPv6服务器,只分配后半段地址
- 在防火墙里添加规则,禁止两个/65段之间的互相访问,只允许各自访问公网
- 关闭主网和访客网的SLAAC功能,强制设备使用DHCPv6分配地址,避免地址冲突
- 假设ISP给的/64是
方案三:访客网仅用IPv4(如果对IPv6需求不高)
如果访客网不需要IPv6,只给访客网开IPv4,用传统的NAT444,这样就完全不占用你的/64子网资源了,配置起来也最简单。
- 操作步骤:
- 新建访客Wi-Fi接口,只配置IPv4,用私有地址段比如
192.168.200.0/24 - 开启该接口的IPv4 NAT功能,把访客网的IPv4流量转换成路由器WAN口的IPv4地址
- 配置防火墙规则,禁止访客网访问主网的IPv4设备,只允许访问公网
- 新建访客Wi-Fi接口,只配置IPv4,用私有地址段比如
一些额外注意事项
- 用NAT6的话,访客网里的设备没法获得公网IPv6,像P2P这类需要公网地址的服务可能会受影响,但普通上网、刷视频完全没问题
- 拆分/64子网的方法,要确保所有设备都不私自通过SLAAC获取地址,否则可能出现跨段访问的情况
- 不管选哪个方案,防火墙隔离都是核心,一定要仔细配置规则,别让访客网能访问主网的设备
备注:内容来源于stack exchange,提问作者Alex Henrie
相关产品推荐
相关产品推荐

