더북(TheBook)

자동 설치에 필요한 서버 패키지 설치하기

  1 가상 시스템을 제어하는 호스트를 자동 설치 서버로 이용합니다. 먼저 호스트에 DHCP 서버를 설치합니다. DHCP 서버로 isc-dhcp-server 패키지를 사용합니다.

shinjaehun@losttemple:~$ sudo apt-get update
shinjaehun@losttemple:~$ sudo apt-get install isc-dhcp-server

  2 DHCP 서버 설정 파일 ‘dhcpd.conf’를 vi로 열어서 수정합니다.

shinjaehun@losttemple:~$ sudo vi /etc/dhcp/dhcpd.conf

  3 ddns-update-style은 네임 서버의 동적 업데이트를 허용할지 결정하는 항목입니다. 기본값은 none입니다.

ddns-update-style none;

  4 전체 네트워크에 적용할 도메인 이름 정보는 주석처리해서 무효로 합니다. 게스트마다 필요한 주소 정보를 각각 할당하도록 하겠습니다.

#option domain-name "example.org";
#option domain-name-servers ns1.example.org, ns2.example.org;

  5 다음 두 항목은 클라이언트에게 IP 주소를 부여하고 다시 돌려받기 위한 시간(대여 시간, lease time)을 초 단위로 설정합니다. default-lease-time은 기본적으로 클라이언트에게 IP 주소를 부여할 시간을, max-lease-time은 연장 가능한 최대 시간을 의미합니다.

default-lease-time 600;
max-lease-time 7200;

  6  주소 정보를 설정합니다. 가상 네트워크 주소 192.168.122.0을 subnet 192.168.122.0과 netmask 255.255.255.0으로 정의합니다.

블록 내부에 게스트에게 제공할 TCP/IP 주소 정보를 입력합니다. 각 항목은 ‘;’로 끝나야 합니다. range에는 실제 클라이언트에게 부여할 IP 주소 범위를 지정합니다. 앞에서 다른 게스트에 부여한 IP 주소와 중복되지 않게 192.168.122.11부터 192.168.122.99까지 할당했지만 필요하다면 더 많은 범위의 IP 주소를 부여할 수 있습니다. option으로 IP 주소 외에 넷마스크 subnet-mask, 브로드캐스트 주소 broadcast-address, 게이트웨이 주소 routers, DNS 서버 domain-name-servers 주소를 각각 지정합니다. DNS 주소를 둘 이상 입력할 때는 ‘,’로 구분해야 합니다.

subnet 192.168.122.0 netmask 255.255.255.0 {
        range 192.168.122.11 192.168.122.99;
        option subnet-mask 255.255.255.0;
        option broadcast-address 192.168.122.255;
        option routers 192.168.122.1;
        option domain-name-servers 8.8.8.8, 8.8.8.4;

        next-server 192.168.122.1;
        filename "pxelinux.0";
}
Tip

이렇게 하면 시스템을 다시 부팅할 때마다 range로 지정한 범위 내 사용하지 않는 임의의 IP 주소가 할당됩니다. 시스템 관리자 입장에서 각 시스템의 IP 주소는 고정적으로 할당되는 편이 바람직합니다. 클라이언트에 IP 주소를 고정적으로 할당하기 위한 DHCP 서버 설정이 남아 있는데 ‘설치 대상 시스템 준비하기’에서 마무리합니다.

  7 IP 주소 정보 블록에서 네트워크 부팅에 필요한 항목은 next-serverfilename입니다. next-server는 네트워크 부팅 이미지를 전송할 TFTP 서버의 주소, filename은 네트워크 부팅 이미지 파일 이름을 의미합니다. 설정 파일 수정이 끝나면 파일을 저장하고 vi를 종료합니다.

next-server 192.168.122.1;
filename "pxelinux.0";
Tip

네트워크에서 DHCP 서버를 운영한다면 위 설정만으로도 충분한데, next-server와 filename 항목은 삭제해야 합니다. range에 지정한 범위 내의 IP 주소 중 하나와 option에 설정된 추가 정보가 클라이언트에 할당될 것입니다.

  8 DHCP 서버는 가상 네트워크 인터페이스 virbr0을 통해 연결된 가상 시스템에게 IP 주소를 제공해야 합니다. DHCP 서버가 사용할 네트워크 인터페이스를 변경하기 위해/etc/default/isc-dhcp-server 파일을 수정합니다.

shinjaehun@losttemple:~$ sudo vi /etc/default/isc-dhcp-server

  9 INERFACE 항목에 가상 네트워크 인터페이스인 virbr0을 입력합니다.

# On what interfaces should the DHCP server (dhcpd) serve DHCP requests?
#       Separate multiple interfaces with spaces, e.g. "eth0 eth1".
INTERFACES="virbr0"

10 설정 내용을 반영하기 위해 DHCP 서버를 재시작합니다.

gunsmoke@losttemple:$ sudo service isc-dhcp-server restart

11 DHCP 서버는 udp 67 포트를 통해 접속 요청을 받습니다.

shinjaehun@losttemple:~$ netstat -ln | grep 67
udp        0      0 0.0.0.0:67              0.0.0.0:*
Tip

만일 67번 포트가 열려 있지 않다면 환경 설정 파일에 오류가 있어 DHCP 서버가 정상적으로 서비스되지 않을 수 있습니다. 환경 설정 파일 내용을 다시 확인합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.