✔️ PXE 서버 구현
사용한 가상 머신 tool은 VMware이다.
1. PXE 설치 서버와 관련된 패키지들을 설치 및 설정하기
[root@dns ~]# yum -y install syslinux dhcp-server tftp-server vsftpd
yum으로 패키지들을 설치한다.
[root@dns ~]# systemctl stop firewalld
[root@dns ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
관련 포트를 열어야 하는데, 관련 포트가 여러개이므로 방화벽을 꺼둔다.
dhcp.conf 파일
dhcp 서비스를 설정하는 파일이다.
/usr/share/doc/dhcp-server/dhcpd.conf.example 또는
/usr/share/doc/dhcp-4.3.6/dhcpd.conf.example 파일을 열어 dhcp 설정 예시를 확인할 수 있다. (주로 복사해서 사용)
dhcp 서버 구성요소 3가지
- 영역 구성(IP 대역대)
- Routers
- Domain IP
dhcp 설정 파일 내용에 대한 설명
subnet 10.5.5.0 netmask 255.255.255.0 { # 네트워크 구성을 위한 Network ID 및 할당 가능 대역 설정
# 서브넷은 해당 DHCP 서버 IP 대역대를 입력해준다.
range 10.5.5.26 10.5.5.30; # client 에게 제공할 IP주소 범위 값
option domain-name-servers ns1.internal.example.org; # client 에게 제공할 DNS 서버의 주소
option domain-name "internal.example.org"; # client에게 제공할 DNS 서버의 도메인명
option routers 10.5.5.1; # client가 사용할 gateway 주소
option broadcast-address 10.5.5.31; # 적용시킨 broadcast 주소
default-lease-time 600; # IP임대 기간의 기본값 (옵션 사항)
max-lease-time 7200; # IP 임대 기간의 최대값 (옵션 사항)
}
→ 다음과 같이 설정한다면
10.5.5.0 : Network를 대표하는 IP
10.5.5.1 DHCP 서버의 IP
10.5.5.26 ~ 10.5.5.30 : 동적으로 할당할 IP 주소들 (여기서는 총 5대의 PC에게 IP 임대가 가능하다.)
10.5.5.255 : broadcast IP
고정 IP 설정
host raspberry {
hardware ethernet dc:a6:32:e6:14:f9;
fixed-address 10.5.5.27;
}
MAC address가 dc:a6:32:e6:14:f9 인 client IP 주소를 10.5.5.27로 고정한다는 의미이다.
[root@dns ~]# vi /etc/dhcp/dhcpd.conf
subnet 192.168.6.0 netmask 255.255.255.0 {
option routers 192.168.6.2;
option subnet-mask 255.255.255.0;
range dynamic-bootp 192.168.6.150 192.168.6.199;
option domain-name-servers 192.168.6.2;
allow booting; # 부팅을 허용함
allow bootp; # 부팅프로토콜을 허용함
next-server 192.168.6.128; # 부팅 파일이 있는 서버의 주소
filename "pxelinux.0"; # 부팅 파일 이름(syslinux)
}
우선 DHCP 서버의 설정 파일인 /etc/dhcp/dhcpd.conf를 vi로 열어 PXE 부팅을 허용하도록 추가해줘야 한다.
IP 주소를 192.168.6.150 ~ 199 까지 할당하는 것으로 설정한다. (50대의 클라이언트에 IP 주소를 동시에 할당할 수 있다.)
vi /etc/vsftpd/vsftpd.conf
ftp 서버 기능을 하는 vsftpd 설정 파일인 /etc/vsftpd/vsftpd.conf 파일에서 익명 사용자의 접속을 허용해줘야 한다.
/etc/vsftpd/vsftpd.conf 파일을 열어 anonymous_enable=NO를 YES로 변경한다.
ftp 서버는 CentOS 설치 패키지를 클라이언트에 전송하는 역할을 할 것이다.
2. CentOS ISO 파일을 ftp 서버의 홈 디렉토리인 /var/ftp 아래에 있는 /pub 디렉토리에 마운트하기
VMware 메뉴의 [Player] → [Removable Devices] → [CD/DVD] → [Setting]을 선택해 CentOS DVD ISO 파일을 VMware에 연결한다.
[root@localhost ~]# umount /dev/cdrom
[root@localhost ~]# mount /dev/cdrom /var/ftp/pub
mount: /var/ftp/pub: WARNING: device write-protected, mounted read-only.
umount /dev/cdrom 명령으로 마운트를 끊고 mount/dev/cdrom /var/ftp/pub 명령으로 새로 마운트한다.
쓰기 방지와 읽기 전용으로 마운트된다.
3. 부팅에 필요한 파일 준비하기
cp /var/ftp/pub/images/pxeboot/vmlinuz /var/lib/tftpboot/
cp /var/ftp/pub/images/pxeboot/initrd.img /var/lib/tftpboot/
cp /var/ftp/pub/isolinux/ldlinux.c32 /var/lib/tftpboot/
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
ls -l /var/lib/tftpboot/
tftp 서버의 디렉토리인 /var/lib/tfrpboot/에 DVD의 부팅 이미지 및 syslinux 부팅 파일을 복사한다.
복사가 끝나면 정상적으로 복사되었는지 확인한다.
mkdir /var/lib/tftpboot/pxelinux.cfg
cd /var/lib/tftpboot/pxelinux.cfg/
touch default
다음 명령을 입력해 /var/lib/tftpboot/ 디렉토리에 부팅 관련 디렉토리와 설정 파일을 생성한다.
DEFAULT CentOS8_Auto_Install # 기본 부팅 Label 지정
LABEL CentOS_Auto_Install # Label 시작
kernel vmlinuz # 커널 지정(/var/lib/tftpboot/ 디렉터리에 복사해둠)
APPEND initrd=initrd.imag repo=ftp://192.168.6.128/pub # CentOS패키지 저장소
default 파일을 열고 내용을 채운다.
4. 관련된 서버 시작하기
[root@pxe-server pxelinux.cfg]# systemctl start dhcpd
[root@pxe-server pxelinux.cfg]# systemctl start vsftpd
[root@pxe-server pxelinux.cfg]# systemctl start tftp
[root@pxe-server pxelinux.cfg]# systemctl enable dhcpd
Created symlink from /etc/systemd/system/multi-user.target.wants/dhcpd.service to /usr/lib/systemd/system/dhcpd.service.
[root@pxe-server pxelinux.cfg]# systemctl enable vsftpd
Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.
[root@pxe-server pxelinux.cfg]# systemctl enable tftp
Created symlink from /etc/systemd/system/sockets.target.wants/tftp.socket to /usr/lib/systemd/system/tftp.socket.
5. VirtualBox가 제공하는 DHCP 서비스를 중지하기
직접 구축한 DHCP 서버를 사용하기 위해 VirtualBox가 제공하는 DHCP 서버 기능을 꺼야한다.
[Edit] →
테스트할 가상머신을 생성한다.
가상머신을 부팅하고 기다리면 스스로 tftp에 접속해 파일을 다운로드 한다.
잠시 기다리면 CentOS의 설치화면이 나온다.
'Linux' 카테고리의 다른 글
[Linux] curl 명령어 (0) | 2022.04.05 |
---|---|
[Linux] iptables (0) | 2022.03.22 |
[Linux] PXE, Kickstart (0) | 2022.03.21 |
[Linux] Proxy 서버 (0) | 2022.03.21 |
[Linux] Samba 서버 (Samba 서버 구축해보기) (0) | 2022.03.21 |
영차영차 성장 블로그
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!