구축환경: Ubuntu 14.04 LTS (VirtualBox)


Ubuntu에 DHCP 서버를 구축했다.

스위치 장비가 없어서 VirtualBox에서 테스트했는데, 네트워크 설정을 할줄 몰라서 많이 헤맸다.

VirtualBox에서 지원하는 네트워크 종류는,

NAT

NAT network

Bridge Adapter

Internal Network

Host-only Network

Generic Driver

이렇게 있는데 이 중에 어떤걸 사용해야 테스트가 제대로 될 지 고민을 많이 했는데,

https://printf.kr/archives/285 이 페이지를 참고한 결과,

NAT network를 사용하면 테스트하기 편할거라는 생각이 들었다.

같은 NAT network를 사용하면 두 가상머신이 같은 네트워크 상에 있게 된다.

또, DHCP 서버 사용 여부를 선택할 수 있어 DHCP 서버 구축 테스트에 적합하다고 판단했다.


먼저, VirtualBox의 네트워크 설정을 하기 전 인터넷이 연결되어있는 상태에서 아래 사이트의 소스 패키지를 다운 받는다.

https://packages.ubuntu.com/source/trusty/isc-dhcp

./configure -> make -> make install

세 명령어를 차례로 입력하면 쉽게 설치가 완료된다.


서버 설정과 테스트를 해보기 전에, VirtualBox의 네트워크 설정을 했다.

환경설정 - 네트워크에서 다음과 같은 NAT 네트워크를 추가해준다.

여기서, 기본으로 체크되어 있던 DHCP 지원은 해제해주어야한다.


각 가상머신의 네트워크 어댑터를  NatNetwork라는 이름의 NAT 네트워크로 설정해준다.

그리고 ifconfig 명령어를 사용하면, IP를 할당받지 못한 것을 알 수 있다.


DHCP 서버로 이용할 가상머신에 다음과 같이 IP를 수동으로 할당해준다.


그 후, /etc/dhcpd.conf 파일을 생성하여 다음과 같은 내용을 추가해준다. (책 '이것이 우분투 리눅스다' 참고)

subnet 10.0.2.0 netmask 255.255.255.0 {                 # 네트워크주소, 서브넷마스크

option routers 10.0.2.2;                                 # 게이트웨이 IP

option subnet-mask 255.255.255.0;                  # 서브넷마스크 

range dynamic-bootp 10.0.2.55 10.0.2.99;          # 클라이언트에게 할당할 IP 주소 범위 MIN, MAX 

option domain-name-servers 168.126.63.1;        # 클라이언트에게 알려줄 네임 서버의 주소

default-lease-time 10000;                              # 클라이언트에게 IP 주소를 임대해 줄 기본적인 초 단위 시간

max-lease-time 10000;                              # 클라이언트가 한 IP 주소를 보유할 수 있는 최대의 초 단위 시간

}


특정 랜카드에 고정된 IP 주소를 할당할 때는 위의 절에 아래와 같은 내용을 추가해주면 된다.

host ns{

harware Ethernet MAC주소;

fixed-address 고정IP주소;

}


바로 데몬 실행을 하니, 

DHCP 클라이언트가 IP 주소를 대여해 간 정보가 기록되는 파일인 dhcpd.leases가 필요하다고 한다.

touch /var/db/dhcpd.leases

명령어로 만들어준다.


dhcpd

위 명령어로 데몬을 실행시켜주면,

IP 주소를 할당받지 못했던 클라이언트 가상머신에 IP가 할당된 것을 확인할 수 있고, (나의 경우 10.0.2.55)

그 기록을 /var/lib/dhcp/dhcpd.leases에서 볼 수 있다.

구축환경: Ubuntu 14.04 LTS



서버들을 소스패키지를 빌드해 설치하니, apt-get으로 설치했을 때와는 달리 재부팅 시 데몬이 뜨지 않는다.

이 문제를 해결하기 위해 nohup 명령어를 사용해도 안돼서,

Startup Script 추가를 했다.

다른 방법들은 아직 나에게 많이 복잡해서, 정석은 아닌듯 하나 가장 간단한 방법을 사용했다.


소스패키지로 설치한 ftpd가 Ubuntu 시작 시 자동으로 켜지도록 하기 위해,

ftpd --daemon 명령어를 내용으로 한 /etc/init.d/ftpd.sh 파일을 만들었다.

chmod +x ftpd.sh 명령어로 스크립트를 실행가능하게 만들었다.

update-rc.d ftpd.sh defaults

위 명령어를 실행하면 ftpd.sh를 시작 스크립트로 설정한다.

LSB Information이 없다고 Warning이 뜨지만 일단은 패스.


재부팅을 하면 ftpd가 자동으로 켜져있는 것을 확인할 수 있다.

구축환경: Ubuntu 14.04 LTS


1.

http://httpd.apache.org/download.cgi#apache24

위 사이트에서 가장 최신의 Apache HTTP Server(httpd)를 다운 받았다.


2.

tar -xvzf httpd-2.4.29.tar.gz

명령어로 압축을 푼다.


3.

httpd-2.4.29 디렉터리로 이동해서

./configure

명령어를 사용하니 error가 떴다.

apr이 없다고 해서, apt-get 명령어로 관련 패키지를 설치하고 다시 해보니

이번엔 apr-util이 없다고 한다.

INSTALL 문서를 참고해서,

http://apr.apache.org/download.cgi#apr1에서

apr-1.6.3.tar.gz apr-util-1.6.1.tar.gz를 다운받아,

./scrlib/apr와 ./scrlib/apr-util에 각각 압축을 풀고

./configure --with-included-apr 

명령어를 실행했다.

(apr, apr-util 모두 apt-get 명령어로 설치하면 따로 옵션을 줄 필요가 없는데,

그냥 INSTALL 문서를 참고하는게 편해서 이 방식을 택했다. 이게 차후 문제 발생 방지에 좋다는 설명도 함께 있었다.)


4.

이번엔 pcre-config가 필요했다.

INSTALL 문서에 별다른 설명이 없어서 그냥

apt-get install libpcre3

apt-get install libpcre3-dev

두 명령어로 설치를 하고 다시

./configure --with-included-apr 

명령어를 실행했고

configure: summary of build options:


    Server Version: 2.4.29

    Install prefix: /usr/local/apache2

    C compiler:     gcc -std=gnu99

    CFLAGS:          -g -O2 -pthread  

    CPPFLAGS:        -DLINUX -D_REENTRANT -D_GNU_SOURCE -D_LARGEFILE64_SOURCE  

    LDFLAGS:           

    LIBS:             

    C preprocessor: gcc -E

다음과 같은 결과가 나왔다. 여기서 prefix는 기본값인데, 이걸 변경해 주려면 --prefix=PREFIX 옵션을 주면 된다.

makemake install 명령어를 차례로 실행해주었다.


5.

/usr/local/apache2/bin/apachectl start

명령어를 사용해 데몬을 켜주면 80번 포트가 열리고,

웹 브라우저에 IP 주소를 입력해서 다음과 같은 창이 뜨면 기본적인 웹서버 구축 완료.



+친구의 요청으로 웹페이지의 첫 화면을 바꿔주었다.

이 웹서버의 DocumentRoot/usr/local/apache2/conf/httpd.conf에 설정되어 있다.

/usr/local/apache2/htdocs가 기본값이여서 수정하지 않고 그냥 사용했다.

이 디렉터리 안에 있는 index.html 파일을 수정하면 된다.


+ Recent posts