TFTPサーバーからファイルをコピーする

TFTPサーバーからファイルをコピーする

AFAIU、tftpサーバーのpxe起動に使用されると、クライアントはサーバーに要求を送信し、サーバーはいくつかのファイル(initrd、kernel、configなど)を再送信します。サーバーは、クライアントのIPアドレスに基づいてクライアントに送信するファイルを決定できます。クライアントはこれらのファイルのURLを知りません。

私の質問はこれです:

tftpサーバーをテストしたいです。コマンドや(簡単な)スクリプトを実行してサーバーに接続しtftp、ファイルを受け取り、そのファイルをディスクに保存したいと思います。

つまり、私がやりたいことは次のとおりです。

  • サーバー側に違いはありません。サーバーは、クライアントがPXEを介してブートしたいと考え、ファイルをクライアントに送信します。

  • クライアント側:クライアントは実際に起動したくありません。ただファイルをディスクにコピー(保存)しようとします。

これを行う最も簡単な方法は何ですか?

答え1

あなたの質問に対する@Patrickのコメントは絶対に正確です。 PXEを起動するために必要なすべてのクライアントコンピュータは、DHCP要求をブロードキャストすることです。 DHCPサーバー(通常はPXEブートサーバー上)はクライアントデバイスのMACアドレスを確認し、それを使用して

  • クライアントにIPアドレスを提供する
  • クライアントにPXEサーバーからインポートする必要があるファイルを知らせます。

この時点で、クライアントはサーバーのアドレスとサーバーから何を取得できるかを知っています。残念ながら、DHCPサーバーは1つしかない可能性があり、PXEクライアント用の特別な構成があり、TFTPサーバーを実行する必要があるなど、複雑な問題がたくさんあります。

非常に便利なステップバイステップガイドがあります。https://wiki.debian.org/PXEBootInstall。ディストリビューションを指定していませんが、ほとんどのPXEシステムは少なくともこのガイドラインに準拠しています。

あなたの問題は、PXEサーバーのアドレスを知りたくないことを理解しています。ただし、これを行う唯一の方法は、(自分のクライアントを作成せずに)PXEクライアントDHCPリクエスタ/プロセッサを使用することです。この部分をあきらめたいなら、指導に必要な多くの能力をあきらめることです。

実際には、テスト目的で多くのPXEプロトコルを実装するシステムブートを望まないことを知っています。利用可能な一時マシンがない場合は、なぜPXEをテストするのか疑問に思います。

答え2

実際のクライアントを使用するのはどうですかtftp

思い浮かぶのは次の2つです。

答え3

私が最もよく知っている方法は次のとおりです。靴修理工TFTPを設定するので、これが関連性があるかどうかはわかりませんが、とにかくこの情報を提供します。 Cobbler はpxelinux.0以下を使用してブートローダを設定します。@Patrickがコメントに説明しました。また@msw。ただし、pxelinux.cfg/サーバーに接続する各マシンのMACアドレスを含む対応するディレクトリも設定されます。

これらのファイルには、pxelinux.cfg次のファイル情報が含まれています。

$ more 01-54-52-00-ff-ff-ff
default linux
prompt 0
timeout 1
label linux
        kernel /images/Centos56-x86_64/vmlinuz
        ipappend 2
        append initrd=/images/Centos56-x86_64/initrd.img ksdevice=bootif lang=  console=ttyS0,115200 text serial kssendmac  ks=http://192.168.1.207/cblr/svc/op/ks/system/kvmcobblertest

仮想マシンが起動する実際のLinuxカーネルは、TFTPアクセス可能ディレクトリに含まれています/images/Centos56-x86_64/vmlinuz。サーバーの背面にあるTFTPディレクトリ構造全体は次のとおりです。

$ ls -l /tftpboot/
total 348
drwxr-xr-x 2 root root   4096 Jun 22  2011 etc
drwxr-xr-x 2 root root   4096 Jul  9  2012 grub
drwxr-xr-x 6 root root   4096 Jul  9  2012 images
drwxr-xr-x 2 root root   4096 Jun 30  2011 images2
-rw-r--r-- 1 root root  20020 Jul  9  2012 memdisk
-rw-r--r-- 1 root root  39188 Jul  9  2012 menu.c32
drwxr-xr-x 2 root root   4096 Jun 22  2011 ppc
-rw-r--r-- 1 root root  14716 Jul  9  2012 pxelinux.0
drwxr-xr-x 2 root root   4096 Jul  9  2012 pxelinux.cfg
drwxr-xr-x 2 root root   4096 Jul  9  2012 s390x
-rw-r--r-- 1 root root 198192 Jul  9  2012 yaboot

他の人が説明したように、このTFTPサーバーに対して開始されたサーバーが最初にアクセスできる唯一のものは、特定のpxelinux.0サーバーのMACアドレスに対応する構成ファイルです。

写真カタログ

気になる方は次のとおりです。

$ tree /tftpboot/images
/tftpboot/images
|-- Centos56-x86_64
|   |-- initrd.img
|   `-- vmlinuz
|-- Centos56-xen-x86_64
|   |-- initrd.img
|   `-- vmlinuz
`-- Centos60-x86_64
    |-- initrd.img
    `-- vmlinuz

3 directories, 6 files

関連情報