리눅스

PXE server 구축 (pxe 서버 구축)

나뭇빛자루 2020. 8. 29. 15:10
반응형

PXE Server 구축 하기

 

 

====목차====

0. PXE-server 스팩

1. 설치 OS 

2. 디스크 구성

3. DHCP 설정

4. TFTP 설정

 

 

0. PXE-server 스팩

서버

CPU

MEM

SSD

SATA

HBA

SP7-2104GS

E5-2620v4

16GB ddr4

240GB

2TB

3008IR

                                                                                                                     

1. 설치 OS : 7.6

 

2. 디스크 구성

4. DHCP 설정

설치 방법 : yum install dhcpd*

구성 방법 : cd /etc/dhcp/dhcpd.conf

기존에 있던 설정 파일을 옮길 경우 퍼미션 관련 장애 발생

/sbin/restorecon –v /etc/dhcp/dhcpd.conf 등록해준다

service dhcpd start

퍼미션 문제

 

적용 후 상태 확인

 

 

ddns-update-style 네임 서버의 동적 업데이트 결정하며

pxe설정은

allow booting

allow bootp

를 써준다.

 

next-server 은 초기 부팅되어 있는 서버의 호스트 주소를 지정하는 함 그 주소에 있는 정보를  로드할 수 있음

Filename << 이 여기에 next-server에 받아올 파일들을 위치 시켜준다.

 

매개 변수들 참조 : https://man.openbsd.org/dhcpd.conf.5

 

dhcpd.conf(5) - OpenBSD manual pages

dhcpd.conf — DHCP server configuration file The dhcpd.conf file contains configuration information for dhcpd(8), the Internet Software Consortium DHCP Server. The dhcpd.conf file is a free-form ASCII text file. It is parsed by the recursive-descent parse

man.openbsd.org

서버의 성공 화면 dhcpd가 클라이언트에게 ip주소를 뿌려주는 로그가 보인다.

 

클라이언트 성공적용 화면

 

 

 

5. TFTP 설정

관련 패키지들을 yum install을 통해 깔아준다 xinetd, tftp-server , syslinux

그 후 재부팅후에 자동실행인 ntsysv 을 통해 Tftpxinetd 을 체크해준다.

Tftp 설정 방법

파일 위치 : /etc/xinetd.d/tftp

Disable = yes >> no #사용 할지 안할지 설정

Server_args = -v –s /디랙토리명 지정

 

앞서 syslinux를 설치 하여 생긴 /tftpboot 디랙터리를 경로에다가 복사해준다

권한 설정은 755로 맞춰준다.

 

/tftpboot 경로에 pxeliuxe.0란 파일이 dhcpd로 인해 불러오면서 .cfg 디렉터리에 있는 default 에 설정된 값들을

뿌려주기 때문에 만들어 주어야 한다.

 

부팅중 TFTP TIME OUT이 발생하는데 방화벽 문제 이거나 TFTP가 제대로 작동을 안하여 발생하는 문제다

전자 같은 경우 

방화 벽을 꺼준다 systemctl stop iptables.service

 

후자 같은 경우에는 다른 클라이언트 서버로 TFTP가 작동되는지 확인한다

파일 가져오기 

tftp (ip입력)

>>get (파일이름)

 

확인을 했는데 원활한 통신이 안된다. 찾아보니 7버전 이상에선 xinetd가 아니라 systemctl에서 관리 하는거 같아보였다.

 

root@localhost /]# systemctl status tftp.service

tftp.service - Tftp Server

   Loaded: loaded (/usr/lib/systemd/system/tftp.service; indirect; vendor preset: disabled)

   Active: active (running) since KST; 25s ago

     Docs: man:in.tftpd

 Main PID: 23492 (in.tftpd)

    Tasks: 1

   CGroup: /system.slice/tftp.service

           └─23492 /usr/sbin/in.tftpd -s /var/lib/tftpboot

 

 6 10 18:42:46 localhost.localdomain systemd[1]: Started Tftp Server.

 

퍼미션이 자꾸 죽길래 상태 확인해봄 분명 설정을 맞췄고 했는데 뭐가 꼬였는지 매인디렉터리가 안바뀌는 상황임

 

[root@localhost /]# /usr/sbin/in.tftpd -s /tftboot –vvv

 

강제로 넣어버림

 

그래도 안되는 상황

 

[root@localhost /]# vim /usr/lib/systemd/system/tftp.service

경로를 찾아서 아예 바꿔버림

systemctl cat tftp.service

# /usr/lib/systemd/system/tftp.service

[Unit]

Description=Tftp Server

Requires=tftp.socket

Documentation=man:in.tftpd

 

[Service]

ExecStart=/usr/sbin/in.tftpd -s /var/lib/tftpboot

StandardInput=socket

 

[Install]

Also=tftp.socket

 

 

 

Warning: tftp.service changed on disk. Run 'systemctl daemon-reload' to reload units.

 

데몬을 수정 후 유닛 로드

 

systemctl status tftp.service

tftp.service - Tftp Server

   Loaded: loaded (/usr/lib/systemd/system/tftp.service; indirect; vendor preset: disabled)

   Active: active (running) since 2020-06-10 18:54:22 KST; 14s ago

     Docs: man:in.tftpd

 Main PID: 23829 (in.tftpd)

    Tasks: 1

   CGroup: /system.slice/tftp.service

           └─23829 /usr/sbin/in.tftpd -s /tftpboot -vvv

 

만족스럽게 바뀌었고 정상적 부팅이 됨.

 

 

 

 

정상적으로 가져와 졌으면 tftp에는 문제가 없는것이며 systemctl을 통해 로그를 분석해보자

반응형