[路由器] EdgeRouter 默认 RDNSS Lifetime 过短导致 iOS 设备唤醒时优先使用移动数据这两天把家里 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
如果你最近遇到了类似的问题, 可以参考一下.
via
V2EX (author: aa11ss55)