トップ «前の日記(2011-06-01) 最新 次の日記(2011-07-02)» 編集

ORCA愉快日記

2004|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|10|11|12|
2012|01|02|09|
2013|04|
Linux | PC | Ubuntu | kde | orca | scribus | その他 | りなざう | コミック | デジカメ | ネタ | 料理 | 旅行 | 航空 | 鉄道 | 音楽

2011-06-10 PidginでYahooメッセンジャに接続できなくなった件とその回避方法

_ [Linux] PidginでYahooメッセンジャに接続できなくなった件とその回避方法

追記:YMSGプロトコルについての記述などを追加。

□ PidginでYahooメッセンジャに接続できない件とその回避方法
2011/6/7に、マルチプロトコル対応のメッセンジャーソフトPidginから
Yahooメッセンジャ(Yahoo Japan)に接続できなくなりました。
  
回避方法としては、以下の通りです。
  
#将来的には、この回避方法が逆にトラブルの要因となる可能性も
#ありますので、その場合は下記の設定を解除するようにしてください。
  
◆ Linuxの場合
/etc/hostsファイルに下記のようなエントリを追加してください。
-------------------------------------------------
124.83.239.240 cs1.msg.vip.ogk.yahoo.co.jp
-------------------------------------------------
  
操作にはroot権限が必要なので、下記の例のようなコマンドを
利用すると良いでしょう。
$ gksudo gedit /etc/hosts  または
$ sudo vi /etc/hosts
  
◆ Windowsの場合
Windowsの場合は、対策パッチの当たったPidgin 2.8が有志によって
リリースされているようなので、そちらを使ったほうが良いかもしれません。
  
電脳のツボ-別館 - 
http://garakuta.homelinux.org/~nosuke/tsubo/index.php?Windows%2FPidgin%A4%F2%A5%D3%A5%EB%A5%C9%A4%B7%A4%C6%A4%DF%A4%EB
  
Linux版と同じ方法で回避するのであれば、
32ビット版 Windowsなら、C:\Windows\System32\drivers\etc\hosts または
64ビット版 Windowsなら、C:\Windows\SysWOW64\drivers\etc\hosts
のファイルに、同様の下記のエントリを追加してください。
-------------------------------------------------
124.83.239.240 cs1.msg.vip.ogk.yahoo.co.jp
-------------------------------------------------
  
Windows 7などの環境では、ウイルス等に不正に書き換えられてしまうのを防ぐため
上記のhostsファイルの編集には"管理者権限"が必要になります。
メモ帳などのエディタで、右クリック→「管理者権限で実行」を選択して
管理者権限でメモ帳を起動して編集してください。
(管理者権限がないと、ファイルの変更点を保存できません。)
  
  
□ トラブル原因の調査
私が使っていた環境は、Ubuntu 10.04用のPPA版のpidgin 2.7.11で
6/7にYahooメッセンジャに接続できなくなりました。
  
Windows向けPidginだと2.8で接続できるような話がネットに転がっていたので
Linux環境でビルドしてみたものの、上記のと違い対策パッチを当ててなかったので
Yahooメッセンジャに接続できませんでした。
  
そこで、pidgin 2.8をデバッグオプション付きでビルドしてログを
観察してみると、cs1.msg.vip.ogk.yahoo.co.jp=124.83.219.223の
サーバのポート80に接続しようとして拒否されています。
------------------------------------------------------------
(06:44:19) dns: Got response for 'cs1.msg.vip.ogk.yahoo.co.jp'
(06:44:19) dnsquery: IP resolved for cs1.msg.vip.ogk.yahoo.co.jp
(06:44:19) proxy: Attempting connection to 124.83.219.223
(06:44:19) proxy: Connecting to cs1.msg.vip.ogk.yahoo.co.jp:80 with no proxy
(06:44:19) proxy: Connection in progress
(06:44:19) proxy: Connecting to cs1.msg.vip.ogk.yahoo.co.jp:80.
(06:44:19) proxy: Error connecting to cs1.msg.vip.ogk.yahoo.co.jp:80 (接続を拒否されました).
(06:44:19) proxy: Connection attempt failed: 接続を拒否されました
(06:44:19) yahoo: Unable to retrieve server info. 0 bytes retrieved with error message: cs1.msg.vip.ogk.yahoo.co.jp へ接続できません: 接続を拒否されました
(06:44:19) connection: Connection error on 0x8e9c7e0 (reason: 0 description: Unable to connect: The server returned an empty response.)
(06:44:19) account: Disconnecting account test (0x8c2c9a0)
(06:44:19) connection: Disconnecting connection 0x8e9c7e0
(06:44:19) connection: Destroying connection 0x8e9c7e0
------------------------------------------------------------
  
pingは返ってくるもののポート80に接続できないので、仕様変更で
このサーバでのポートをふさいだか、サービスを停止したものと思われます。
------------------------------------------------------------
$ ping 124.83.219.223
PING 124.83.219.223 (124.83.219.223) 56(84) bytes of data.
64 bytes from 124.83.219.223: icmp_seq=1 ttl=50 time=25.3 ms
  
$ telnet 124.83.219.223 80
Trying 124.83.219.223...
telnet: Unable to connect to remote host: Connection refused
------------------------------------------------------------
  
  
□ 接続できるサーバの調査
Yahooメッセンジャのサービスで使われているドメインは、csから始まる
cs*.yahoo.co.jpの名前が慣例らしいので、続き番号のドメイン
cs2.msg.vip.ogk.yahoo.co.jp を調べました。
------------------------------------------------------------
$ host cs2.msg.vip.ogk.yahoo.co.jp
cs2.msg.vip.ogk.yahoo.co.jp has address 124.83.239.240
------------------------------------------------------------
  
その他のドメインについても調べてみると(一番下のリスト参照)
csから始まる以下の範囲のサーバであれば、現時点では
Yahooメッセンジャのサービスに接続できるようです。
------------------------------------------------------------
124.83.239.240
124.83.239.126〜124.83.239.131
------------------------------------------------------------
(注) ただし、上記はYahooから公式に公開されているものではないので
正しいサーバかどうかは分からず、将来的に接続を拒否される可能性はあります。
  
  
□ さらにYMSGプロトコル等について詳しく調べてみた
さらに詳しく調べてみると、Yahooメッセンジャ(YMSG)プロトコルでは
サービスに最初にアクセスする際、HTTP GETリクエストを
http://(サーバ名)/capacity に対して送っているようです。
  
そのリクエストで返ってきた CS_IP_ADDRESS=(IPアドレス) の
IPアドレスに対して接続/認証を試みるのですが  
124.83.219.223 のIPアドレスでリクエストした場合は、応答を返していません。
------------------------------------------------------------
× http://cs1.msg.vip.ogk.yahoo.co.jp/capacity  →  (CS_IP_ADDRESS= #アクセスするタイミングによって変わり、124.83.239.126〜131のいずれかとなる)
× http://124.83.219.223/capacity
○ http://cs2.msg.vip.ogk.yahoo.co.jp/capacity  →  (CS_IP_ADDRESS= #アクセスするタイミングによって変わり、124.83.239.126〜131のいずれかとなる)
○ http://124.83.239.240/capacity
  
○ http://cs.yahoo.co.jp/capacity  →  (CS_IP_ADDRESS= #アクセスするタイミングによって変わり、124.83.239.126〜131のいずれかとなる)
○ http://124.83.239.240/capacity  (cs2.msg.vip.ogk.yahoo.co.jpと同じ)
  
○ http://cs101.msg.ogk.yahoo.co.jp/capacity  →  (CS_IP_ADDRESS=124.83.239.131)
○ http://124.83.239.131/capacity
○ http://cs102.msg.ogk.yahoo.co.jp/capacity  →  (CS_IP_ADDRESS=124.83.239.130)
○ http://124.83.239.130/capacity
○ http://cs103.msg.ogk.yahoo.co.jp/capacity  →  (CS_IP_ADDRESS=124.83.239.129)
○ http://124.83.239.129/capacity
○ http://cs104.msg.ogk.yahoo.co.jp/capacity  →  (CS_IP_ADDRESS=124.83.239.128)
○ http://124.83.239.128/capacity
○ http://cs105.msg.ogk.yahoo.co.jp/capacity  →  (CS_IP_ADDRESS=124.83.239.127)
○ http://124.83.239.127/capacity
○ http://cs106.msg.ogk.yahoo.co.jp/capacity  →  (CS_IP_ADDRESS=124.83.239.126)
○ http://124.83.239.126/capacity
------------------------------------------------------------
cs1/cs2サーバにユーザがアクセスした際に、実体サーバのcs101-cs106の
故障や負荷状況によって、アクセスを振り分けているのではないかと想像します。
#単なるラウンドロビンだという気も。
  
Wikiepdia - Yahoo! Messenger Protocol
http://en.wikipedia.org/wiki/Yahoo!_Messenger_Protocol
imfreedom.org - Yahoo
http://imfreedom.org/wiki/Yahoo
  
  
□ 結論
PidginからYahooメッセンジャに接続できなくなったのは、
cs1.msg.vip.ogk.yahoo.co.jp の名前解決をして返ってきた
124.83.219.223 に対するhttpリクエストに応答がないためです。
  
これを回避するには、cs1.msg.vip.ogk.yahoo.co.jp の名前解決リクエストに対して
124.83.239.240 (cs2.msg.vip.ogk.yahoo.co.jp)のIPを返すよう
静的な名前解決の設定をすれば良い。
(各OSにて、静的な名前解決に使用されるhostsファイルを編集する)
  
#もちろん、ソースコードを修正してビルドする手もあります。
  
いずれPidgin本体に修正が入れば、この回避方法は不要になり
場合によっては、将来的に問題となる可能性はありますが
現時点では、上記の方法で解決できます。
  
  
□ 付録 (124.83.239.0/24の範囲のYahooのドメイン一覧)
------------------------------------------------------------
$ for i in `seq 1 254`; do host 124.83.239.$i|grep -v "not found"; done
16.239.83.124.in-addr.arpa domain name pointer as1001.mail.ogk.yahoo.co.jp.
17.239.83.124.in-addr.arpa domain name pointer as1002.mail.ogk.yahoo.co.jp.
18.239.83.124.in-addr.arpa domain name pointer as1003.mail.ogk.yahoo.co.jp.
19.239.83.124.in-addr.arpa domain name pointer as1004.mail.ogk.yahoo.co.jp.
20.239.83.124.in-addr.arpa domain name pointer as1006.mail.ogk.yahoo.co.jp.
21.239.83.124.in-addr.arpa domain name pointer mailevtx101.msg.ogk.yahoo.co.jp.
22.239.83.124.in-addr.arpa domain name pointer mailevtx301.msg.ogk.yahoo.co.jp.
23.239.83.124.in-addr.arpa domain name pointer relay101.msg.ogk.yahoo.co.jp.
73.239.83.124.in-addr.arpa domain name pointer mix4203.mail.ogk.yahoo.co.jp.
74.239.83.124.in-addr.arpa domain name pointer mix4303.mail.ogk.yahoo.co.jp.
75.239.83.124.in-addr.arpa domain name pointer as1005.mail.ogk.yahoo.co.jp.
76.239.83.124.in-addr.arpa domain name pointer as1007.mail.ogk.yahoo.co.jp.
77.239.83.124.in-addr.arpa domain name pointer as1008.mail.ogk.yahoo.co.jp.
78.239.83.124.in-addr.arpa domain name pointer as901.mail.ogk.yahoo.co.jp.
79.239.83.124.in-addr.arpa domain name pointer as902.mail.ogk.yahoo.co.jp.
80.239.83.124.in-addr.arpa domain name pointer as903.mail.ogk.yahoo.co.jp.
81.239.83.124.in-addr.arpa domain name pointer as904.mail.ogk.yahoo.co.jp.
82.239.83.124.in-addr.arpa domain name pointer as905.mail.ogk.yahoo.co.jp.
83.239.83.124.in-addr.arpa domain name pointer as906.mail.ogk.yahoo.co.jp.
84.239.83.124.in-addr.arpa domain name pointer as907.mail.ogk.yahoo.co.jp.
85.239.83.124.in-addr.arpa domain name pointer as908.mail.ogk.yahoo.co.jp.
94.239.83.124.in-addr.arpa domain name pointer mailev401.msg.ogk.yahoo.co.jp.
95.239.83.124.in-addr.arpa domain name pointer mailev402.msg.ogk.yahoo.co.jp.
96.239.83.124.in-addr.arpa domain name pointer mailev403.msg.ogk.yahoo.co.jp.
97.239.83.124.in-addr.arpa domain name pointer mailev404.msg.ogk.yahoo.co.jp.
98.239.83.124.in-addr.arpa domain name pointer mailum401a.msg.ogk.yahoo.co.jp.
99.239.83.124.in-addr.arpa domain name pointer mailum401b.msg.ogk.yahoo.co.jp.
100.239.83.124.in-addr.arpa domain name pointer umr102.msg.ogk.yahoo.co.jp.
101.239.83.124.in-addr.arpa domain name pointer umr101.msg.ogk.yahoo.co.jp.
102.239.83.124.in-addr.arpa domain name pointer um103b.msg.ogk.yahoo.co.jp.
103.239.83.124.in-addr.arpa domain name pointer um103a.msg.ogk.yahoo.co.jp.
104.239.83.124.in-addr.arpa domain name pointer um102b.msg.ogk.yahoo.co.jp.
105.239.83.124.in-addr.arpa domain name pointer um102a.msg.ogk.yahoo.co.jp.
106.239.83.124.in-addr.arpa domain name pointer um101b.msg.ogk.yahoo.co.jp.
107.239.83.124.in-addr.arpa domain name pointer um101a.msg.ogk.yahoo.co.jp.
108.239.83.124.in-addr.arpa domain name pointer rbum102b.msg.ogk.yahoo.co.jp.
109.239.83.124.in-addr.arpa domain name pointer rbum102a.msg.ogk.yahoo.co.jp.
110.239.83.124.in-addr.arpa domain name pointer rbum101b.msg.ogk.yahoo.co.jp.
111.239.83.124.in-addr.arpa domain name pointer rbum101a.msg.ogk.yahoo.co.jp.
112.239.83.124.in-addr.arpa domain name pointer rbes104.msg.ogk.yahoo.co.jp.
113.239.83.124.in-addr.arpa domain name pointer rbes103.msg.ogk.yahoo.co.jp.
114.239.83.124.in-addr.arpa domain name pointer rbes102.msg.ogk.yahoo.co.jp.
115.239.83.124.in-addr.arpa domain name pointer rbes101.msg.ogk.yahoo.co.jp.
116.239.83.124.in-addr.arpa domain name pointer httpcs104.msg.ogk.yahoo.co.jp.
117.239.83.124.in-addr.arpa domain name pointer httpcs103.msg.ogk.yahoo.co.jp.
118.239.83.124.in-addr.arpa domain name pointer httpcs102.msg.ogk.yahoo.co.jp.
119.239.83.124.in-addr.arpa domain name pointer httpcs101.msg.ogk.yahoo.co.jp.
120.239.83.124.in-addr.arpa domain name pointer es106.msg.ogk.yahoo.co.jp.
121.239.83.124.in-addr.arpa domain name pointer es105.msg.ogk.yahoo.co.jp.
122.239.83.124.in-addr.arpa domain name pointer es104.msg.ogk.yahoo.co.jp.
123.239.83.124.in-addr.arpa domain name pointer es103.msg.ogk.yahoo.co.jp.
124.239.83.124.in-addr.arpa domain name pointer es102.msg.ogk.yahoo.co.jp.
125.239.83.124.in-addr.arpa domain name pointer es101.msg.ogk.yahoo.co.jp.
126.239.83.124.in-addr.arpa domain name pointer cs106.msg.ogk.yahoo.co.jp.
127.239.83.124.in-addr.arpa domain name pointer cs105.msg.ogk.yahoo.co.jp.
128.239.83.124.in-addr.arpa domain name pointer cs104.msg.ogk.yahoo.co.jp.
129.239.83.124.in-addr.arpa domain name pointer cs103.msg.ogk.yahoo.co.jp.
130.239.83.124.in-addr.arpa domain name pointer cs102.msg.ogk.yahoo.co.jp.
131.239.83.124.in-addr.arpa domain name pointer cs101.msg.ogk.yahoo.co.jp.
132.239.83.124.in-addr.arpa domain name pointer cgses104.msg.ogk.yahoo.co.jp.
133.239.83.124.in-addr.arpa domain name pointer cgses103.msg.ogk.yahoo.co.jp.
134.239.83.124.in-addr.arpa domain name pointer cgses102.msg.ogk.yahoo.co.jp.
135.239.83.124.in-addr.arpa domain name pointer cgses101.msg.ogk.yahoo.co.jp.
136.239.83.124.in-addr.arpa domain name pointer ums101.msg.ogk.yahoo.co.jp.
137.239.83.124.in-addr.arpa domain name pointer ums102.msg.ogk.yahoo.co.jp.
240.239.83.124.in-addr.arpa domain name pointer cs2.msg.vip.ogk.yahoo.co.jp.
241.239.83.124.in-addr.arpa domain name pointer httpcs2.msg.vip.ogk.yahoo.co.jp.
242.239.83.124.in-addr.arpa domain name pointer as009.mail.vip.ogk.yahoo.co.jp.
252.239.83.124.in-addr.arpa domain name pointer as010.mail.vip.ogk.yahoo.co.jp.
------------------------------------------------------------

トップ «前の日記(2011-06-01) 最新 次の日記(2011-07-02)» 編集