WindyHana's Solanara: TFTP

목차

TFTP: Trivial File Transfer Protocol

위의 특징때문에 보통 임베디드 시스템에서 네트워크 부팅용(PXE부팅)으로 많이 사용된다. TFTP서버나 TFTP클라이언트는 적은 용량으로 개발 가능하기 때문이다. (바꿔말하면 만들기 쉽다. 용량이 작고 간단하다는 건 프로그래머의 개발기간이 짧고 적은양의 플래시롬을 차지하며, 느린 CPU로도 비교적 빠르게 작동한다는 뜻이다) Trivial이 '하찮은'이라는 뜻이지만, 하찮기 때문에 쓰이는 곳이 많다.

in.tftpd: Internet TFTP Daemon

root@wl ~ # mkdir /tftpboot 1)
root@wl ~ # chown nobody:nobody /tftpboot
root@wl ~ # vi /etc/inetd.conf 2)
tftp   dgram   udp6    wait    root    /usr/sbin/in.tftpd      in.tftpd -s /tftpboot
root@wl ~ # /usr/sbin/inetconv 3)
...
tftp -> /var/svc/manifest/network/tftp-udp6.xml
tftp-udp6.xml을(를) 가져오는 중 ...완료
root@wl ~ # svcs svc:/network/tftp/udp6:default 4)
...
online         10:04:56 svc:/network/tftp/udp6:default
root@wl ~ #
1) tftp의 루트 디렉토리이다. tftp데몬은 nobody계정으로 실행되기 때문에 nobody로 접근 가능하도록 권한을 줘야 한다.
2) inetd.conf 의 주석을 해제한다.
3) inetd.conf 의 내용을 변환한다.
4) inetconv를 실행시키면 svc:/network/tftp/udp6:default 가 만들어지고 활성화 된다. 이후에는 svcadm 을 이용해서 관리한다.

tftp: TFTP Client

TFTP 서버를 띄웠으면 TFTP 클라이언트를 이용해 접속해보자.
root@wl ~ # mkfile 1m tftptestupload
root@wl ~ # mkfile 1m /tftpboot/tftptest
root@wl ~ # chmod 666 /tftpboot/tftptest
root@wl ~ # chown nobody:nobody /tftpboot/tftptest
root@wl ~ # touch /tftpboot/tftptestupload 1)
root@wl ~ # chmod 666 /tftpboot/tftptestupload
root@wl ~ # chown nobody:nobody /tftpboot/tftptestupload
root@wl ~ # tftp localhost
tftp> bi
tftp> get tftptest
Received 1048576 bytes in 0.1 seconds
tftp> put tftptestupload 1)
Sent 1048576 bytes in 0.1 seconds
tftp> quit
root@wl ~ # 
1) TFTP에서 업로드는 파일을 덮어쓸뿐이다. 따라서 덮어쓸 파일이 없으면 업로드가 되지 않는다.
Twitter RSS IconTexto 올바른 XHTML 1.0 Transitional 입니다 올바른 CSS입니다!