안드로이드 에뮬레이터의 IPv6은 그다다 (울음)

TL;DL



오늘 안드로이드 에뮬레이터에서 디버깅을 하면서 코드를 쓰면 성대하게 빠졌습니다.
다음 피해자를 내지 않도록 메모해 둡니다.

만들고 있던 것은 Android에서 IPv6로 통신을 한다는 앱입니다만, Android Emulator는 이미 IPv6 대응하고 있다는 것으로 안심하고 있었습니다.
htps : // m / p6 / ms / 15f76 아바 059에 bc969455

일어난 일



한 라이브러리를 사용하여 IPv6에서 통신을 시도했는데, 왜인지 통신 오류로 떨어진다.
IPv4를 사용하면 문제 없음. 그거 버그 써버렸나?

Android Emulator에서도 Setting에서 IPv6을 확인할 수 있는 것은 아니다.


왜???

원인



Android Emulator는 기본적으로 사이트 로컬 주소를 사용하도록되어있는 모양.
사이트 로컬 주소는 fec0::로 시작하는 주소입니다. 상기 스크린샷에서도 2개 맞고 있다.
그런데 이 사이트 로컬 주소는 2004년 9월에 RFC3879에 의해 폐지되고 있습니다.
https://www.wdic.org/w/WDIC/%E3%82%B5%E3%82%A4%E3%83%88%E3%83%AD%E3%83%BC%E3%82%AB %E3%83%AB%E3%83%A6%E3%83%8B%E3%82%AD%E3%83%A3%E3%82%B9%E3%83%88%E3%82%A2%E3 %83%89%E3%83%AC%E3%82%B9

어째서, Emulator의 호스트로부터 PING을 치려고 하지만 어쨌든 응답이 돌아오지 않는 것이 판명.
Android Emulator는 SYN으로 접속하려고 하지만, 서버가 ACK를 반환해도 그 패킷은 어딘가에서 파기되어 버리고 있는 모양.

어째서 2004년에 폐지되어 버린 규격을, 2020년에 끌고 있어. 용서해줘---.

덧붙여서 실기라면 사이트 로컬 주소는 맞지 않으므로, 실기로 움직이면 무사히 움직였습니다.

좋은 웹페이지 즐겨찾기