目录

简介

先决条件

要求

使用的组件

规则

适用于 AIX 的过程

/etc/inetd.conf - smit

验证本地 TFTP

验证文件许可/示例

适用于 HP-UX 的过程

/etc/inetd.conf - SAM

验证本地 TFTP

验证文件许可/示例

适用于 Solaris 的过程

/etc/inetd.conf

验证本地 TFTP

验证文件许可/示例

truss

相关信息

简介

简单文件传输协议 (TFTP) 用于将文件传输至网络设备或从网络设备输出文件。

先决条件

要求

本文的读者应该是能访问UNIX根帐户和系统管理接口工具(SMIT)或系统管理器(SAM)的有经验的UNIX用户。

使用的组件

本文档中的信息基于以下软件和硬件版本：

- IBM AIX 4.2 或 IBM AIX 4.3

- HP-UX 10.20 或 HP-UX 11.0

- Sun Solaris 2.6 或 Solaris 2.8

本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始（默认）配置。如果您使用的是真实网络，请确保您已经了解所有命令的潜在影响。

规则

有关文件规则的更多信息请参见“ Cisco技术提示规则”。

适用于 AIX 的过程

/etc/inetd.conf - smit

要从 SMIT 访问菜单访问 TFTP 服务，请遵循以下路径：

您可以从此点操作各种 inetd 服务。有关 SMIT 的更多信息，请参阅 IBM 技术文档：AIX 4.3 。

当您发出 loadrev 命令或 getfwrev 命令时，WAN 交换机软件会要求文件名中单个以字母显示的交换机名称采用大写形式，且驻留在 /usr/users/svplus/images/ipxbpx 中。如果要使用TFTP安全模式，请读取TFTP 守护程序(tftpd)的人工条目，并且注意维护/etc/tftpaccess.ctl。

验证本地 TFTP

使用此方法通过TFTP验证对localhost的TFTP配置：

cwm001% cd /tmp

cwm001% tftp localhost

tftp> bin

tftp> get /usr/users/svplus/images/ipxbpx/9231G.img

Received 784 bytes in 0.3 seconds

tftp> quit

cwm001%

cwm001% ls -al 9231G.img

-rw-r--r--   1 svplus   svplus       784 Feb 5 10:50 9231G.img

cwm001% diff /usr/users/svplus/images/ipxbpx/9231G.img 9231G.img

cwm001%

如果上面的方法不能发挥作用，请提供诊断消息进行识别，然后解决问题。

验证文件许可/示例

TFTP 以 UNIX 的 nobody 用户身份运行。文件对任何人都必须是可读的，并且路径中的所有目录必须是可搜索和可读的。

cwm001% ls -al | more

total 4144

drwxr-xr-x   2 svplus   svplus     1902 Feb  6 15:44 .

drwxrwxrwt  10 svplus   svplus     2718 Feb  6 15:44 ..

-rw-r--r--   1 svplus   svplus     65536 Nov 29  1999 9230B.000

-rw-r--r--   1 svplus   svplus     65536 Nov 29  1999 9230B.001

-rw-r--r--   1 svplus   svplus     65536 Nov 29  1999 9230B.002

-rw-r--r--   1 svplus   svplus     65536 Nov 29  1999 9230B.003

-rw-r--r--   1 svplus   svplus     65536 Nov 29  1999 9230B.004

-rw-r--r--   1 svplus   svplus     65536 Nov 29  1999 9230B.005

-rw-r--r--   1 svplus   svplus     65536 Nov 29  1999 9230B.006

-rw-r--r--   1 svplus   svplus     65536 Nov 29  1999 9230B.007

-rw-r--r--   1 svplus   svplus     65536 Nov 29  1999 9230B.008

-rw-r--r--   1 svplus   svplus     65536 Nov 29  1999 9230B.009

-rw-r--r--   1 svplus   svplus     65536 Nov 29  1999 9230B.010

-rw-r--r--   1 svplus   svplus     65536 Nov 29  1999 9230B.011

-rw-r--r--   1 svplus   svplus     65536 Nov 29  1999 9230B.012

-rw-r--r--   1 svplus   svplus     65536 Nov 29  1999 9230B.013

-rw-r--r--   1 svplus   svplus     65536 Nov 29  1999 9230B.014

-rw-r--r--   1 svplus   svplus     65536 Nov 29  1999 9230B.015

-rw-r--r--   1 svplus   svplus     65536 Nov 29  1999 9230B.016

-rw-r--r--   1 svplus   svplus     65536 Nov 29  1999 9230B.017

-rw-r--r--   1 svplus   svplus     65536 Nov 29  1999 9230B.018

-rw-r--r--   1 svplus   svplus     65536 Nov 29  1999 9230B.019

-rw-r--r--   1 svplus   svplus     65536 Nov 29  1999 9230B.020

-rw-r--r--   1 svplus   svplus     65536 Nov 29  1999 9230B.021

-rw-r--r--   1 svplus   svplus     65536 Nov 29  1999 9230B.022

-rw-r--r--   1 svplus   svplus     65536 Nov 29  1999 9230B.023

-rw-r--r--   1 svplus   svplus     15148 Nov 29  1999 9230B.024

-rw-r--r--   1 svplus   svplus       784 Nov 29  1999 9230B.img

-rw-r--r--   1 svplus   svplus    502944 Mar 29  2000 rel-9230.pdf

cwm001%

适用于 HP-UX 的过程

/etc/inetd.conf - SAM

从 SAM 访问“网络和通信”区域中的“网络服务”：

TFTP 守护程序 (tftpd) 的默认设置显示如上。当您启用 TFTP 服务时，系统会为 TFTP 用户创建密码条目。请参阅有关tftp(1)和tftpd(1M)的HP-UX联机人工条目(使用man xxxx命令)，了解更多详细资料。

当您发出 loadrev 命令或 getfwrev 命令时，WAN 交换机软件会要求文件名中单个以字母显示的交换机名称采用大写形式，且驻留在 /usr/users/svplus/images/ipxbpx 中。为了使用TFTP的安全模式，您的路径名称必须为/tftpboot/usr/users/svplus/images/ipxbpx，并且它不可以是一个符号链接。要实现这个，创建文件层并将所有交换软件和固件放置在/tftpboot之下。可以存在来源为 /usr/users/svplus/images/ipxbpx /tftpboot/usr/users/svplus/images/ipxbpx 的符号链接。

如果文件名中的交换机名称为小写字符或该文件不存在于 CWM 工作站中，则交换机软件可能会误报其无法与 Cisco WAN Manager (CWM) 工作站进行通信。

对 /etc/inetd.conf 进行修改后，安全模式 tftp 如下所示：

# Before uncommenting the "tftp" entry below, please make sure

# that you have a "tftp" user in /etc/passwd. If you don't

# have one, please consult the tftpd(1M) manual entry for

# information about setting up this service.

tftp        dgram udp wait   root /usr/lbin/tftpd   tftpd /tftpboot

INETD进程需要发送HUP信号来强制它重新读取/etc/inetd.conf 。有关更多详细信息，请参阅 ftp(1) 和 tftpd(1M) 的 HP-UX 在线手册。

验证本地 TFTP

使用此方法通过TFTP验证对localhost的TFTP配置：

cwm001% cd /tmp

cwm001% tftp localhost

tftp> bin

tftp> get /usr/users/svplus/images/ipxbpx/9231G.img

Received 784 bytes in 0.3 seconds

tftp> quit

cwm001%

cwm001% ls -al 9231G.img

-rw-r--r--   1 svplus   svplus       784 Feb 5 10:50 9231G.img

cwm001% diff /usr/users/svplus/images/ipxbpx/9231G.img 9231G.img

cwm001%

如果上面的方法不能发挥作用，请提供诊断消息进行识别，然后解决问题。

验证文件许可/示例

TFTP 以 UNIX 的 nobody 用户身份运行。文件对任何人都必须是可读的，并且路径中的所有目录必须是可搜索和可读的。

cwm001% ls -al | more

total 4144

drwxr-xr-x   2 svplus   svplus     1902 Feb  6 15:44 .

drwxrwxrwt  10 svplus   svplus     2718 Feb  6 15:44 ..

-rw-r--r--   1 svplus   svplus     65536 Nov 29  1999 9230B.000

-rw-r--r--   1 svplus   svplus     65536 Nov 29  1999 9230B.001

-rw-r--r--   1 svplus   svplus     65536 Nov 29  1999 9230B.002

-rw-r--r--   1 svplus   svplus     65536 Nov 29  1999 9230B.003

-rw-r--r--   1 svplus   svplus     65536 Nov 29  1999 9230B.004

-rw-r--r--   1 svplus   svplus     65536 Nov 29  1999 9230B.005

-rw-r--r--   1 svplus   svplus     65536 Nov 29  1999 9230B.006

-rw-r--r--   1 svplus   svplus     65536 Nov 29  1999 9230B.007

-rw-r--r--   1 svplus   svplus     65536 Nov 29  1999 9230B.008

-rw-r--r--   1 svplus   svplus     65536 Nov 29  1999 9230B.009

-rw-r--r--   1 svplus   svplus     65536 Nov 29  1999 9230B.010

-rw-r--r--   1 svplus   svplus     65536 Nov 29  1999 9230B.011

-rw-r--r--   1 svplus   svplus     65536 Nov 29  1999 9230B.012

-rw-r--r--   1 svplus   svplus     65536 Nov 29  1999 9230B.013

-rw-r--r--   1 svplus   svplus     65536 Nov 29  1999 9230B.014

-rw-r--r--   1 svplus   svplus     65536 Nov 29  1999 9230B.015

-rw-r--r--   1 svplus   svplus     65536 Nov 29  1999 9230B.016

-rw-r--r--   1 svplus   svplus     65536 Nov 29  1999 9230B.017

-rw-r--r--   1 svplus   svplus     65536 Nov 29  1999 9230B.018

-rw-r--r--   1 svplus   svplus     65536 Nov 29  1999 9230B.019

-rw-r--r--   1 svplus   svplus     65536 Nov 29  1999 9230B.020

-rw-r--r--   1 svplus   svplus     65536 Nov 29  1999 9230B.021

-rw-r--r--   1 svplus   svplus     65536 Nov 29  1999 9230B.022

-rw-r--r--   1 svplus   svplus     65536 Nov 29  1999 9230B.023

-rw-r--r--   1 svplus   svplus     15148 Nov 29  1999 9230B.024

-rw-r--r--   1 svplus   svplus       784 Nov 29  1999 9230B.img

-rw-r--r--   1 svplus   svplus    502944 Mar 29  2000 rel-9230.pdf

cwm001%

适用于 Solaris 的过程

/etc/inetd.conf

来自 /etc/inetd.conf 的 TFTP 守护程序 (tftpd) 的默认设置如下所示：

#

# Tftp service is provided primarily for booting. Most sites run this

# only on machines acting as "boot servers."

#

tftp    dgram   udp     wait    root    /usr/sbin/in.tftpd      in.tftpd

#

当您发出 loadrev 命令或 getfwrev 命令时，WAN 交换机软件会要求文件名中单个以字母显示的交换机名称采用大写形式，且驻留在 /usr/users/svplus/images/ipxbpx 中。为了使用TFTP的安全模式，您的路径名称必须为/tftpboot/usr/users/svplus/images/ipxbpx，并且它不可以是一个符号链接。要实现这个，创建文件层并将所有交换软件和固件放置在/tftpboot之下。可以存在来源为 /usr/users/svplus/images/ipxbpx /tftpboot/usr/users/svplus/images/ipxbpx 的符号链接。

如果文件名在指定交换机时提供小写字母或者CWM工作站没有此文件，那么交换软件可能错误地通告它不能与CWM工作站建立联络。

对 /etc/inetd.conf 进行修改后，安全模式 tftp 如下所示。

#

# Tftp service is provided primarily for booting. Most sites run this

# only on machines acting as "boot servers."

#

tftp    dgram   udp     wait    root    /usr/sbin/in.tftpd      in.tftpd -s /tftpboot

#

INETD进程需要发送HUP信号来强制它重新读取/etc/inetd.conf 。

验证本地 TFTP

使用此方法通过TFTP验证对localhost的TFTP配置：

cwm001% cd /tmp

cwm001% tftp localhost

tftp> bin

tftp> get /usr/users/svplus/images/ipxbpx/9231G.img

Received 784 bytes in 0.3 seconds

tftp> quit

cwm001%

cwm001% ls -al 9231G.img

-rw-r--r--   1 svplus   svplus       784 Feb 5 10:50 9231G.img

cwm001% diff /usr/users/svplus/images/ipxbpx/9231G.img 9231G.img

cwm001%

如果上面的方法不能发挥作用，请提供诊断消息进行识别，然后解决问题。

验证文件许可/示例

TFTP 以 UNIX 的 nobody 用户身份运行。文件对任何人都必须是可读的，并且路径中的所有目录必须是可搜索和可读的。

cwm001% ls -al | more

total 4144

drwxr-xr-x   2 svplus   svplus     1902 Feb  6 15:44 .

drwxrwxrwt  10 svplus   svplus     2718 Feb  6 15:44 ..

-rw-r--r--   1 svplus   svplus     65536 Nov 29  1999 9230B.000

-rw-r--r--   1 svplus   svplus     65536 Nov 29  1999 9230B.001

-rw-r--r--   1 svplus   svplus     65536 Nov 29  1999 9230B.002

-rw-r--r--   1 svplus   svplus     65536 Nov 29  1999 9230B.003

-rw-r--r--   1 svplus   svplus     65536 Nov 29  1999 9230B.004

-rw-r--r--   1 svplus   svplus     65536 Nov 29  1999 9230B.005

-rw-r--r--   1 svplus   svplus     65536 Nov 29  1999 9230B.006

-rw-r--r--   1 svplus   svplus     65536 Nov 29  1999 9230B.007

-rw-r--r--   1 svplus   svplus     65536 Nov 29  1999 9230B.008

-rw-r--r--   1 svplus   svplus     65536 Nov 29  1999 9230B.009

-rw-r--r--   1 svplus   svplus     65536 Nov 29  1999 9230B.010

-rw-r--r--   1 svplus   svplus     65536 Nov 29  1999 9230B.011

-rw-r--r--   1 svplus   svplus     65536 Nov 29  1999 9230B.012

-rw-r--r--   1 svplus   svplus     65536 Nov 29  1999 9230B.013

-rw-r--r--   1 svplus   svplus     65536 Nov 29  1999 9230B.014

-rw-r--r--   1 svplus   svplus     65536 Nov 29  1999 9230B.015

-rw-r--r--   1 svplus   svplus     65536 Nov 29  1999 9230B.016

-rw-r--r--   1 svplus   svplus     65536 Nov 29  1999 9230B.017

-rw-r--r--   1 svplus   svplus     65536 Nov 29  1999 9230B.018

-rw-r--r--   1 svplus   svplus     65536 Nov 29  1999 9230B.019

-rw-r--r--   1 svplus   svplus     65536 Nov 29  1999 9230B.020

-rw-r--r--   1 svplus   svplus     65536 Nov 29  1999 9230B.021

-rw-r--r--   1 svplus   svplus     65536 Nov 29  1999 9230B.022

-rw-r--r--   1 svplus   svplus     65536 Nov 29  1999 9230B.023

-rw-r--r--   1 svplus   svplus     15148 Nov 29  1999 9230B.024

-rw-r--r--   1 svplus   svplus       784 Nov 29  1999 9230B.img

-rw-r--r--   1 svplus   svplus    502944 Mar 29  2000 rel-9230.pdf

cwm001%

truss

调用 tftp 守护程序时，系统会从 inetd 执行调用。在确定正在寻找哪个文件后，根tftpd程序调用一个子tftpd程序，以UNIX用户nobody的身份运行。针对这些进程运行 truss 命令会提供有关当前状况的详细信息。在下面的示例中，根tftpd程序被捆绑，说明它正在尝试打开不存在的文件，/usr/users/svplus/images/ipxbpx/9235B.img。

truss -fae -o /tmp/tftpd.truss -p 10748

注意：在本示例中，根tftpd进程的进程ID为10748。

# cat /tmp/tftpd.truss

10748:  psargs: in.tftpd

10748:  poll(0xEFFFDD88, 1, 60000)       (sleeping...)

10748:  poll(0xEFFFDD88, 1, 60000)                      = 1

10748:  recvfrom(0, "\001 / u s r / u s e r s".., 516, 0, 0x000245C4, 0x00023BF0) = 50

10748:  alarm(0)                                        = 0

10748:  so_socket(2, 1, 0, "", 1)                       = 3

10748:  bind(3, 0x0002362C, 16)                         = 0

10748:  fork()                                          = 10754

10754:  fork()          (returning as child ...)        = 10748

10754:  setegid(60001)                                  = 0

10754:  seteuid(60001)                                  = 0

10754:  stat("/usr/users/svplus/images/ipxbpx/9235B.img", 0xEFFFFC88) Err#2 ENOENT

10754:  setegid(0)                                      = 0

10754:  seteuid(0)                                      = 0

10754:  time()                                          = 982191999

10754:  write(4, " :8B0F7F\0\0\001\0020403".., 24)      = 24

10754:  llseek(0, 0, SEEK_CUR)                          Err#29 ESPIPE

10754:  _exit(0)

10748:  close(3)                                        = 0

10748:  poll(0xEFFFDD88, 1, 60000)      (sleeping...)

10748:  poll(0xEFFFDD88, 1, 60000)                      = 0

10748:  kill(10749, SIGKILL)                            = 0

10748:  llseek(0, 0, SEEK_CUR)                          Err#29 ESPIPE

10748:  _exit(0)

#

相关信息

- 在PC上使用TFTP下载广域网交换机软件和固件

- IP 应用服务技术说明

- 技术支持 - Cisco Systems