たごもりすメモ

コードとかその他の話とか。

iOS4デバイスは .local ドメインのホスト名を解決できない

忘れないようにメモ。
表題の通り。ここにAppleの説明がある。Unable to resolve unicast DNS names that end in .local in iOS - Apple Support

原因としては、Mac OS X 10.2 あたりから入ってきたマルチキャストDNSクエリがiOS4で有効になったせいらしい。自分の手元では、iPhoneOS 3.2のiPadhoge.local な名前を引けるが、iOS4のiPhone4からだと失敗する。tcpdumpで流れてくるパケットを見てると、確かにiPhone4のIPアドレスからはマルチキャストのパケットしか流れてきてなかった。
マルチキャストDNSクエリ自体はRendezvousとかBonjourとか呼ばれるサービスのためらしいが、なんでそんなもんをiOS4上でわざわざ有効にしたのかがわからん。使わねーだろそんなの。出荷時のカーネルコンパイルオプション指定ミスとかじゃねーだろうな。