본문 바로가기
클라우드&서버/LINUX

TFTP, PxE

by JDLee 2021. 12. 31.

#TFPT : Trivial FTP, 간단한(용량이 적은) 파일을 주고 받기 위한 프로토콜

 

통신방식 UDP
포트번호 69
Trivial 의미  하찮은, 보잘것 없는
tftp root 경로  /var/lib/tftpboot/

 

yum -y install tftp-server tftp-server 설치
vi /etc/xinetd.d/tftp tftp 설정 파일

xinetd.d : 네트워크 설정을 관리하는 데몬

 

- vi /etc/xinetd.d/tftp 설정 변경

 

 

#PxE 서버

-다수의 Baremetal 서버에 운영체제를 설치하기 위해서 사용하는 서버

 

#PxE 서버에 필요한 프로토콜

1.DHCP : 운영체제가 설치되어 IP 설정할 없는 서버에 IP 부여한다.

2.tftp : 운영체제를 설치하기 위한 절차 정보가 담긴 파일을 전송하기 위한 프로토콜

3.FTP OR HTTP : 운영체제 이미지 파일을 전송하기 위한 프로토콜

 

 

#Vmware에서 PxE 서버 만들기(IP: 211.183.3.60 / 24)

0.방화벽 중단 selinux disalbed 변경하기

systemctl stop firewalld 방화벽 정지
systemctl disable firewalld 방화벽이 시스템 재시작시 실행되지 않게 설정

 

vi /etc/selinux/config 파일 내에서 SELINUX=disabled 변경

1.Pxe서버에 등록할 ISO 파일 연결하기

 

DVD-rom connected 변경한다.

dvd-rom /media폴더로 마운트한다.(cd-rom 파일 실행을 위해)

mount 명령어 : mount 마운트할 폴더 마운트할경로

 

명령어

mount /dev/cdrom /media /dev/cdrom /media 마운트 한다.

 

-> 마운트 성공 다음과 같이 메시지가 출력된다.

 

!참고 : 리눅스 IOS 저장된 /dev/cdrom 파일들

/dev : device 정보가 저장된 폴더

 

2.PxE서버에 필요한 패키지를 설치한다.

yum -y install syslinux tftp-server dhcp vsftpd  syslinux, tftp-server, dhcp, vsftpd 패키지를 한번에 설치

 

 

dhcpd baremetal 상태에서 통신을 하기위해 ip 할당해주기 위한 패키지
tftp-server 부트로더 파일을 tftp 전송하기 위한 패키지
vsftp OS IOS 전송하기 위한 패키지
syslinux 부트로더 파일이 있는 패키지

부트로더 : pxe 부팅에 필요한 파일(부팅에 필요한 절차)

 

3.ftp 서버 설정

 

cp -r /media/* /var/ftp/pub media 마운트된 OS IOS파일과 하위 디렉토리 모두를 /var/ftp/pub폴더로 복사 한다.

/var/ftp/pub : ftp 설치 기본적으로 존재하는 pub 폴더(다른 폴더를 사용해도 무방한다.)

 

systemctl start vsftpd ftp 서버를 가동한다.

 

4.tftp 서버 설정

vi /etc/xinetd.d/tftp tftp 서버 설정을 disable 항목을  no 변경한다.
systemctl restart tftp 변경한 설정을 적용하기위해 tftp 재시작 한다.

 

5.tftp루트 폴더로 OS 설치 필요한 파일 복사하기

cp /var/ftp/pub/images/pxeboot/vmlinuz /var/lib/tftpboot/ /pub폴더에 저장된 OS 이미지에서 압죽된 커널 파일을 tftp 루트 경로로 복사
cp /var/ftp/pub/images/pxeboot/initrd.img /var/lib/tftpboot/ /pub폴더에 저장된 램디스크 생성하는 이미지 파일 tftp 루트 경로로 복사

램디스크 : baremetal 환경에서 OS IOS 임시 저장할 공간.

 

6.syslinux 패키지에서 OS 설치 필요한 파일 복사하기

cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ 설치한 syslinux패키지에서 부트로더 파일을 tftpboot 폴더로 복사

부트로더 : pxe 부팅에 필요한 파일

 

7.tftp루트 폴더에서 정상적으로 파일이 옮겨 졌는지 확인하기

ls /var/lib/tftpboot/ tftp 루트폴더에 저장된 파일을 확인

 

8.dhcp 설정

 

vi /etc/dhcp/dhcpd.conf dhcp pool 설정을 변경한다.
subnet 211.183.3.0 netmask 255.255.255.0
{
option routers 211.183.3.2;
option subnet-mask 255.255.255.0;
range dynamic-bootp 211.183.3.240 211.183.3.250;
option domain-name-servers 8.8.8.8;


allow booting;
allow bootp;
next-server 211.183.3.60;
filename "pxelinux.0";
}
설정할 pool PxE 서버 등을 설정한다.



systemctl restart dhcp dhcp pool 적용을 위해서 dhcp 재시작 한다.

 

 

 

참고 : dhcp pool 설정 내용

subnet 211.183.3.0 netmask 255.255.255.0{ DHCP pool 설정할 ip 서브넷 마스크
option routers 211.183.3.2; 해당 네트워크의 게이트웨이
option subnet-mask 255.255.255.0; 해당 네트워크의 서브넷 마스크
range dynamic-bootp 211.183.3.240 211.183.3.250; ip 받아올 없는 상태(baremetal)여도 ip 부여하고,
뿌려줄 ip 대역을 설정
option domain-name-servers 8.8.8.8; DHCP 전달할 dns 설정
allow booting; 부팅을 허용
allow bootp; bootp 허용
next-server 211.183.3.60; PxE 서버의 주소
filename "pxelinux.0";} tftp 부팅 절차를 받아올 파일명을 설정

 

9.tftp루트폴더에 default 파일 생성

cd /var/lib/tftpboot/ tftp 루트 폴더로 이동
mkdir pxelinux.cfg pxelinux.cfg 폴더 생성
vi default default 파일 생성 편집
DEFAULT         CentOS7_Auto_Install
LABEL           CentOS7_Auto_Install
 kernel         vmlinuz
 APPEND         initrd=initrd.img repo=ftp://211.183.3.60/pub
default 파일에 내용 삽입

!!주의 : kernel APPEND 탭을 주어야 한다

 

참고 : deafault

DEFAULT    CentOS7_Auto_Install 아무것도 설정하지 않았을 설치할 OS
LABEL           CentOS7_Auto_Install 설치할 운영체제 리스트(pxe 이름)
 kernel         vmlinuz 커널 정보가 담긴 파일 이름
 APPEND         initrd=initrd.img repo=ftp://211.183.3.60/pub 램디스크 파일 지정,  이미지 파일, PxE 서버경로 설정
임시저장공간은
initrd.img 이라는 파일을 사용

운영체체 정보(iso파일) ftp 받아온다.
ftp서버의 주소는 211.183.3.60이고 /pub 담겨져 있다.

 

'클라우드&서버 > LINUX' 카테고리의 다른 글

NFS  (0) 2022.01.04
Kick-start  (0) 2022.01.04
FTP  (0) 2021.12.31
DNS  (0) 2021.12.30