[openwrt]openwrt slaac only模式下部分终端无法获取到IPv6 DNS

问题描述

       OpenWrt 中,如果启用了 RA 单播(ra_unicast),但部分终端无法获取到 DNS 信息

问题分析

RA 单播的局限性

  • 并非所有终端都完全支持通过单播接收 RA 消息。
  • 部分终端可能无法正确解析单播 RA 中的 RDNSS(Recursive DNS Server)选项,从而导致无法获取 DNS 信息。

终端对 RA 的支持差异

  • 不同操作系统和设备对 RA 单播的支持程度不同。例如,某些嵌入式设备或老旧设备可能只支持组播 RA。

DNS 配置方式的冲突

  • 如果网络中同时启用了 DHCPv6 和 RA,可能会导致终端在解析 DNS 信息时出现冲突。

解决方法

确保 RA 配置正确

检查 /etc/config/dhcp 中的配置,确保 RA 和 DNS 信息的广播设置正确。例如:

config dhcp 'lan'
    option interface 'lan'
    option dhcpv
### 配置和使用 OpenWRT 中的 DHCPv6 #### 1. 基本概念 在 OpenWRT网络管理中,DHCPv6 是用于分配 IPv6 地址和服务的重要协议。它支持多种工作模式,包括无状态 (Stateless) 和有状态 (Stateful),以及两者的混合模式。 - **无状态 (Stateless)**:设备通过路由器通告消息自动配置其 IPv6 地址。 - **有状态 (Stateful)**:由 DHCPv6 服务器提供具体的地址和其他服务参数给客户端。 - **混合模式**:结合了两种方式的优点[^2]。 #### 2. 防火墙设置 为了确保内网能够正常获取IPv6 地址,在防火墙上需要允许 DHCPv6 报文通行。具体操作可以参考官方文档中的指导: 修改 `/etc/config/firewall` 文件,添加或调整以下规则以放通 DHCPv6 流量: ```bash config rule option name 'Allow-DHCPv6' option src 'wan' option proto 'udp' option dest_port '547' option target 'ACCEPT' config rule option name 'Allow-ICMPv6' list icmp_type 'echo-request' list icmp_type 'echo-reply' option family 'ipv6' option target 'ACCEPT' ``` 完成上述更改后重启防火墙服务以使改动生效: ```bash /etc/init.d/firewall restart ``` 此部分对于保障 DHCPv6 客户端成功接收地址至关重要[^1]。 #### 3. 配置文件编辑 主要的 DHCPv6 设置位于 `/etc/config/dhcp` 文件中。以下是针对不同模式的具体配置示例: ##### a. 无状态 (Stateless) 如果仅希望启用 SLAAC 自动配置功能,则可按如下方式进行设定: ```bash config dhcp 'lan' option interface 'lan' option ra 'server' # 启用路由公告(RA) option dhcpv6 'none' # 不作为 DHCPv6 服务器运行 option ndp 'relay' # 开启邻居发现代理(NDP relay) option ra_management '1' # 使用 RA 进行管理 ``` ##### b. 有状态 (Stateful) 当需要完全控制并分发特定范围内的 IP 地址时采用该方案: ```bash config dhcp 'lan' option interface 'lan' option start '100' # 动态池起始编号 option limit '150' # 可租赁数量上限 option leasetime '12h' # 租约时间长度 option force '1' # 强制启动即使接口未激活也有效 option ra 'server' # 路由器广告行为设为 server 类型 option dhcpv6 'server' # 将自身定义成 DHCPv6 Server option ra_management '2' # 结合RA与DHCPv6共同作用 ``` ##### c. 混合模式 (Stateless & Stateful) 这种情况下既利用 SLAAC 提供基础连通性又借助于 DHCPv6 来传递额外信息比如 DNS Servers 等数据项: ```bash config dhcp 'lan' option interface 'lan' option start '100' option limit '150' option leasetime '12h' option force '1' option ra 'server' option dhcpv6 'server' option ra_management '1' ``` 每种场景下都需要依据实际需求来决定最终选用哪种形式。 #### 4. 应用更改 保存所有修改之后执行下面命令让新配置立即生效: ```bash /etc/init.d/network reload ``` 或者重新引导整个系统亦可行: ```bash reboot ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wellnw

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值