✔️ PXE(Preboot Execution Environment)란 ?
PXE는 아직 운영체제가 설치되지 않은 컴퓨터가 네트워크를 통헤 PXE 서버에 접속해서 부팅되도록 해주는 인터페이스를 지칭하는 용어이다.
✔️ PXE 서버 개념도
① PXE 설치 서버를 준비한다. PXE 설치 서버는 별도의 패키지가 있는 것이 아니라
- IP 주소를 자동으로 할당하는 DHCP 서버
- syslinux 부팅 파일을 전송할 TFTP 서버
- CentOS DVD의 설치 파일을 전송할 FTP 서버 또는 웹 서버로 구성된다.
② 아무것도 설치되지 않은 PC에 전원을 넣으면 자동으로 PXE 설치 서버를 찾는다.
③ 나머지는 PXE 설치 서버에 설정한대로 설치가 자동으로 진행된다.
① 서버 컴퓨터(PXE-TEST)에 전원을 키면 PXE 환경이 실행되어 DHCP서버를 찾는다.
② DHCP 서버로부터 IP를 할당받은 후 tftp로부터 pxelinux.0, menu.c32(or ldlinux.c32) 파일을 다운받아 실행
③ default 메뉴가 실행되고, 설치 메뉴 선택 시, 실행할 내용 (KERNEL, APPEND)에 따라 커널 이미지 파일을 다운받아 실행
④ 운영체제 설치에 필요한 파일을 VSFTP로부터 다운 받는다. (repo=ftp://100.100.100.120/centos6.9)
📌 PXE 설치를 위해서는 PXE 설치 서버와 PC가 모두 같은 네트워크 안에 있어야 한다.
✔️ PXE 동작 프로세스
1. 클라이언트가 부팅하면서 DHCP Discover 패킷을 브로드캐스트 전송한다. 이 역할은 NIC가 수행하며 이때 DHCP payload에 PXE Client Flag를 넣어서 보낸다.
📌 NIC (Network Interface Card) : 네트워크에 접속할 수 있게 하기위해 컴퓨터 내에 설치되는 확장 카드
2. 수신한 서버는 DHCP Offer로 응답하며, 클라이언트가 가져갈 IP 정보들에 대해 제공해준다. 이때 일반 DHCP에 추가되어 이미 DHCP에 사전에 설정된 Next-Server IP (TFTP 서버) 정보도 함께 제공된다.
TFTP 서버는 DHCP가 함께 수행해도 되고 그렇지 않을 경우 Proxy 형태로도 제공할 수 있다.
3. 클라이언트는 서버로 부터 받은 정보를 가지고 다시 DHCP Request를 한다.
4. DHCP 서버는 DHCP ACK를 통해서 최종적으로 IP 정보와 TFTP 정보를 함께 전송한다.
5. 클라이언트는 DHCP 수신 정보 가운데, TFTP 서버 정보를 보고 NBP(Network Boot Program)으로 PXE 요청을 TFTP 서버에게 보낸다.
6. 서버는 요청을 받고, "pxelinux.0” 를 클라이언트에게 응답하고, 클라이언트는 해당 정보를 수신하면서 랜카드에서 메모리로 로딩을 시작한다.
7. 클라이언트는 이제 실제 구성정보를 서버에게 요청한다.
8. 서버는 PXE boot 이미지와 기타 구성정보가 포함된 “pxelinux.cfg” 내용을 클라이언트에게 전송하고 , 클라이언트는 해당 내용을 수신한다.
9. 클라이언트는 “pxelinux.cfg” 구성에 포함되어 있는 커널과 PXE 이미지 파일을 요청한다.
10. 서버는 클라이언트의 요청내용을 받고 , 서버 내부에 TFTP 지정 디렉토리에서 PXE 커널,부트 이미지를 클라이언트에게 로딩한다.
11. 클라이언트는 PXE 커널 및 부트 이미지를 로딩하고 , 추가적으로 정보에 포함된 리눅스 파일을 로딩하여 부팅을 시작한다.
이때 kickstart 정보를 통해서 설치시 필요한 정보 (언어, 시간, 패키지 선택, 패스워드 등)에 대해 이 파일을 참조하고 설치를 완료한다.
✔️ Kickstart란?
PXE 설치 서버를 이용할 때, 부팅 후 필요한 작업까지 미리 설정해 원격 설치 시 편리하게 설치할 수 있도록 도와주는 기능이다.
'Linux' 카테고리의 다른 글
[Linux] iptables (0) | 2022.03.22 |
---|---|
[Linux] PXE 설치 서버 구현 (2) | 2022.03.21 |
[Linux] Proxy 서버 (0) | 2022.03.21 |
[Linux] Samba 서버 (Samba 서버 구축해보기) (0) | 2022.03.21 |
[Linux] NFS(Network File System) (0) | 2022.03.21 |
영차영차 성장 블로그
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!