#Android 11にアップデートしたらIPv6のRDNSSが効かなくなりWi-Fiが接続できなくなった!
いよいよ Android OS Version 11のリリースが開始されましたが、 Android 11はベータ版の頃からずっと何故かIPv6の調子が悪く、自宅のルーター(Linuxを使った自家製)からRA(Router Advertisement)でIPv6アドレスが広報されているとWi-Fi APへの接続が上手くいかず接続が確立したかと思うとすぐに切断されてしまうの繰り返しになってしまいました。
いろいろと調べた結果、どうやらRAのオプションRADNSSのライフタイムが119より長いとこのような現象に陥るらしく、RAのデーモンradvdの設定ファイルradvd.confを修正してRDNSSのライフタイムを120より短くしてやることで解決できました。
Android 10までは大丈夫だった設定
interface enp1s0
{
AdvSendAdvert on;
MinRtrAdvInterval 30;
MaxRtrAdvInterval 100;
AdvDefaultLifetime 120;
AdvManagedFlag off;
AdvOtherConfigFlag off;
prefix xxxx:xxxx:xxxx:xxxx::/64
{
AdvOnLink on;
AdvAutonomous on;
AdvRouterAddr off;
};
RDNSS xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx
{
AdvRDNSSPreference 8;
AdvRDNSSOpen off;
AdvRDNSSLifetime 120;
};
};
Android 11ではAdvRDNSSLifetime
を短くする必要があった!
interface enp1s0
{
AdvSendAdvert on;
MinRtrAdvInterval 30;
MaxRtrAdvInterval 100;
AdvDefaultLifetime 120;
AdvManagedFlag off;
AdvOtherConfigFlag off;
prefix xxxx:xxxx:xxxx:xxxx::/64
{
AdvOnLink on;
AdvAutonomous on;
AdvRouterAddr off;
};
RDNSS xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx
{
AdvRDNSSPreference 8;
AdvRDNSSOpen off;
AdvRDNSSLifetime 119;
};
};
まだなぜそうなのか?までは調べてはいないのですが、とりあえず共有しておきます。
radvd.confのマニュアルではAdvRDNSSLifetimeはMaxRtrAdvIntervalの2倍より短くとしか書かれていないけど…
※我が家のLinuxサーバーのradvdではこれで解決しましたがCISCOのルーターではRDNSSのライフタイムを短くしても解決しなかったとのことなので、環境依存の可能性大かも。
最初にこの問題にぶつかったときには設定からRDNSSのセクションをすっぽりと取り去ってRDNSSの広告を行わないようにすれば大丈夫らしい?となったのですが、AndroidはDHCPv6でのアドレスやDNSの設定はサポートするつもりがないらしくRDNSSを使わないとDNSは手動で設定するほかなくなっちゃうし…