「COSMOS3でpriorityが取れない/antenna consoleの時計が止まっている」という場合、サイト間の通信がうまく 行っていない、という場合がほとんどです。
(ごくまれに、サイトのCOSMOS3がハッピーになっている場合があります)
通信がおかしくなる場合、大抵は三鷹-サイト間の通信(I2,衛星)の過負荷や不安定によって誘発されたものです。
※COSMOS3通信はOKだが、AzTEC用通信がダメ、という場合もよくありますが、これについては後述。
三鷹がおかしい場合はもちろん、UMass、INAOEでpriorityが取れない、という場合でも、三鷹(aste-mt2)の状況を 確認しておいてください。一番脆いところですので。
一口に通信がおかしい、といっても、次の4通りが考えられます。
それぞれに症状が微妙に異なり、対応も当然異なります。
以下、症状の確認方法と対策について書きます。
なにはともあれ、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の値に注目してください。前者がよくても、後者が悪いということは よくあります。
ネットワークが不安定である場合、どこで不安定になっているかを確かめましょう。次の 二通りのやり方を使っています。
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
これで、どこがおかしいかは大体わかります。チリ大まで通じているが、aste-2cまで通じない、という場合 は衛星通信が不良になっています。
チリ大まで通じない、というときはI2の通信がおかしくなっています。
どちらの対処法も基本的には回復待ちの一手ですが、たまに裏技を使っています。後述。
上述のsmokepingでも、各HOPまでの安定性を調べることができます。 見方がやや難しいのと、ブラウザを開くのが面倒なのであまり使いませんが、tracerouteとあわせて状況 を確認するために使ってください。
もちろん、ASTEサイトの機器や、天文台側の機器の故障ということも時々あります。その場合も、 tracerouteで見当がつくはずです。
MTK-ASTE間通信を調査する場合は、ping先はaste-2cに決めうちせずに、aste-3c, aste-v1cも試しましょう。 特定の計算機のみがトラブルに陥っている場合、ハードウェア的な故障である可能性が高いです。
大抵、強風と同期して起こります、経験上。風でアンテナがぐらついているのでは?という見方が一般的ですが、 実のところはよくわかっていません。
三鷹-サイト間が不安定なときは、大抵サンペドロ-サイト間もダメです。この場合、天候が回復するのを待つ以外に ありません。
まれに、三鷹のみ(あるいはサンペドロのみ)、衛星通信がつながらないことがあります。この場合、商用Internet回 線を経由して、サンペドロを親にして三鷹につなぐ(あるいはその逆)、という裏技(難度A+)が可能です。
※ COSMOS3の通信についてよく理解してから作業して下さい。結構難しいです。
※ 以下、サンペドロからの作業が多く発生しますので、現地組の協力が必須です。
三鷹->サンペドロをInternet1で直通する回線は現在ありません。なので、醜くsshのポートフォワーディングを取り回し てください。
サンペドロにはInternet1のglobal addressを持ったマシンがありませんので、サンペドロ→三鷹という 方向でsshログインをし、トンネルを張る必要があります。
フォワードするポートは、sshのポートです。たとえば、
asteobs@aste-at3% ssh aste-mt2 -R 30022:aste-at3:22
とすると、aste-mt2のポート30022への接続が、aste-at3のsshポートへフォワーディングされます。aste-at3でなくと も、サンペドロのマシンならばどれでもOKです。
※ これは古い情報です。現在aste-mt2は外部から直接接続できません。天文台の外部接続サーバを一度経由 するような設定にしてください。あるいは、UMassのtacanaやINAOEのtacana2はグローバルマシンですので、 そちらに直接つないでもOKです。
さて、上記でssh tunnelingができたら、このトンネルを通じて接続ができることを確認してください。
COSMOS3は、rootで起動し、上流ホストへ"sshcos3"ユーザでログインします。ですので、root権限で次のコマンドを試してください。
root@aste-mt2% /opt/OpenSSH/bin/ssh -p 30022 -l sshcos3 -v lh_tunnel test ※ssh -p のあとには、フォワードもとのローカルポートを指定してください。この例だと"30022"です。 ※ホスト名の"lh_tunnel"は/etc/hostsに書かれている通り、ただのlocalhostの別名です。known_hostsに配慮して、 わざとこんな名前にしてあります。
設定がすべて正しければ、パスワード認証なしで直にaste-at3にログインできます。
sshcos3@aste-at3側では、通常のシェルではないダミーのシェルが起動しますので、上記ログイン後も制御端末 はとれません。入力コマンド(この場合は"test")の名前を、60秒おきにエコーバックします。
※制御端末が取れてしまう場合には、public keyログインの設定不良が考えられます。下の記述に準じて設定を行ってください。
ログインまでたどり着かない場合、ポートフォワードの設定をひとつづつ確認してください。
パスワードの入力を求められてしまう場合、rsaキーがaste-at3に登録されていません。aste-mt2の/.ssh/id_rsa.pub の内容を、aste-at3の~sshcos3/.ssh/authorized_keysに登録してください。
authorized_keysに登録するときは、以下のオプションを忘れずに!
command="/home/cosmos3/aste/nro/sbin/dmsh",permitopen="aste-at3:9303",permitopen="aste-at3:9402", permitopen="aste-at3:9412",permitopen="aste-at3:9401",permitopen="aste-at3:9103",permitopen="aste-at3:9421", permitopen="localhost:55555",permitopen="localhost:8080",permitopen="localhost:3306",permitopen="aste-2c:22" ssh-rsa AAA(中略) root@aste-mt2 ※5行目の"ssh-rsa"以下はroot@aste-mt2の公開鍵の内容です。 ※~sshcos3/.sshと、~sshcos3/.ssh/authorized_keysのpermissionはそれぞれ700, 600でなくてはいけません。 ※このオプションの意味は、"ログインシェルの代わりにダミーシェルを起動し、これこれのポートのフォワーディングを許可 せよ"ということです。 ※~sshcos3の実体は、/home/sshcos3だったり/var/sshcos3だったりサイトによって違います ※ダミーシェル"dmsh"の絶対パスは、サイトによって気侭に異なります。
無事、sshのポートフォワーディング設定ができたら、COSMOS3側でも設定を変更します。
root@aste-mt2% /home/cosmos3/aste/nro/sbin/cos3_cntl stop root@aste-mt2% su astecntl astecntl@aste-mt2% vi /home/cosmos3/aste/sbin/ssh.proc
(使用前)
l.15 $opt{$SVHOST} = " -L $PORT:$SVHOST:$PORT -l sshcos3 l.35 exec "$SSH", split(' ',$opt{$host}), $host, "$PROG"
(使用後)
l.15 $opt{$SVHOST} = " -L $PORT:$SVHOST:$PORT -l sshcos3 -p 30022" l.35 exec "$SSH", split(' ',$opt{$host}), lh_tunnel, "$PROG"
astecntl@aste-mt2% vi /home/cosmos3/aste/rc3.d/S98ssh_cosmos
(使用前)
l.7 UPPER_SITE=cos3serv l.8 ANT_SITE=infoserv
(使用後)
UPPER_SITE=aste-at3 ANT_SITE=aste-at3
概略の意味するところは、COSMOS3が使用するsshの接続先を、"aste-2cのポート22"から、"localhostのポート30022"に変 更し、かつ、COSMOS3の接続先をaste-2cからaste-at3へ変更、というところです。
(S98ssh_cosmosのUPPER_SITE, ANT_SITEには、sshログインする先のホストではなく、COSMOS3通信をフォワードする 先のホスト名を書きます)
root@aste-mt2% /home/cosmos3/aste/nro/sbin/cos3_cntl start
ここで問題が発生した場合は、"ネットワークは通じるが、COSMOS3通信が切れている場合の対処法"(後述)を参考 にしてください。
この技は、新しくサイトを増設する時や、野辺山から直接サイトにつなぐ(三鷹をスキップする)というときにも使えます。
全裏技中最高難度ですが、しっかりマスターしましょう!
※ 昔は、上記を簡略に行ってくれるスクリプトがあったのですが、最近の設定変更(8/20@三鷹)に伴い無効に・・
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サイトにつなぐようにルーティング設定を変更してください。
※ ASTEサイトへはaste-mt1/2のI2ポートからしか繋げないはずだったのですが、なぜか今は天文台内 からならつなげてしまいます。いつぞやか、近所の漫画喫茶からつないだこともありますが、今は それは無理みたいです。
(使用前)
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がhme1(210.229.104.129)になっている 210.229.96.0 210.229.104.129 UG 0 3998 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がhme0(133.40.220.254)になっている 210.229.96.0 210.229.104.129 UG 0 3998 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スクリプトの最後のほう、
/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)
三鷹-サイト間のCOSMOS3通信がつながっていない場合のほか、UMass/NRO-三鷹 やINAOE-UMass間のCOSMOS3通信がおかしい場合も、この項を見てください。
また、COSMOS3の接続設定を変更した後(三鷹の親をサンペドロに変更、など)、トラブ った場合もこちらを参照。
基本的には、ほぼすべてのトラブルは、
ASTEサイトから順番に(->MTK/SPdA->NRO/UMass->INAOE)COSMOS3再起動 それでだめなら、サイト計算機のリブート
で解決しますが、COSMOS3の接続設定で間違った設定をしている場合などはその 限りではありません。
可能性としては、次の二通りがメインです。
以下、それぞれ解説します。
※以下は、基本的にaste-mt2 -- aste-2c間の接続について書いています。
UMass--MTK、INAOE--UMassも基本的な仕組みは同じですが、UMass-MTK間の場合は計算機の構成が若干違っています。 e) UMass--MTK間の接続確認"もご覧ください。
サイト間の通信状況の確認方法です。以下のいくつかを組み合わせて使用してください。
a,b,c,,,と順番に確認せよ、という意味ではありません。 (もちろんそうしてもよいのですが)
COSMOS3は、ASTEサイトを頂点としたカスケード式の通信をしています。実際に 通信を司っているのは各サイトの情報サーバです。
ASTE(aste-2c) +-MTK(aste-mt2) +- NRO(aste-w) | | | +- UMass(tacana) +- INAOE(tacana2) | +- 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の実体です。
たまに、"COSMOS3っぽいプロセス"といっているのは彼らのことを指しています。
フォワードするポート一つにつき、"ssh.proc"が二つ、"/opt/OpenSSH/bin/ssh"が一つあります。通信には合計6ポート使っているので、 ssh.procが12個動いていれば、上流へのssh接続がつながっているということになります。
経験上、6つのフォワーディングが各々単体でおかしくなる、ということはありません。すべてが○か、すべてが×になっていることが ほとんどです。
たまに、COSMOS3を二重に起動している場合(ssh.procが24個など)がありますので、その場合はlocalの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の設定が元から正しくない場合が考えられます。
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"に転落しているはずです。
これが手っ取り早いかもしれません。
一度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の接続です。)
接続拒否される場合、ポートフォワードが拒否される場合(administravely prohibitedなど)、パスワードを要求 されてしまう場合、ssh deamonや、rsa keyの設定が間違っていると思われます。
また、sshログイン後、制御端末が取れて普通にコマンドが打ててしまう場合も考え物です。 本来ならば、sshcos3アカウントではダミーのシェルが起動される設定になっています。ログイン先で、 ~sshcos3/.ssh/authorized_keyのエントリを確認してください。
以上、すべて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)
です。
上記で得られた情報を組み合わせると、何がおかしいのかの手がかりはつかめるはずです。 以下のヒントにしたがって、適切に処置してください。
ひたすら待ってみてください。遅くとも、10分ほどでつながります。
待てど暮らせど復活しない場合、下流サイトのCOSMOS3を停止してみてください。改善する場合があります。
それでもだめな場合、上流サイトでトラブルが発生している可能性があります。#1.4.3へ進んでください。
力量が問われます(嘘)。ヒントとしては、次の設定を確認してください。
ログイン先の.ssh/aurhorized_keysの設定は正しいですか?
+ ~sshcos3/.ssh, ~sshcos3/.ssh/authorized_keys のpermissionは700, 600 + ~sshcos3/authorized_keysの内容は?
(正しい例)
command="/home/cosmos3/aste/nro/sbin/dmsh",permitopen="aste-2c:9303",permitopen="aste-a2c:9402", permitopen="aste-2c:9412",permitopen="aste-2c:9401",permitopen="aste-2c:9103",permitopen="aste-2c:9421", ssh-rsa {localの/.ssh/id_rsa.pubの中身} ※"/home/cosmos3/aste/nro/sbin/dmsh"がダミーのシェルで、ログイン後はこのプロセスが強制的に立ち上がります。 絶対パス名は、サイトによってまちまちです。(すみません) ※ ~sshcos3は、サイトによって /var/sshcos3だったり/home/sshcos3だったりします。(すみません)。/etc/passwdを見てください。
+ port forwardの許可, RSA認証の許可など、
+ 認証メソッドの順番(PreferredAuthentications; publickeyが一番最初に来ているか?)など
$COSMOS3/aste/rc3.d/S98ssh_cosmosを確認
l.7 UPPER_SITE=cos3serv <-- フォワード先のホスト名 (sshログイン先ではない) l.8 ANT_SITE=infoserv <-- フォワード先のホスト名
※ ここで指定したホスト名は、ログイン先の~sshcos3/.ssh/authorized_keysで許可した フォワード先と同一の名前でなくてはならない。
同じIPアドレスを指していても、違う名前だとダメ、かも。 ※ localhostはだめ。
※ 混乱の元になるので、alias (cos3serv, infoserv)でも指定は本来よくない。hostnameべた書きがよい(aste-2c)など。
$COSMOS3/aste/sbin/ssh.procの確認
l.35 exec "$SSH", split(' ',$opt{$host}), $host, "$PROG"; ~~~~~ <== sshログイン先
※デフォルトでは、~~~~~部は"$host"となっている。 S98ssh_cosmosで指定したフォワード先のホスト名が$hostの値。大抵の場合はそのままでOK。
※ただし、多少凝ったconfigurationにする場合は、当然、sshログイン先とCOSMOS3通信のフォワード先は 別になることがありうる。たとえば、<<1.2 衛星通信が不通/不安定な場合の対処法>>の場合など。
※要するに、ssh.procは次のようなコマンドを呼んでいます(見ればわかるけど)
ssh -lsshcos3 {ssh.procの~~~~~部で指定したホスト} -L {port}:{S98ssh_cosmosの$UPPER_SITE}:{port}
この状態に陥ったときは、pgetはエラー(connection refusedなど)にはならず、すべて"0"を返してくる ことが多いです。antenna consoleの値もすべて0になっています。
ローカルのCOSMOS3をリスタートした後は、あせらずに10分ほど根気良く待ってください。
aste-mt2の場合、NRO, UMassのCOSMOS3を落としておくと直りが早いような気がします。
それでもだめな場合、サイトCOSMOS3がトラブルに陥っている可能性が高いです。
特定のプロセスが暴走している場合、通常の手順(cos3_cntl stop)ではとめられないことがあったような気がします。
プログラムの潜在的なバグである可能性も大いにありますので、時間が許す限り、安易にサイトCOSMOS3のリスタート を行う前に、原因の調査を行うことをお勧めします。
大抵、aste-2cを調べれば十分ですが、症状によっては1c,3c,1sあたりまで疑いの目を向けてください。
代表的な調査ツールは以下。
定番。cpu timeを食いつぶしているプロセスの有無を調べましょう。
ファイルディスクリプタのリークを調べます。たとえばこんなbash scriptでプロセスの開いているfdの数を 調べられます。
root@aste-2c% for dd in /proc/*; do ( cd $dd/fd; echo -n $dd; ls | wc -l ); done
上限値いっぱいまでディスクリプタを開いているプロセスがないかどうか調べます。
pcv(fd数上限256個), scm(同64個)あたりが常習犯です。
定番ですが、ここにエラーが残るときは相当ヤバイことが。。。
経験をつんでくると、上記調査中に悪寒が走ることがあります。 その場合はサイト計算機がハードウェア的な故障を起こしている可能性が高いです。
典型的な症状としては、
などがあります。
これについては別項で解説しています。