본문 바로가기
컴퓨터 & IT (Computer & IT)/Linux

[Linux] tftp (Trivial File Transfer protocol)

by UltraLowTemp-Physics 2020. 7. 6.
728x90

- FTP와 마찬가지로 파일전송을 위한 프로토콜이지만, FTP보다 더 단순한 방식으로 파일을 전송함
  -- UDP 상에서 이루어지는 간단한 파일전송프로토콜
- FTP와 다르게 복잡한 프로토콜을 사용하지 않기 때문에, 구현이 간단함
  -- 복잡한 상호작용이 필요하지 않은 응용에서 많이 사용됨  
- 데이터 전송과정에서 데이터 손실 등 불안정하다는 단점을 가지고 있음
- 임베디드 시스템에서 운영체제 업로드로 주로 사용됨  
- 특징 1) 단순한 파일전송기능만 제공
       2) 인증기능 미제공. 사용자 이름 및 비밀번호 없이 파일전송가능
       3) 프로그램이 간결하고 규모가 작음
       4) 사용 예시: 원격 서버로부터 부트스트랩 이미지 파일을 TFTP로 가져와서 자동부팅을 시작함

 

▶ TFTP 네트워크 부팅에 필요한 파일 준비하기   
    
- 사전준비: TFTP 서버, DHCP서버 그리고 BOOTP 서버를 설정해야 함.
      1) BOOTP: 컴퓨터에게 IP주소 및 네트워크의 어디에서 부팅 이미지를 가져와야 하는지를 알려줌
      2) TFTP: 부팅 이미지를 클라이언트에게 넘겨줄 때 사용
    - TFTP 서버 설치

$sudo apt-get install tftpd-hpa tftp-hpa
// 설치가 제대로 되어있는지 아래 명령어를 입력함 
$sudo service tftpd-hpa status 
//tftp가 설치되어있는지 확인 (설치되어있을 경우 tftp관한 내용이 뜸: udp  0   0  *tftp  *:*)
$netstat -a |grep tftp                   
//tftp의 설정방법은 아래와 같다. 
$sudo cp /etc/default/tftpd-hpa /etc/default/tftpd-hpa.original
$sudo vim /etc/default/tftpd-hpa
     RUN_DAEMON       - “yes”         #Auto start
     OPTIONS=”-l -s /tftpboot”
     TFTP_USERNAME   = “tftp”
     TFTP_DIRECTORY  = “/tftpboot”    # /tftpboot : home directory
     TFTP_OPTIONS    = “--secure”
     TFTP_ADDRESS    = “0.0.0.0:69”  
$mkdir /tftpboot
$chmod 777 /tftpboot 
$sudo /etc/init.d/tftpd-hpa restart

//ubutu 14.04까지는 tftp 부팅 후 자동 실행에 관해서 문제가 있었으며, 아래와 같은 방법을 통해 해결함 
$sudo vim /etc/rc.local 
sleep 30
service tftpd-hpa restart // 부팅 30 후, tftp 를 강제시작

 - tftp 서버 상태확인: $systemctl status tftpd-hpa.service

 

 

Reference:

[1] https://ko.wikipedia.org/wiki/TFTP
[2]
http://www.ktword.co.kr/abbr_view.php?m_temp1=1835
[3]
https://www.debian.org/releases/wheezy/i386/ch04s05.html.ko
[4]
https://blankspace-dev.tistory.com/162
[5] https://logon.tistory.com/579

 

728x90

댓글