萬盛學電腦網

 萬盛學電腦網 >> Linux教程 >> 為網絡啟動和軟硬件升級建立TFTP服務器

為網絡啟動和軟硬件升級建立TFTP服務器

class="21280">

【原創翻譯,版權所有,合作網站如欲轉載,請注明原創翻譯作者“劉琳倩”,及文章出處(賽迪網)。謝絕非合作網站轉載,違者,賽迪網將保留追究其法律責任的權利!】 TFTP(Trivial File Transfer Protocol,簡單文件傳輸協議)是TCP/IP協議族中的一個用來在客戶機與服務器之間進行簡單文件傳輸的協議,提供不復雜、開銷不大的文件傳輸服務。雖然為網絡啟動和軟硬件升級這種情況很少發生,但是,當你需要設置並使用一個Trivial FTP (or TFTP)服務器時掌握這項技術將會變得很重要。TFTP不像平常的FTP,它沒有認證,沒有密碼,有很多小的特點,所以不是FTP的傳輸。如果TFTP如此難用,為什麼使用它呢?一些驅動程序,特別是路由器和某些高端交換機會使用TFTP來進行升級軟硬件,再就是TFTP在網絡啟動中的優勢也會變得特別明顯。當TFTP不像FTP一樣廣泛使用時,它仍然是非常有用的。通過DHCP分配一個TFTP服務器的IP地址的能力,和其他過分簡單的特點讓它非常容易使用,僅僅通過末端設備指向TFTP服務器的IP地址,使得軟硬件升級和網絡啟動變得簡單。 大多數Linux分布都有一個TFTP服務器進行可用包挑選,代表性的如tftp-hpa包,分布在ftp://ftp.kernel.org/pub/software/network/tftp/。如果從你的產品提供商那裡獲取的安裝包是可用的,安裝就相當簡單了。如果不是,下載並且編譯安裝包;有很少需要你完成的非常規的“configure”和“make; make install.”的配置。 有了tftp-hpa,一些對這個不可靠協議進行安全性增長的措施被采用。你可以告訴後台程序,in.tftpd服務進程,改變程式目錄將被用來服務文件夾也並用來取消特權。利用這點,創建一個特殊的用戶名tftpd,它有一個TFTP基於目錄的主目錄,或許/var/lib/tftpboot。 然後訪問in.tftpd 這樣: /usr/sbin/in.tftpd -u tftpd -s /var/lib/tftpboot 如果你安裝通過一個RPM或者DEB包,將很有可能有一個可用到的初始腳本。代表性的來說,in.tftpd 被稱作通過一個像inetd或xinetd的超級服務器。舉個實例,一個inetd的構造: tftp dgram udp wait root /usr/sbin/in.tftpd in.tftpd -u tftpd -s /var/lib/tftpboot xinetd示例:

service tftp
{
    socket_type = dgram
    protocol    = udp
    wait        = yes
    user        = root
    server      = /usr/sbin/in.tftpd
    server_args = -u tftpd -s /var/lib/tftpboot
}
tftp-hpa包也將伴隨一個tftp客戶機程序,能被用來測試客戶機程序。 為了測試一些正常工作,啟動(或者重新啟動)xinetd 或者 inetd,創造一個測試文件夾,並用tfpt客戶機程序去獲得這個文件:
# dd if=/dev/zero of=/var/lib/tftpboot/foo bs=1024 count=100
100+0 records in
100+0 records out
102400 bytes (102 kB) copied, 0.00041193 s, 249 MB/s
# tftp -v localhost -c get foo
Connected to localhost (127.0.0.1), port 69
getting from localhost:foo to foo [netascii]
Received 102400 bytes in 0.1 seconds [11872463 bit/s]
# ls -l foo
-rw-r--r-- 1 root root 102400 2008-01-06 17:05 foo
現在你可以用TFTP服務器為PXE booting提供啟動映像或者為路由器或其它設備提供軟硬件映像,這樣通過TFTP進行軟硬件升級。

copyright © 萬盛學電腦網 all rights reserved