主要メッセージの手引き

tftpd: nak: Transport endpoint is already connected

原因

AutoClient (AutoClient 2.1 - Solstice AdminSuite 2.3) を構成後、特に Solaris 2.6 環境では、/dev/console/var/adm/messages の両方またはどちらかからサーバーに次のようなエラーメッセージが表示されることがあります。


tftpd: nak: Transport endpoint is already connected

その後の AutoClient による起動ネットはハングします。次に例を示します。


Boot Device:... 
File and Args...


注 -

このエラーメッセージは解読困難です。また、このように AutoClient の起動の初期には、イベントの記録もほとんどありません。この問題の原因を確かめるには、クライアントのサブネットの別のシステムからのクライアントの snoop の実行が必要です。


対処方法

Solaris 2.6 で in.tftpd に変更が加えられ、send() ではなく sendto() を使用するようになりました。Solaris 2.5.1 環境では、sendto() のかわりに send() を使用するので、Solaris 2.5.1 から Solaris 2.6 環境に in.tftpd をコピーするのも 1 つの方法です。さらに、クライアントの snoop を実行することで、受信しようとして見つからなかったファイルをサーバーから障害追跡する方法もあります。

次に例を示します (オンボード Ethernet インタフェースの使用を想定)。


# snoop autoclient_name
または

# snoop ethernet_address_of_autoclient_name
この例では、TFTP (Trivial File Transfer Protocol) は次のようにエラーメッセージを読み取りました。


81911ED4.SUN4C 
TFTP Error: access violation

このエラーは、/tftpboot ディレクトリに何らかの問題があることを示しています。

AUTOCLIENT の場合: 問題は、起動サーバーの /tftpboot ディレクトリにあります。HOSTID ファイルと HOSTID.ARCH ファイルが、現在のアーキテクチャの正しい inetboot ファイルにリンクされていることを確認してください。次に、sun4m システムの場合の正しいエントリを示します。


81971904 -> inetboot.sun4m.Solaris_2.4 
81971904.SUN4M -> inetboot.sun4m.Solaris_2.4

次のエントリは、sun4m システムでは正しくありません。


C753002F -> inetboot.axil4m.Solaris_2.5.1 
C753002F.AXIL4M -> inetboot.axil4m.Solaris_2.5.1

間違っている場合は、現在のディレクトリで対応するクライアントのエントリを削除し、add_install_client スクリプトまたは Solstice ツールで再度そのクライアントを追加してください。

JUMPSTART クライアントの場合: サーバーからクライアントに対する「Error: access violation」は、add_install_client コマンド行で間違ったカーネルアーキテクチャが指定されたことを表している場合があります。サーバーで、次のコマンドを実行します。


# cd /cdrom/cdrom0/s0         
# ./add_install_client host_name correct_architecture

間違ったアーキテクチャは add_install_client スクリプトによって削除され、インストールサーバーは、クライアントを起動するための正しいアーキテクチャでセットアップされます。add_install_client の使用に問題がある場合は、./rm_install_client および ./add_install_client を正しいアーキテクチャで使用してください。

他はすべて /tftpboot ディレクトリのチェックと同じ手順を使用してください。