OpenWrt 无线中继上级路由时配置 IPv6 地址
status
Published
type
Post
slug
openwrt-wifi-client-relay-mode-config-ipv6-addr
date
Aug 26, 2024
tags
Config
OpenWrt
Share
summary
文章梳理了在 OpenWrt 路由器配置无线中继时如何设置 IPv6 地址,并详细介绍了如何通过添加
WWAN6
接口和配置 LAN 接口,实现 IPv6 地址的自动分配和管理,同时解释了 SLAAC 和 DHCPv6 两种地址配置方法的应用和区别。背景
OpenWrt 上配置 IPv6 之前大学教育网已经时已经配过好多次了。但那都是基于有线接入的,当下的情景是需要在无线中继上级路由器的同时配置本地的 IPv6 地址。
下面仅仅是针对个人网络环境配置过程中的简单记录,主要为了个人备忘,故记载不是很详尽,也没有针对其他网络环境的说明,如果有需要,可以评论联系我。
IPv6
网际协议第6版(英语:Internet Protocol version 6,缩写:IPv6)是网际协议的最新版本,用作互联网的协议。 用它来取代IPv4主要是为了解决IPv4地址枯竭问题,同时它也在其他方面对于IPv4有许多改进。
如上图,IPv6地址为128位;分为8组,每组用四个英数字符号表示,用冒号隔开。
在 IPv4 中,我们可以按自己的需求通过子网掩码来划分子网,直至分配完所有 IP 地址。而在 IPv6 中。只有第 4 组(48 - 64 位)可以用来划分子网,如果前 64 位已经都用了,即便还剩下 64 位,也无法再进行子网分割了。
用于划分子网的前面部分通常称之为前缀,前缀最大就是 64 位(前四组)了,剩下的 64 位全部是用于子网中设备分配 IPv6 地址。后续我们分配 IPv6 地址会看到的 IPv6-PD 就是指这个,PD = Prefix Delegation。
配置
前提:
- 一台刷入了 OpenWrt 或 ImmortalWrt 等第三方固件的路由器,已经配置好了 Wi-Fi 中继,可以通过无线接入上级路由器进而联通外网,IPv4 NAT 正常工作。
- 上级路由器可以正常分发 IPv6 地址。
如上图示,路由器已经通过 WI-FI Client 模式加入到了上级路由器的网络环境中,与此同时也新增了一个接口
WWAN
。添加 WWAN6 接口
路由本身是存在 使用无线中继其实可以暂时删了这两接口)。这里我们不去动,而是给我们无线中继的环境新增一个
WAN
和 WAN6
两个接口的,这两个主要是为了有线 WAN 口接入网络时使用(WWAN6
接口,用来作为 DHCPv6 客户端,来获取上级路由器分发的 IPv6 地址信息。依次点击
网络 - 接口 - 添加新接口
,其中设备设置为已经中继网卡,一般显示为 无线网络: Client “上级路由 SSID”
。这里再指定设备,然后进入高级设置:IPv6分配长度设为禁用,勾选委托IPv6前缀 (不勾选的话 LAN 没有 IPv6 地址)
然后进入防火墙设置,选定区域和已有的
WWAN
一致即可。然后进入 DHCP 服务器设置,配置 DHCP 服务器,IPv6 设置中将 RA 服务、DHCPv6 服务,NDP 代理 均设置为中继模式即可。
之后保存应用配置,等待上级路由器响应。此时不出意外已经可以看到 WWAN6 接口获取到了 IPv6 地址。
我这里网络还不错,分配了 IPv6-PD,虽然 /64 就一个子网,但老话说,要啥自行车啊 🤣。
LAN 接口配置
委托IPv6前缀:根据实际情况决定是否勾选(决定下游的设备能不能用 PD 继续划分子网。)Pv6分配长度:一般选择64就,除非你继续要往下分配子网。(不要禁用)
指定的主接口:不要选 RA服务:服务器模式 DHCPv6服务:服务器模式 本地IPv6 DNS服务器:勾选 NDP代理:禁用
在使用 IPv4 环境中,通过 DHCP 我们就可以给我们路由器下的设备分配 IP 。在 IPv6 环境中,地址分配方式主要有两种:SLAAC(Stateless Address Autoconfiguration)和 DHCPv6(Dynamic Host Configuration Protocol version 6)。
展开查看 SLAAC 与 DHCPv6 相关解释
SLAAC (Stateless Address Autoconfiguration)
SLAAC是一种自动配置IPv6地址的方法,它允许设备在没有服务器干预的情况下,通过网络信息(如路由器发出的RA消息)自动生成自己的IPv6地址。
工作流程:
- 获取前缀:设备从路由器接收到的路由器通告(Router Advertisement, RA)消息中获取网络前缀。
- 生成接口ID:设备使用自己的网络接口信息(通常是MAC地址的某种变换)生成接口标识符(Interface ID)。
- 组合地址:将网络前缀和接口标识符组合成完整的IPv6地址。
- 重复地址检测:设备通过发送邻居请求消息(Neighbor Solicitation)来确保生成的地址是唯一的。
SLAAC不需要中心服务器来分配地址,因此它被称为“无状态”的,因为它不维护设备地址分配的状态信息。这种机制简单且高效,但在某些情况下(如需要集中管理地址或需要分配其他网络配置信息时),可能不够灵活。
DHCPv6 (Dynamic Host Configuration Protocol version 6)
DHCPv6是DHCP协议的IPv6版本,用于动态分配IPv6地址和其他网络配置参数(如DNS服务器地址、域名等)给网络设备。
工作流程:
- 发现服务器:设备发送DHCPv6请求消息(DHCPv6 Solicitation)以发现DHCPv6服务器。
- 提供地址:DHCPv6服务器回复提供消息(DHCPv6 Offer),提供一个或多个IPv6地址。
- 请求地址:设备选择一个地址并向服务器发送请求消息(DHCPv6 Request)请求使用该地址。
- 确认地址:服务器发送确认消息(DHCPv6 Acknowledgment)确认分配地址,并可能提供其他配置信息。
DHCPv6允许集中管理和控制地址分配,服务器可以维护地址池和已分配地址的状态。这种“有状态”的地址分配方式适合需要严格控制网络资源和配置的场景。
总的来说,
- SLAAC:更适合简单的网络环境,不需要服务器,自动配置,但不支持集中管理。
- DHCPv6:提供更复杂的管理功能,支持集中管理和配置,但需要服务器支持。
这两种方式可以单独使用,也可以结合使用,例如,设备可以通过SLAAC获得IPv6地址,同时通过DHCPv6获取其他网络配置信息。这里我们就同时使用。
勾选启用 SLAAC (下游设备会使用 SLAAC 自动获取 IP ) RA 标记中添加受管配置(M)(下游设备会使用DHCP获取 IP )
当这些全部设置完成后,网络下的设备就可以获取IPv6地址并且通过IPv6上网了。