2010/01/19

iCal と Google Calender 連携を Firewall で仕切られたネットワークから使う方法

MacOS X 10.5(Leopard) 以上に付属してくる iCal では、CalDAV を通じてGoogle Calendar と同期が行えます。

設定方法は、例えば、Enable Google Calendar in Apple's iCalの他、様々なところで分かりやすく紹介されている通りです。また、Snow Leopard 付属のiCal 4.x では、Google Calendr に関しては、より簡単に設定が行えるように改良されています。

しかし、残念ながら私の環境では、Firewal で区切られたネットワークからは、うまく同期が行えませんでした。HTTP/HTTPS のプロキシを正しく設定した状態でも、
Your calendar couldn't be refreshed.

The Connection to account "Google Calendar" failed
because the network is unreachable.

のようなエラーになってしまいます。



全く同じ設定でありながら、直接 Internet へ接続すれば、問題なく同期させることが可能です。

tcpdump でパケットを眺めていたところ、どうやら iCal は、

  • Accounts の ServerSetting 内の Server address へホスト名が書かれている場合には、そのIP Address を解決するためにネームサーバへ問い合わせに行く。
  • 問い合わせに失敗すると上記のエラーになる。
という実装になっているのでは、と思わせる挙動を確認することができました。

そこで、

  • iCal の設定で、Server address へ www.google.com のIPアドレスを書き込む(または /etc/hosts へ www.google.com のエントリを追加する)
ことで、無事、同期が行われるようになりました。



通信自体は HTTPS Proxy 経由で行えるので、なんとなく Bug のような気がしますが、もし同じ現象で困っている場合には、参考になればと思います。

0 件のコメント:

コメントを投稿