Troubleshoot > cosmos3_connection_error

1. COSMOS3サイト間通信のトラブルシュート

はじめに

  1. 「通信が切れた」という以外になんの情報も付されていない報告をしばしば受けます。これは対処しにくい。まずはどのようなトラブルが生じたかを調べリポートするのが、物理実験の超基本的な手順です。
  2. そこで、下記のトラブルシュートを順番に実施してください。
  3. トラブル時に通信に関する情報を収集する script が用意されています。下記のトラブルシュートでも解決しない場合には、このスクリプトの出力結果を付して、aste-comp ==at== nro.nao.ac.jp に連絡し、指示を仰いでください。この情報が出てくれば、aste-comp としても動きやすくなります。
    aste-mt2:/home/asteobs/bin/chk_connection.csh

症状

「COSMOS3でpriorityが取れない/antenna consoleの時計が止まっている」という場合、サイト間の通信がうまく行っていない、という場合がほとんどです。(ごくまれに、サイトのCOSMOS3がハッピーになっている場合があります)

通信がおかしくなる場合、大抵は三鷹-サイト間の通信(I2,衛星)の過負荷や不安定によって誘発されたものです。

※COSMOS3通信はOKだが、AzTEC用通信がダメ、という場合もよくありますが、これについては後述。

三鷹がおかしい場合はもちろん、NROでpriorityが取れない、という場合でも、三鷹(aste-mt2)の状況を 確認しておいてください。一番脆いところですので。

一口に通信がおかしい、といっても、次の4通りが考えられます。

現在(2011/04/16)通信は以下のとおり

それぞれに症状が微妙に異なり、対応も当然異なります。 以下、症状の確認方法と対策について書きます。

1.1 症状の確認方法

なにはともあれ、aste-mt2(or mt1)からpingを打ってください。

asteobs@aste-mt2% /usr/sbin/ping aste-mt

これが帰ってこない場合は、ネットワークそのものが不通になっています。何度か試してください。不安定な ときは、pingが成功したりしなかったりを繰り返します。

あるいは、aste-mt1 or mt2でnetscapeを立ち上げ、以下のURL(smokeping)にアクセスしてください。 http://210.229.105.4/smokeping/smokeping.cgi?target=ASTE_NETWORK.ASTE pingの応答時間と、packet lossの値に注目してください。前者がよくても、後者が悪いということは よくあります。

ネットワークが不安定である場合、どこで不安定になっているかを確かめましょう。次の 二通りのやり方を使っています。

tracerouteによる確認方法

asteobs@aste-mt2% /usr/sbin/traceroute -n -q 1 -i hme1 aste-2c
  1  210.229.104.129  0.572 ms
  2  210.229.97.54  0.732 ms
  3  210.229.97.238  1.224 ms
  4  210.229.97.75  1.241 ms
  5  210.229.97.121  90.075 ms
  6  207.231.240.8  90.760 ms
  7  64.57.28.27  106.705 ms
  8  64.57.28.25  143.863 ms
  9  64.57.28.37  141.842 ms
 10  64.57.28.13  158.324 ms
 11  198.32.11.106  324.185 ms
 12  200.0.204.37  350.926 ms
 13  200.0.204.29  372.016 ms
 14  200.0.204.142  373.650 ms
 15  146.83.242.26  372.498 ms <--- チリ大まで通じた
 16  200.89.75.138  374.644 ms
 17  146.83.248.50  375.368 ms  <--- サイトaste-2cまで通じた
 18  146.83.248.50  377.466 ms
 19  146.83.248.50  378.027 ms
 20  146.83.248.50  376.196 ms

これで、どこがおかしいかは大体わかります。

smokepingによる確認方法

上述のsmokepingでも、各HOPまでの安定性を調べることができます。 見方がやや難しいのと、ブラウザを開くのが面倒なのであまり使いませんが、tracerouteとあわせて状況 を確認するために使ってください。

1.2 衛星通信が不通/不安定な場合の対処法

大抵、強風と同期して起こります、経験上。風でアンテナがぐらついているのでは?という見方が一般的ですが、実のところはよくわかっていません。

商用回線で三鷹->サンペドロにつなぐ方法

1.3 I2(三鷹ーチリ大間)が不安定な場合の対処法

tracerouteで、そもそもチリ大までたどり着かない、という場合はI2の実験用回線が不安定な場合です。たまにあります。これは比較的簡単に回避できます。

aste-mt2には(mt1にも) NICが2枚ささっており、

eri0(on mt1), hme0(on mt2) ---> 天文台I1(146.83.220.xxx)
hme0(on mt1), hme1(on mt2) ---> I2 (210.209.104.xxx)

となっています。通常、ASTEサイトにはI2回りのルーティングがなされているのですが、そのI2が不安定 な場合はI1回りでASTEサイトにつなぐようにルーティング設定を変更してください。

(使用前)
admin@aste-mt2% netstat -rn
Routing Table:
  Destination           Gateway           Flags  Ref   Use   Interface
-------------------- -------------------- ----- ----- ------ ---------
210.229.104.128      210.229.104.131       U        2    393  hme1
133.40.220.0         133.40.220.72         U        3    881  hme0
146.83.248.0         210.229.104.129       UG       0    670        <--- サイト(146.83.248.xxx)へのGWが
210.229.96.0         210.229.104.129       UG       0   3998             hme1(210.229.104.129)になっている
224.0.0.0            133.40.220.72         U        3      0  hme0
default              133.40.220.254        UG       0   7234  
127.0.0.1            127.0.0.1             UH       030793181  lo0

(設定変更)
admin@aste-mt2% root
root@aste-mt2% route delete -net 146.83.248.0 -netmask 255.255.255.0  210.229.104.129
root@aste-mt2% route add -net 146.83.248.0 -netmask 255.255.255.0 133.40.220.254 1

(使用後)
admin@aste-mt2% netstat -rn
Routing Table:
  Destination           Gateway           Flags  Ref   Use   Interface
-------------------- -------------------- ----- ----- ------ ---------
210.229.104.128      210.229.104.131       U        2    393  hme1
133.40.220.0         133.40.220.72         U        3    881  hme0
146.83.248.0         133.40.220.254       UG       0    670         <--- サイト(146.83.248.xxx)へのGWが
210.229.96.0         210.229.104.129       UG       0   3998             hme0(133.40.220.254)になっている
224.0.0.0            133.40.220.72         U        3      0  hme0
default              133.40.220.254        UG       0   7234  
127.0.0.1            127.0.0.1             UH       030793181  lo0
※ たまに、上記作業でaste-mt2の挙動が怪しくなることがあります。その場合、rebootをすると 直るのですが、routing設定ももとに戻ってしまいます。

routing設定を固定するには、/etc/init.d/inetsvcスクリプトの最後のほう、

# ASTE
/usr/sbin/route add -net 210.229.96.0 -netmask 255.255.224.0 210.229.104.129 1
/usr/sbin/route add -net 146.83.248.0 -netmask 255.255.255.0 210.229.104.129 1

これを書き換えてください。(210.229.104.129 -> 133.40.220.254)

1.4 ネットワークは通じるが、COSMOS3通信が切れている場合の対処法

三鷹-サイト間のCOSMOS3通信がつながっていない場合のほか、NRO-三鷹のCOSMOS3通信がおかしい場合も、この項を見てください。 また、COSMOS3の接続設定を変更した後(三鷹の親をサンペドロに変更、など)、トラブった場合もこちらを参照。

基本的には、ほぼすべてのトラブルは、

で解決しますが、COSMOS3の接続設定で間違った設定をしている場合などはその限りではありません。

可能性としては、次の二通りがメインです。

以下、それぞれ解説します。

1.4.1 サイト間のCOSMOS3通信の確認方法

サイト間の通信状況の確認方法です。以下のいくつかを組み合わせて使用してください。 a,b,c,,,と順番に確認せよ、という意味ではありません。 (もちろんそうしてもよいのですが)

a) ssh通信プロセスの確認

COSMOS3は、ASTEサイトを頂点としたカスケード式の通信をしています。実際に 通信を司っているのは各サイトの情報サーバです。

ASTE(aste-2c) +-MTK(aste-mt2) - NRO(aste-w)
              |               
              |
              +- SPdA(aste-at3)
			   

各サイト間の通信は、すべてsshを使ったport forwardingによって担われています。 たとえば asteobs@aste-mt2% ps -ef | grep ssh を実行すると、

	 root  7542  7386  0   8?? 22 ?        0:00 /home/cosmos3/aste/local/bin/perl /home/cosmos3/aste/sbin/ssh.proc cos3serv 940
    root  7553  7552  0   8?? 22 ?        0:22 /opt/OpenSSH/bin/ssh -L 9421:cos3serv:9421 -l sshcos3 cos3serv SSH_LOCAL_MON
    root  6549  7560  0   8?? 23 ?        0:00 /home/cosmos3/aste/local/bin/perl /home/cosmos3/aste/sbin/ssh.proc cos3serv 930
    root  7560  7391  0   8?? 22 ?        0:00 /home/cosmos3/aste/local/bin/perl /home/cosmos3/aste/sbin/ssh.proc cos3serv 930
    root  7552  7551  0   8?? 22 ?        0:01 /home/cosmos3/aste/local/bin/perl /home/cosmos3/aste/sbin/ssh.proc cos3serv 942
    root  7551  7403  0   8?? 22 ?        0:00 /home/cosmos3/aste/local/bin/perl  /home/cosmos3/aste/sbin/ssh.proc cos3serv 942
    root  7547  7387  0   8?? 22 ?        0:00 /home/cosmos3/aste/local/bin/perl /home/cosmos3/aste/sbin/ssh.proc cos3serv 941
    root  3244  7534  0 23:58:43 ?        0:00 /home/cosmos3/aste/local/bin/perl /home/cosmos3/aste/sbin/ssh.proc infoserv 910
    root 17717  7468  0 04:10:10 pts/19   0:01 /opt/OpenSSH/bin/ssh -C -N sshcos3@aste-2c -p 22 -L 3306:localhost:3306 -L 5555
    root  7464     1  0   8?? 22 pts/19   0:00 sh -c /home/cosmos3/aste/nro/sbin/ssh_astaztec3 6 2>&1 | /home/local/bin/awk '{
    root  3530  3529  0 23:59:56 ?        0:01 /opt/OpenSSH/bin/ssh -L 9412:cos3serv:9412 -l sshcos3 cos3serv SSH_MGUI
    root  3529  7547  0 23:59:55 ?        0:00 /home/cosmos3/aste/local/bin/perl /home/cosmos3/aste/sbin/ssh.proc cos3serv 941
    root  6550  6549  0   8?? 23 ?        0:02 /opt/OpenSSH/bin/ssh -L 9303:cos3serv:9303 -l sshcos3 cos3serv SSH_MERGE_MON
    root  7535  7385  0   8?? 22 ?        0:00 /home/cosmos3/aste/local/bin/perl /home/cosmos3/aste/sbin/ssh.proc cos3serv 940
    root  7468  7467  0   8?? 22 pts/19   1:28 /bin/sh /home/cosmos3/aste/nro/sbin/ssh_astaztec3 6
    root  3565  3564  0 23:59:57 ?        0:01 /opt/OpenSSH/bin/ssh -L 9402:cos3serv:9402 -l sshcos3 cos3serv SSH_QLOOK_CONT
    root  3245  3244  0 23:58:43 ?        0:11 /opt/OpenSSH/bin/ssh -L 9103:infoserv:9103 -l sshcos3 infoserv SSH_INFO_SERVER
    root  3564  7542  0 23:59:57 ?        0:00 /home/cosmos3/aste/local/bin/perl /home/cosmos3/aste/sbin/ssh.proc cos3serv 940
    root  7534  7384  0   8?? 22 ?        0:00 /home/cosmos3/aste/local/bin/perl /home/cosmos3/aste/sbin/ssh.proc infoserv 910
    root  7541  7540  0   8?? 22 ?        0:03 /opt/OpenSSH/bin/ssh -L 9401:cos3serv:9401 -l sshcos3 cos3serv SSH_QLOOK_LINE
    root  7540  7535  0   8?? 22 ?        0:01 /home/cosmos3/aste/local/bin/perl /home/cosmos3/aste/sbin/ssh.proc cos3serv 940

このようなプロセスが引っかかります。"ssh.proc"というのがsshを呼び出している元プロセスで、"/opt/OpenSSH/bin/ssh"が sshの実体です。

b) COSMOS3のログの確認

上記ssh.procは、COSMOS3のデーモンから自動起動されます。 該当する起動デーモンは、

$COSMOS3/aste/rc3.d/S98ssh_cosmos

です。 スクリプト中の"FACILITY=4"というのが、syslogのfacility番号です。/etc/syslog.confと照らし合わせるとわかるように、 ssh.procの出力は、/home/cosmos3/aste/log/4/mess以下に書き出されます。 このログには、sshの出力などがべた書きされていますので、ssh通信がうまくいっているかどうかを判別することができます。

などがわかります。接続先の設定を間違えている場合や、接続先の~sshcos3/.ssh/authorized_keysの記述が間違っている 場合、はたまたssh daemon/clientの設定が元から正しくない場合が考えられます。

c) ネットワーク状態の確認 OSレベルで、sshの通信が成立しているかどうかを判別できます。 aste-mt2の場合、

anyone@aste-mt2% netstat | egrep 'aste-2c\.(22|ssh)'

としてみましょう。

aste-mt2a.59213      aste-2c.22            9660      0  9660      0 ESTABLISHED
aste-mt2a.59219      aste-2c.22            9660      0  9660      0 ESTABLISHED
aste-mt2a.42107      aste-2c.22            9660      0  9660      0 ESTABLISHED
aste-mt2a.46593      aste-2c.22            9660      0  9660      0 ESTABLISHED
aste-mt2a.46665      aste-2c.22            9660      0  9660      0 ESTABLISHED
aste-mt2a.46668      aste-2c.22            9660      0  9660      0 ESTABLISHED
aste-mt2a.33146      aste-2c.22            9660      0  9660      0 ESTABLISHED

このように、COSMOS3用ssh通信が成立しているだけで、6つ(or 7つ)のsshが引っかかります。ほかにaste-2cにコンソールログインしている場合は、当然その分だけ増えます。

通信が正しく行われていない時には、

aste-mt2a.59213      aste-2c.22            9660      0  9660      0 TIME_WAIT

のような開放されたソケットが大量に引っかかることがあります。これは、タイムアウトになった接続の残滓です。 一つ二つある分には通常でもありえますが、COSMOS3のssh接続に失敗し続けている間は、TIME_WAITソケットが次々に量産されます。 この状況下では、"ESTABLISHED"状態のソケットがある場合でも、信じてはいけません。1分後には、 ~"TIME_WAIT"に転落しているはずです。

d) 直接sshログインしてみる これが手っ取り早いかもしれません。 一度COSMOS3をストップして、手動で上流サイトにつないで見ましょう。

root@aste-mt2% $COSMOS3/aste/nro/sbin/cos3_cntl stop
root@aste-mt2% /opt/OpenSSH/bin/ssh -L 9402:aste-2c:9402 -v sshcos3@aste-2c

パスワード認証なしでつながりましたか? つながったら、別のターミナルを開いてcosmos3に接続してみましょう。

anyone@aste-mt2% telnet localhost 9402

いったんconnectedになればokです。 (ちなみに9402はcont.qlookの接続です。)

e) UMass--MTKの間の接続確認

以上、すべてaste-mt2とaste-2cの間の接続を例にとって説明しています。 INAOE--UMass間の場合は、ホスト名を適当に読み替えてください( aste-2c -> tacana, aste-mt2 -> tacana2)

UMass--aste-mt2間の接続も基本的な原理は同じですが、間に外部接続専用サーバを介しています。つまり、

tacana.umass --(ssh)--> aste-www.mtk --(ssh)--> aste-mt2.mtk

のようになっています。したがって、UMassにとっての上流サーバはaste-www(133.40.7.130)になります。 aste-wwwでは、COSMOS3用の接続ポート(9402など6つor7つ)をaste-mt2へフォワーディングしています。

anyone@aste-www% ps -ef | grep ssh
root      9139  9130  0 Aug22 ?        00:02:03 /usr/bin/ssh -C -N sshcos3@aste-mt2 -p 22 -L
55555:localhost:55555 -L 3306:loalhost:3306 -L 9103:aste-mt2:9103 -L 9402:aste-mt2:9402 -L
9401:aste-mt2:9401 -L 9421:aste-mt2:9421 -L 9303:aste-mt2:9303 -L 9412:aste-mt2:9412 -L
8080:zod:80 -L 40022:zod:22 -L 10022:aste-2c:22 -vvv ASTEAZTC

などのようなプロセスが存在しているはずです。これは、aztec通信用のportfowardも兼ねています(後述)。起動、終了スクリプトは、

$COSMOS3/aste/nro/rc3.d/S99ssh_astaztec (stop|start)

です。

1.4.2 ssh通信がつながらない場合の対処方法

上記で得られた情報を組み合わせると、何がおかしいのかの手がかりはつかめるはずです。 以下のヒントにしたがって、適切に処置してください。

1.4.3 上流サイトへssh通信はつながっているが、いまだにCOSMOS3通信が復活しない

この状態に陥ったときは、pgetはエラー(connection refusedなど)にはならず、すべて"0"を返してくる ことが多いです。antenna consoleの値もすべて0になっています。ローカルのCOSMOS3をリスタートした後は、あせらずに10分ほど根気良く待ってください。

1.5 サイトの特定の計算機にのみつながらない

経験をつんでくると、上記調査中に悪寒が走ることがあります。 その場合はサイト計算機がハードウェア的な故障を起こしている可能性が高いです。

典型的な症状としては、

などがあります。 これについては別項で解説しています。


Front page   New Page list Search Recent changes   Help   RSS of recent changes