歡迎您光臨本站 註冊首頁

為網路啟動和軟硬體升級建立TFTP伺服器

←手機掃碼閱讀     火星人 @ 2014-03-12 , reply:0
  

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進行軟硬體升級。

(責任編輯:A6)



[火星人 ] 為網路啟動和軟硬體升級建立TFTP伺服器已經有459次圍觀

http://coctec.com/docs/net/show-post-68273.html