DNSMASQ MAC Address 별 iSCSI 타겟지정


iSCSI 네트워크 부팅시 Client 의 네트워크 카드 맥 어드레스에 따라 IP를 지정하고 iscsi 타겟을 지정하는 방법입니다.

dhcp-host 와 dhcp-option 으로 MAC Address 로 분기할 수 있습니다.


domain=localhost.localdomain
dhcp-range=192.168.1.100,192.168.1.200,255.255.255.0,1h
dhcp-option=option:router,192.168.1.1
enable-tftp
tftp-root=/var/lib/tftpboot

pxe-service=net:#iPXE,x86PC,"PXE Network booting",undionly.kpxe
dhcp-match=iPXE,175

dhcp-host=00:00:00:00:00:01,net:iPXE-boot1,192.168.1.101,12h
dhcp-option=net:iPXE-boot1,17,"iscsi:192.168.1.3:::1:disk01"

dhcp-host=00:00:00:00:00:02,net:iPXE-boot2,192.168.1.102,12h
dhcp-option=net:iPXE-boot2,17,"iscsi:192.168.1.3:::1:disk02"

dhcp-host=00:00:00:00:00:03,net:iPXE-boot3,192.168.1.103,12h
dhcp-option=net:iPXE-boot3,17,"iscsi:192.168.1.3:::1:disk03"

아이피 대역은 본인의 환경에 맞게 설정하면 됩니다.


블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,

CentOS 7.x 노하드 시스템 iSCSI & PXE 환경구축


하드디스크 없이 네트워크로 윈도우를 부팅하려면 먼저 iSCSI 스토리지 서버와 PXE 서버 구축이 되어 있어야 합니다.

그리고 미리 윈도우 이미지를 만들어 두어야 합니다.


1. 패키지 설치

yum install epel-release wget scsi-target-utils iscsi-initiator-utils dnsmasq


2. 방화벽 설정

firewall-cmd --permanent --zone=public --add-service=ftp
firewall-cmd --permanent --zone=public --add-service=dns
firewall-cmd --permanent --zone=public --add-service=dhcp
firewall-cmd --permanent --zone=public --add-service=iscsi-target
firewall-cmd --permanent --zone=public --add-port=69/udp
firewall-cmd --permanent --zone=public --add-port=4011/udp
firewall-cmd --reload


3. iSCSI 스토리지 설정

vi /etc/tgt/targets.conf

<target disk01>
    backing-store /iscsi/disk01.img
    initiator-address ALL
    #incominguser iscsi pass1234
</target>

systemctl enable tgtd
systemctl start tgtd

OS 이미지인 disk01.img 는 미리 작업해서 올려두어야 합니다.

tgt-admin -s 명령어로 정상적으로 설정되었는지 확인합니다.

iscsi 초기자로 테스트하는 방법

# iSCSI 설정

iscsiadm -m discovery -t st -p 192.168.1.3
iscsiadm -m node --targetname disk01 --portal 192.168.1.3:3260 --login

( 안되면 tgtadm --lld iscsi --op bind --mode target --tid 1 -I ALL 명령어 실행 후 다시 재시도)


# iSCSI 해제

iscsiadm -m node --targetname disk01 --portal 192.168.1.3:3260 --logout
iscsiadm -m discovery --portal 192.168.1.3:3260 --op=delete


4. PXE 부팅 환경 작업

mkdir /var/lib/tftpboot

wget -O /var/lib/tftpboot/undionly.kpxe http://boot.ipxe.org/undionly.kpxe


5. dnsmasq 환경 설정

vi /etc/dnsmasq.d/dhcp.conf

domain=localhost.localdomain
dhcp-range=192.168.1.100,192.168.1.200,255.255.255.0,1h
dhcp-option=option:router,192.168.1.1
enable-tftp
tftp-root=/var/lib/tftpboot
dhcp-match=iPXE,175
dhcp-option=net:iPXE,17,"iscsi:192.168.1.3:::1:disk01"
pxe-service=net:#iPXE,x86PC,"PXE Network booting",undionly.kpxe

systemctl enable dnsmasq
systemctl start dnsmasq

아이피 환경은 맞게 수정하셔야 합니다.

그리고 iPXE 는 다른 이름으로 해도 상관없습니다.

접속주소는 iscsi:아이피주소:프로토콜:포트번호:룬번호:타겟명 이런 형태입니다.

예) iscsi:192.168.1.3:tcp:3260:1:disk01

MAC Address 별로 iscsi 타겟을 따로 지정하려면 https://ivps.tistory.com/371 여기를 참고하세요.


이제 설정이 완료되었습니다.

다른 클라이언트에서 테스트 해보고 안되면 서버를 재부팅 한 다음에 다시 시도해보세요~


PXE 네트워크 부팅 동영상 보기

https://youtu.be/jZdWfViNcIU ( Win10 )

https://youtu.be/tCZcA25oKqg ( Win7 )



윈도우7 은 iSCSI 관련 핫픽스 패치를 한 이후에 이미지를 만들면 부팅이 되던데,

윈도우10 은 블루스크린이 뜨면서 부팅실패를 하는군요~


윈도우7용은 패치 파일 첨부합니다.

Windows6.1-KB2550978-x64[1].msu

Windows6.1-KB976042-v2-x64[1].msu


윈도우10은 성공했다는 글은 봤는데 좀 복잡해서 나중에 패치가 나오길 기다려봅니다~ ㅎ


블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,

CentOS 7.x PXE 서버 설정

LINUX 2017. 9. 13. 16:20

CentOS 7.x PXE 서버 설정


리눅스 PXE Boot 서버 설정입니다.

설치 CD없이 PXE 로 설치하는 방법입니다. DNSMASQ 대신에 DHCP + TFTP-SERVER 로 대체하여도 됩니다.


1. 패키지 설치

yum install dnsmasq vsftpd syslinux

tftp-server 는 dnsmasq 로 할 때는 설치하지 않아도 됩니다.

대신에 /var/lib/tftpboot 폴더는 만들어 주거나 다른 폴더로 대체하여야 합니다.


2. dnsmasq 설정

vi /etc/dnsmasq.d/dhcp.conf

dhcp-range=192.168.1.3,proxy
enable-tftp
tftp-root=/var/lib/tftpboot
pxe-service=x86PC, "PXE-Linux on 192.168.1.3", "pxelinux.0", 192.168.1.3

굵은 글씨 부분을 자신의 환경에 맞게 수정하면 됩니다.

좀 더 복잡한 설정 :


3. CentOS 7.x ISO 다운로드 및 복사

wget http://ftp.daumkakao.com/centos/7.3.1611/isos/x86_64/CentOS-7-x86_64-Minimal-1611.iso
mkdir /mnt/centos7
mount -o loop CentOS-7-x86_64-Minimal-1611.iso /mnt/centos7
cp -av /mnt/centos7/* /var/ftp/pub/


4. PXE Boot 디렉토리 작업

mkdir /var/lib/tftpboot/pxelinux.cfg
mkdir /var/lib/tftpboot/centos7
cp -rv /usr/share/syslinux/* /var/lib/tftpboot/
cp -v /mnt/centos7/images/pxeboot/vmlinuz /var/lib/tftpboot/centos7/
cp -v /mnt/centos7/images/pxeboot/initrd.img /var/lib/tftpboot/centos7/


5. PXE Boot 메뉴 작업

vi /var/lib/tftpboot/pxelinux.cfg/default

default menu.c32
prompt 0
timeout 100
ontimeout 1
menu title ### PXE Boot Menu ###
label 1
menu label ^1) Install CentOS 7 x64 (ftp://192.168.1.26/pub)
kernel centos7/vmlinuz
append initrd=centos7/initrd.img method=ftp://192.168.1.3/pub devfs=nomount
label 2
menu label ^2) Install CentOS 7 x64 (http://mirror.centos.org)
kernel centos7/vmlinuz
append initrd=centos7/initrd.img method=http://mirror.centos.org/centos/7/os/x86_64/ devfs=nomount


6. 데몬 시작

systemctl enable dnsmasq
systemctl enable vsftpd
systemctl start dnsmasq
systemctl start vsftpd


7. 방화벽 설정

firewall-cmd --permanent --zone=public --add-service=ftp
firewall-cmd --permanent --zone=public --add-service=dns
firewall-cmd --permanent --zone=public --add-service=dhcp
firewall-cmd --permanent --zone=public --add-port=69/udp
firewall-cmd --permanent --zone=public --add-port=4011/udp
firewall-cmd --reload


이제 설정이 모두 완료되었습니다.

reboot 으로 재부팅 한번 하고 난뒤에 테스트 하면 됩니다.


PXE 설치 동영상 보기 https://youtu.be/QkMbobbBrEU



dnsmasq 대신에 dhcp + tftp-server 로 하는 방법입니다.

위의 1번 과정에서 yum install tftp-server dhcp vsftpd syslinux


2번 과정을 아래로 대체합니다.

vi /etc/xinet.d/tftp

service tftp
{
        socket_type             = dgram
        protocol                = udp
        wait                    = yes
        user                    = root
        server                  = /usr/sbin/in.tftpd
        server_args             = -s /var/lib/tftpboot
        disable                 = no
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4
}

disable = yes 를 disable = no 로 변경 후 저장

systemctl enable tftp

systemctl start tftp


dhcp 설정

vi /etc/dhcp/dhcpd.conf

subnet 192.168.1.0 netmask 255.255.255.0 {
    range dynamic-bootp 192.168.1.100 192.168.1.200;
    option domain-name-servers 8.8.8.8, 8.8.4.4;
    option broadcast-address 192.168.1.255;
    option routers 192.168.1.1;
}
filename "pxelinux.0";


systemctl enable dhcpd

systemctl start dhcpd

그리고 방화벽 설정에서

--add-service=dns 와 --add-port=4011/udp 는 필요가 없습니다.


블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,