シスコサポートコミュニティ
キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

大量の TFTP 接続により TFTP Server がスタックする

2009年12月14日(初版)

TAC SR Collection
主な問題

大量の TFTP 接続が同時に発生した場合、Solaris 上で稼動している CNR(Cisco Network Registrar)の  TFTP Server プロセスがスタックする場合があります。例えば、配下の CMTS の再起動にともないモデムが一斉に TFTP Server  に接続する場合などです。

原因としては、TFTP Server プロセスが Solaris 上で設定されている File Descriptor  の最大値に到達してしまったことが考えられます。なお、File Descriptor は Solaris の設定値ですので CNR  が原因という訳ではありません。

TFTP Server のログには以下のようなエラーメッセージが記録されます。

エラーログ
Error Server 0 10041 Interface <IP address>: af_socket() failed with 80010018  

解決策

スタックした状態から復旧するには、CNR を再起動する必要があります。

/etc/init.d/nwreglocal stop
/etc/init.d/nwreglocal start

また、TFTP Server プロセスの File Descriptor の最大値を増やすことでこの問題を防ぐことができます。

"plimit <PID>" コマンド出力の nofiles(descriptors) で現在の設定値を確認することができます。

出力例
bash-3.00# plimit 16492
16492:  /opt/nwreg2/local/bin/tftp -A nlogs=4 -A logsize=1000000 -Z 3 -C serve
   resource              current         maximum
  time(seconds)         unlimited       unlimited
  file(blocks)          unlimited       unlimited
  data(kbytes)          unlimited       unlimited
  stack(kbytes)         8192            unlimited
  coredump(blocks)      unlimited       unlimited
  nofiles(descriptors)  1024 <<<<<      65536
  vmemory(kbytes)       unlimited       unlimited

"plimit -n <新しい File Descriptor 値>" でデフォルト設定を変更できます。

なお、File Descriptor の設定はあくまで Solaris 自体の設定値であり CNR の設定ではありませんので、変更の際にはあらかじめ動作を確認のうえ実施してください。また、上記の解決策はあくまで一例です。

備考

  • タグ付けされた記事をさらに検索:
690
閲覧回数
0
いいね!
0
コメント