Android Emulator 26.0.3 の IPv6対応
サマリ
ほどほどに動くけど、いろいろ惜しい。
- Android Emulator 25.3 からIPv6をサポート。Google配布の仮想デバイス (AVD: Android Virtual Device) イメージでは、IPv6はデフォルトON
- http://test-ipv6.jp/ へのアクセスで 10/10 点が出る程度には動く。
- エミュレータのホストOSがIPv6接続があれば、仮想デバイスから設定なしでIPv6接続ができた。
- AVDにサイトローカルIPv6アドレス (fec0::ほげほげ/64) が割り当てられる。
- AVDにグローバルスコープのIPv6アドレスがないのでIPv4優先で接続する。
- 外部接続はサイトローカルIPv6アドレスをNAPT66する仮想ルータを通じで出ていく。
はじめに
2017年2月の Android Emulator 25.3 からIPv6がサポートされた。リリースノートによると
Initial IPV6 support.
と、まだ微妙な表現ではあるが、サポートしたと書いてある。実際に動かした例を見たことがなかったので
やってみた
環境
- Android Studio 2.3.3
- Android Emulator 26.0.3
- Android Emulator 26.0.3
Android Studio の 設定 (Preference -> Appearance & Behavior -> System Settings -> Android SDK -> SDK Tools) から執筆時点で最新のAndroid Emulatr 26.0.3 を入れた。
AVD (Android Virtual Device) に付与されたIPv6アドレスの確認
AVD設定
- Nexus 6P (x86)+ Android 7.1.1 (Google APIs)
- root設定が簡単にできる、非Google Play版のイメージを選んだ
起動してみると、IPv6アドレスはサイトローカルアドレスがついていた。
host# adb root
host# adb shell
generic_x86:/ # ifconfig
eth0 Link encap:UNSPEC
inet addr:10.0.2.15 Bcast:10.0.2.255 Mask:255.255.255.0
inet6 addr: fe80::5054:ff:fe12:3456/64 Scope: Link
inet6 addr: fec0::5054:ff:fe12:3456/64 Scope: Site
ブラウザで外部アクセス
Chrome および WebView Browser Test を立ち上げて、http://test-ipv6.jp/ へアクセスすると、AVDにサイトローカルアドレスがついていることに対する警告は出るが、一応10/10点。IPv6インターネットアクセスにはQEMUが提供する仮想ルータがNAT変換を行っており、Webサーバから見ると、ホストOSのIPv6アドレスが見える。
次に、IPv6 only の https://ipv6.google.com/ へもサイトローカルアドレス+NAPT66でアクセスOK
しかし、宛先がデュアルスタックだとIPv4優先になってしまう。これはグローバルスコープのアドレスがないため。http://test-ipv6.com/ でIPv6/IPv4どちらが優先かテストの結果。
Android Emulatorが利用するQEMUの実装状況
Android EmulatorはQEMUを使っており、AVDを収容する仮想ネットワークはユーザモードネットワークと呼ばれるQEMUのソフトウェア機能で実現されている。QEMU自体は、IPv6にも対応しているが、現時点での実装では仮想ネットワークに割り当てるIPv6アドレスのデフォルトがfec0::/64、外部接続はNAPTとなっている。下図はQEMUのドキュメントにIPv6設定を加筆したもの(赤字部分)。
まとめ
- グローバルアドレス再配布の仕組みはなく、またULAではなくサイトローカルアドレスを使っている
- NPTv6でなくてNAPTを使っている。
など、QEMU実装由来のおかしなところはあるが、新たにIPv6アドレスを取得したり、特別な設定をすることなくIPv6接続が使えるのは開発者によっては手軽で、ローカルアドレスとNATのメリットかも知れない。
Author And Source
この問題について(Android Emulator 26.0.3 の IPv6対応), 我々は、より多くの情報をここで見つけました https://qiita.com/ip6/items/15f76aba059ebc969455著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .