EdgeRouter 默认 RDNSS Lifetime 过短导致 iOS 设备唤醒时优先使用移动数据

aa11ss55 2026-08-24 23:18 1

这两天把家里 DNS 改成 RA 下发, 遇到了标题上的问题

使用 radvdump, 输出为:


interface switch0
{
AdvSendAdvert on;
# Note: {Min,Max}RtrAdvInterval cannot be obtained with radvdump
AdvManagedFlag off;
AdvOtherConfigFlag off;
AdvReachableTime 0;
AdvRetransTimer 0;
AdvCurHopLimit 64;
AdvDefaultLifetime 1800;
AdvHomeAgentFlag off;
AdvDefaultPreference medium;
AdvSourceLLAddress on;

prefix [GUA Prefix]
{
AdvValidLifetime 2592000;
AdvPreferredLifetime 604800;
AdvOnLink on;
AdvAutonomous on;
AdvRouterAddr off;
}; # End of prefix definition


prefix [ULA Prefix]
{
AdvValidLifetime 2592000;
AdvPreferredLifetime 604800;
AdvOnLink on;
AdvAutonomous on;
AdvRouterAddr off;
}; # End of prefix definition


RDNSS [DNS]
{
AdvRDNSSLifetime 600;
}; # End of RDNSS definition

}; # End of interface definition

默认为 600 秒, 显然是太短了, 息屏超过十分钟 DNS 过期, 导致唤醒时优先使用移动数据. EdgeOS 没有提供内置的 RDNSS Lifetime 节点, 但是可以设置 radvd-options "RDNSS [DNS] { AdvRDNSSLifetime 86400; };" 来解决这个问题, 注意要删除 name-server 节点.

修正后的 radvdump 输出:


interface switch0
{
AdvSendAdvert on;
# Note: {Min,Max}RtrAdvInterval cannot be obtained with radvdump
AdvManagedFlag off;
AdvOtherConfigFlag off;
AdvReachableTime 0;
AdvRetransTimer 0;
AdvCurHopLimit 64;
AdvDefaultLifetime 1800;
AdvHomeAgentFlag off;
AdvDefaultPreference medium;
AdvSourceLLAddress on;

prefix [GUA Prefix]
{
AdvValidLifetime 2592000;
AdvPreferredLifetime 604800;
AdvOnLink on;
AdvAutonomous on;
AdvRouterAddr off;
}; # End of prefix definition


prefix [ULA Prefix]
{
AdvValidLifetime 2592000;
AdvPreferredLifetime 604800;
AdvOnLink on;
AdvAutonomous on;
AdvRouterAddr off;
}; # End of prefix definition


RDNSS [DNS]
{
AdvRDNSSLifetime 86400;
}; # End of RDNSS definition

}; # End of interface definition

如果你最近遇到了类似的问题, 可以参考一下.

最新回复 (0)
    没有回复
* 帖子来源V2EX
返回