강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

리눅스서버로 구축하는 DHCP서버

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

       1. DHCP서버와 DHCP클라이언트

 

       2. DHCP서버 설치 및 구성파일들

 

       3. DHCP서버 설정파일 dhcpd.conf

 

       4. DHCP서버의 네트워크 설정

 

       5. DHCP서버를 사용하는 DHCP클라이언트의 설정방법


1. DHCP서버와 DHCP클라이언트

 

DHCP“Dynamic Host Configuration Protocol ”의 약어로서 동적인 IP할당을 위해 사용되는 프로토콜을 의미합니다. 그리고 DHCP를 탑재하여 동적 IP할당 서비스를 하는 서버를 DHCP서버라고 하며 인터넷 통신을 하기 위하여 DHCP서버로 부터 유동적으로 IP를 할당받는 컴퓨터를 DHCP클라이언트라고 합니다.

 

, 현재 우리가 사용하고 있는 가장 일반적인 인터넷 사용환경인 초고속인터넷 환경에서는   인터넷을 사용할 때마다 사용자들의 IP주소가 바뀌는 유동IP주소를 사용하게 됩니다. 이때 이 유동IP주소를 사용자들에게 할당하는 서버가 DHCP서버입니다. 그리고 유동IP주소를 할당 받아서 인터넷을 사용하는 사용자들의 컴퓨터가 DHCP클라이언트가 되는 것입니다.

 

DHCP는 원래 IPv4에서 부족한 공인IP주소를 많은 사람들이 함께 사용하기 위하여 사용되기 시작하였습니다. , 예를 들어 DHCP서버에서 할당이 가능한 IP주소가 50개가 있다면  DHCP서버를 이용하여 인터넷을 사용하는 DHCP클라이언트 컴퓨터는 이보다 많을 수 있습니다. 항상 인터넷을 사용하는 것은 아니기 때문에 DHCP클라이언트의 요청이 있을 때마다 사용되고 있지않은 IP주소를 할당하고 사용이 끝나면 할당했던 IP주소를 회수하여 다른 요청 사용자에게 IP주소를 할당하는 식으로 서비스를 합니다.

 

DHCP의 정확한 개념을 이해하려면 공인IP주소와 사설IP주소의 개념과 함께 고정IP주소와 유동IP주소의 개념을 알아야 합니다.

 

[참고] 공인 IP주소와 사설 IP주소, 그리고 고정IP주소와 유동IP주소

인터넷을 이용하기 위해서는 전세계적으로 유일하게 식별될 수 있는 공인IP주소라는 것을 가져야만 합니다. , 현재 우리가 사용하고 있는 초고속인터넷 사용자들이 인터넷을 사용할 때에는 반드시 공인IP주소를 가지게 됩니다. 이와 같은 공인IP주소에는 고정IP주소와 유동IP주소가 있습니다. 만약 여러분들이 한국통신의 MyIP서비스를 이용하신다면 고정공인IP주소를 가지고 있을 것이며 초고속인터넷(KT의 메가패스, 두루넷, 온세 샤크등)을 사용하고 계신다면 유동공인IP주소를 가지고 있을 것입니다.

 

, 인터넷을 사용할 때마다 자신의 IP주소가 바뀐다면 유동공인IP주소를 사용하는 것입니다. 그렇지않고 항상 동일한 IP주소를 가지고 있다면 고정공인IP주소를 사용하고 있는 것입니다.

 

그리고 사설IP주소란 특정 네트워크내에서만 사용이 가능하며 임의로 사용할 수 있는 IP주소를 의미합니다. 따라서 사설IP주소로는 특정 네트웍내에서만 사용이 가능하며 인터넷과 같은 범용 네트웍에서는 사용할 수 없습니다. , 회사내부에서나 집에서 특정 네트웍을 구축하여 임의의 IP주소를 할당하여 사용하는 것을 의미합니다. 이런 네트웍을 사설네트웍이라고 합니다.

 

DHCP서버와 DHCP클라이언트의 관계를 이해하기 위하여 다음 그림을 보시기 바랍니다.


15cde9d4f7ddca3e8f605d34da1176c6_1643255189_8273.png



일반적으로 어떤 컴퓨터가 인터넷을 사용하기 위해서는 IP주소와 네트워크설정이 되어 있어야만 사용이 가능합니다. 하지만 위의 그림에서 DHCP클라이언트들은 자체IP주소와 네트워크설정값을 가지고 있지 않습니다. , DHCP클라이언트들이 인터넷을 사용하려고 할 때에 DHCP서버에서 IP주소와 호스트명, 그리고 네트워크정보를 가져와서 사용합니다. 그리고 인터넷사용이 끝나거나 종료하게 되면 다시 IP주소와 호스트네임을 DHCP서버에게 반납하게 됩니다. 그리고 다시 인터넷을 사용하려면 IP주소와 네트워크정보를 할당받아서 사용합니다. 할당받을 때마다 고정된 IP주소를 할당받는 것이 아니라 현재 사용되지않고 남아있는 IP들 가운데 할당가능한 주소를 DHCP서버가 DHCP클라이언트에게 할당하게 됩니다. , 동적(Dynamic)으로 할당을 한다는 의미입니다.

 

앞서 말씀드렸듯이 DHCP서버를 사용하는 이유는 가장 큰 이유는 부족한 IP주소를 효율적으로 사용하기 위한 좋은 대안이 되기 때문입니다.

 

하지만 요즘에는 DHCP서버를 대신하여 IP공유기라는 것을 많이 사용합니다. 굉장히 저렴한 가격으로 구입을 할 수 있기 때문에 굳이 DHCP서버를 구축하지 않아도 많은 사람들이 IP를 공유하여 사용할 수 있습니다. 특히 특정그룹이나 회사내에서 사설IP주소를 공유하여 사용하려고 할 때에 매우 편리하고 효율적으로 활용할 수 있습니다.

 

우리는 이런 DHCP서버를 리눅스로 구축해 볼 것입니다. 그리고 리눅스에 구축한 DHCP서버의 설정법과 사용법에 대해서도 알아볼 것입니다. 참고로 dhcp서버프로그램을 개발하여 공식 배포하는 웹사이트의 URL은 다음과 같습니다.

http://www.isc.org/sw/dhcp/


15cde9d4f7ddca3e8f605d34da1176c6_1643255231_8072.png
 

2. DHCP서버 설치 및 구성파일들

 

이번 절에서는 리눅스를 DHCP서버로 작동하도록 하기 위한 설치를 하도록 하겠습니다. 리눅스서버에서 dhcp서버를 구축하는 일반적인 방법은 rpm패키지를 이용합니다. 이번 절에서는 rpm으로 먼저 설치하는 예와 설명을 먼저 하고 참고로 직접 컴파일하여 설치하는 예를 보도록 하겠습니다.

 

dhcp서버 rpm으로 설치 및 dhcp서비스 파일들

 

DHCP패키지가 들어있는 리눅스 CD CD-ROM드라이브에 넣은 후에 다음과 같이 작업합니다. dhcp서버를 rpm으로 설치하기 위하여 다음과 같은 두개의 rpm패키지 파일이 필요합니다. 리눅스소스를 제공하는 대부분의 FTP사이트에서 구할 수도 있고 리눅스 CD가 있으신 분들이라면 리눅스 CD rpm파일을 이용하셔도 됩니다.

 

어쨌든 dhcp서버를 서버로 구축하기 위해서는 다음과 같은 rpm패키지 파일이 필요합니다.

 

패키지 파일명

       

dhcp-3.0pl1-23

DHCP(Dynamic Host Configuration Protocol)서버와 중계 에이전트.

dhcp-devel-3.0pl1-23

DHCP 서버와 접속시키기 위한 개발용 헤더 파일들과 라이브러리들.

dhclient-3.0pl1-23

DHCP 서버와 접속시키기 위한 개발용 헤더 파일들과 라이브러리들.

 

사실 dhcp서버로 구축하기 위해서는 dhcp-3.0pl1-23패키지와 dhcp-devel-3.0pl1-23패키지만설치하면 됩니다. dhclient-3.0p11-23패키지는 리눅스를 dhcp클라이언트로 작동하도록 하기위한 패키지입니다. 하지만 설치하는 과정이므로 위의 3개를 모두 설치하도록 하겠습니다.

 

먼저 wget을 이용하여 ftp.superuser.co.kr에서 다운로드하도록 하겠습니다. 아래와 같이 wget을 이용하여 dhcp-3.0pl1-23.i386.rpm파일과 dhcp-devel-3.0pl1-23.i386.rpm  그리고 dhclient-3.0pl1-23.i386.rpm 을 다운로드 하십시요.

wget http://ftp.superuser.co.kr/pub/redhat/9/RPMS/dhcp-3.0pl1-23.i386.rpm

wget http://ftp.superuser.co.kr/pub/redhat/9/RPMS/dhcp-devel-3.0pl1-23.i386.rpm

wget http://ftp.superuser.co.kr/pub/redhat/9/RPMS/dhclient-3.0pl1-23.i386.rpm

위의 명령어를 그대로 입력만하면 바로 다운로드 됩니다.

 

그리고 다음은 다운로드한 3개의 패키지를 rpm으로 각각 설치 하였습니다. 설치방법은 rpm명령어에 Uvh라는 옵션을 주어서 간단히 설치하였습니다.

[root@bible pub]# rpm -Uvh dhcp-3.0pl1-23.i386.rpm

warning: dhcp-3.0pl1-23.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e

Preparing...                ########################################### [100%]

   1:dhcp                   ########################################### [100%]

[root@bible pub]#

[root@bible pub]# rpm -Uvh dhcp-devel-3.0pl1-23.i386.rpm

warning: dhcp-devel-3.0pl1-23.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e

Preparing...                ########################################### [100%]

   1:dhcp-devel             ########################################### [100%]

[root@bible pub]#

[root@bible pub]# rpm -Uvh dhclient-3.0pl1-23.i386.rpm

warning: dhclient-3.0pl1-23.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e

Preparing...                ########################################### [100%]

   1:dhclient               ########################################### [100%]

[root@bible pub]#

 

사실 이것이 dhcp서버 설치의 전부입니다. 너무 간단해서 뭐라 설명드릴 것도 없습니다. 참고로 컴파일하여 설치하는 예는 이절의 뒷부분에 별도로 설명해 두었으므로 참고하시기 바랍니다. , 그럼 이렇게 설치한 dhcp서버를 운영하기 위한 기본적인 관리유틸리티 및 데몬들에 대해서 알아보도록 하겠습니다.

 

 

DHCP데몬파일

 

dhcp서버데몬 : /usr/sbin/dhcpd

dhcp릴레이에이전트 데몬 : /usr/sbin/dhcrelay


다음은 dhcp데몬파일들 입니다. rpm으로 설치하였을 경우에 다음과 같은 dhcp서버데몬과 에이전트데몬이 생성이 됩니다.


DHCP
메인설정파일

 

dhcp서버의 설정파일 : /etc/dhcpd.conf

 

다음은 dhcp서버의 메인 설정파일입니다. dhcp서버에서 가장 중요한 설정파일로서 dhcp클라이언트들에게 IP를 어떻게 할당할 것인가에 대한 정책적인 설정과 할당할 수 있는 IP주소의 범위등이 구체적으로 설정되어 있는 파일입니다.

 

 

DHCP IP할당로그파일

 

dhcp IP할당로그파일 : /var/lib/dhcp/dhcpd.leases

 

다음은 dhcp서버가 dhcp클라이언트들에게 할당한 IP주소에 대한 로그를 저장하게될 dhcp서버의 IP할당로그파일입니다. 이 파일에는 dhcp서버가 dhcp클라이언트들에게 할당한 IP주소의 구체적인 내역이 저장되므로 반드시 살펴보셔야하는 파일입니다. , 앞부분의 그림을 통하여 설명드렸듯이 DHCP서버는 DHCP클라이언트에게 동적으로 IP주소를 할당하고 회수하는 역할을 합니다. 이런 DHCP서버가 DHCP클라이언트에게 할당한 IP주소들의 기록을 로그파일에 기록하는데 그 로그파일 이름이  /var/lib/dhcp/dhcpd.leases입니다.

 

 

DHCP서버 실행과 종료 및 재시작

 

dhcp서버를 시작하고 종료, 재시작하는 방법에 대한 설명입니다. 방금 rpm으로 설치하였을 경우에는 /etc/rc.d/init.d/dhcpd라는 스크립트파일이 존재합니다. 이 파일을 이용하여 dhcp서버를 시작/종료/재시작할 수 있습니다. , 이제 dhcp서버데몬을 실행/종료/재시작하는 예를 간단히 보도록 하겠습니다. 먼저 아래의 예와 같이 /etc/rc.d/init.d/dhcpd스크립트에 start라는 옵션을 주시면 dhcpd데몬이 실행됩니다.

[root@bible root]# /etc/rc.d/init.d/dhcpd start

Starting dhcpd: [  OK  ]

[root@bible root]#

 

그리고 다음과 같이 stop이라는 옵션을 주시면 DHCP서버데몬을 종료합니다.

[root@bible root]# /etc/rc.d/init.d/dhcpd stop

Shutting down dhcpd: [  OK  ]

[root@bible root]#

 

그리고 다음과 같이 restart라고 하시면 dhcp데몬을 재시작합니다.

[root@bible root]# /etc/rc.d/init.d/dhcpd restart

Shutting down dhcpd: [  OK  ]

Starting dhcpd: [  OK  ]

[root@bible root]#

 

이번에는 dhcpd데몬이 실행되어 있는가를 확인하는 예입니다. , ps라는 명령어로 dhcpd데몬이 실행되어 있는가를 확인하였습니다.

[root@bible root]# ps -ef | grep dhcp

root      4376     1  0 15:31 ?        00:00:00 /usr/sbin/dhcpd

root      4380  1982  0 15:31 pts/0    00:00:00 grep dhcp

[root@bible root]#

 

 

dhcp서버 소스로 컴파일하여 설치하기

 

이절의 앞부분에서 설명드렸듯이 리눅스에서 dhcp서버를 구축할 때에는 거의 대부분 rpm으로 하지만 참고로 컴파일하여 설치하는 방법에 대해서 간단히 설명하도록 하겠습니다. dhcp서버를 컴파일하여 설치하는 전체적인 과정은 다음과 같습니다.

 

1.   dhcp소스가져오기

2.   가져온 파일 확인하기

3.   dhcp소스 압축풀기

4.   configure하기

5.   컴파일하기(make)

6.   컴파일된 파일 설치하기(make install)

 

먼저 소스를 다운로드하는 것부터 설명하도록 하겠습니다. 아래의 예와같이 wget을 이용하여 ftp.isc.org에서 dhcp압축소스파일을 가져옵니다.

[root@bible root]# wget ftp://ftp.isc.org/isc/dhcp/dhcp-3.0.1.tar.gz

--01:09:43--  ftp://ftp.isc.org/isc/dhcp/dhcp-3.0.1.tar.gz

           => `dhcp-3.0.1.tar.gz'

Resolving ftp.isc.org... done.

Connecting to ftp.isc.org[204.152.184.110]:21... connected.

Logging in as anonymous ... Logged in!

==> SYST ... done.    ==> PWD ... done.

==> TYPE I ... done.  ==> CWD /isc/dhcp ... done.

==> PORT ... done.    ==> RETR dhcp-3.0.1.tar.gz ... done.

Length: 848,296 (unauthoritative)

100%[======================================================================>] 848,296      105.48K/s    ETA 00:00

01:09:53 (105.48 KB/s) - `dhcp-3.0.1.tar.gz' saved [848296]

[root@bible root]#

[root@bible root]# ls -l dhcp-3.0.1.tar.gz

-rw-r--r--    1 root     root       848296 Jan 15 01:09 dhcp-3.0.1.tar.gz

[root@bible root]#

 

그리고 다운로드한 dhcp압축소스파일을 tar를 이용하여 압축해제 하였습니다. 압축을 풀게되면 “dhcp-버전이름의 디렉토리가 생성이 되고 그 안에 파일들이 모두 저장됩니다.

[root@bible root]# tar xvfz dhcp-3.0.1.tar.gz

dhcp-3.0.1/

dhcp-3.0.1/client/

dhcp-3.0.1/client/scripts/

dhcp-3.0.1/client/scripts/freebsd

dhcp-3.0.1/client/scripts/bsdos

dhcp-3.0.1/client/scripts/nextstep

dhcp-3.0.1/client/scripts/linux

dhcp-3.0.1/client/scripts/netbsd
.....
중략
.....

 

그리고 “dhcp-버전디렉토리로 이동한 후에 컴파일을 하기위한 configure를 실행한 것입니다. 이 결과 make에서 사용되는 Makefile이 생성될 것입니다.

[root@bible dhcp-3.0.1]# ./configure

System Type: linux-2.2

make[1]: Entering directory `/root/dhcp-3.0.1/work.linux-2.2'

Making links in common

make[2]: Entering directory `/root/dhcp-3.0.1/work.linux-2.2/common'

make[2]: Leaving directory `/root/dhcp-3.0.1/work.linux-2.2/common'

Making links in minires

make[2]: Entering directory `/root/dhcp-3.0.1/work.linux-2.2/minires'

make[2]: Leaving directory `/root/dhcp-3.0.1/work.linux-2.2/minires'
...
중략

 

그리고 이제 make를 실행하여 컴파일을 합니다.

[root@bible dhcp-3.0.1]# make

make[1]: Entering directory `/root/dhcp-3.0.1/work.linux-2.2'

Making all in common

make[2]: Entering directory `/root/dhcp-3.0.1/work.linux-2.2/common'

cc -g  -I/root/dhcp-3.0.1  -I/root/dhcp-3.0.1/includes -DLINUX_MAJOR=2 -DLINUX_MINOR=4     -c -o raw.o raw.c

cc -g  -I/root/dhcp-3.0.1  -I/root/dhcp-3.0.1/includes -DLINUX_MAJOR=2 -DLINUX_MINOR=4     -c -o parse.o parse.c

cc -g  -I/root/dhcp-3.0.1  -I/root/dhcp-3.0.1/includes -DLINUX_MAJOR=2 -DLINUX_MINOR=4     -c -o nit.o nit.c

cc -g  -I/root/dhcp-3.0.1  -I/root/dhcp-3.0.1/includes -DLINUX_MAJOR=2 -DLINUX_MINOR=4     -c -o icmp.o icmp.c

.....
중략
.....

sed -e "s#ETCDIR#/etc#g" -e "s#DBDIR#/var/state/dhcp#g" \

        -e "s#RUNDIR#/var/run#g" < omshell.1 >omshell.man1

nroff -man omshell.man1 >omshell.cat1

make[2]: Leaving directory `/root/dhcp-3.0.1/work.linux-2.2/dhcpctl'

make[1]: Leaving directory `/root/dhcp-3.0.1/work.linux-2.2'
[root@bible dhcp-3.0.1]#

 

그리고 이번에는 컴파일 결과로 생성된 파일들을 복사(설치)하기 위하여 “make install”을 실행합니다.

[root@bible dhcp-3.0.1]# make install

make[1]: Entering directory `/root/dhcp-3.0.1/work.linux-2.2'

Installing in common

make[2]: Entering directory `/root/dhcp-3.0.1/work.linux-2.2/common'

for dir in /usr/man/man5; do \

  foo=""; \

  for bar in `echo ${dir} |tr / ' '`; do \

.....
중략
.....

install -c -m 444 omshell /usr/bin

chmod 755 /usr/bin/omshell

install -c  omshell.man1  \

                        /usr/man/man1/omshell.1

make[2]: Leaving directory `/root/dhcp-3.0.1/work.linux-2.2/dhcpctl'

make[1]: Leaving directory `/root/dhcp-3.0.1/work.linux-2.2'

[root@bible dhcp-3.0.1]#

 

, 이제 컴파일 설치의 결과로 여러가지 파일들이 설치되었을 것입니다. 이중에서 다음 3가지 파일의 꼭 확인하시기 바랍니다.

[root@bible dhcp-3.0.1]# ls -l /usr/sbin/dhcpd

-rwxr-xr-x    1 root     root      3071102 Jan 15 01:11 /usr/sbin/dhcpd

[root@bible dhcp-3.0.1]#

[root@bible dhcp-3.0.1]# ls -l /sbin/dhclient

-rwxr-xr-x    1 root     root      2378091 Jan 15 01:11 /sbin/dhclient

[root@bible dhcp-3.0.1]#

[root@bible dhcp-3.0.1]# ls -l /usr/sbin/dhcrelay

-rwxr-xr-x    1 root     root      1314487 Jan 15 01:11 /usr/sbin/dhcrelay

[root@bible dhcp-3.0.1]#

 

/usr/sbin/dhcpd파일은 dhcp서버의 데몬파일이며 /sbin/dhclient dhcp클라이언트파일이고, /usr/sbin/dhcrelay파일은 dhcp릴레이 에이전트파일입니다.

 

 

 

3. DHCP서버 설정파일 dhcpd.conf

 

DHCP의 메인 설정파일을 dhcpd.conf파일입니다. 하지만 이 파일은 RPM으로 DHCP서버를 설치할 때에 생성이 되지 않습니다. 단지 dhcpd.conf.sample파일이 /usr/share/doc/dhcp-3.0pl1/디렉토리에 존재할 뿐입니다. 따라서 아래와 같이 이 디렉토리에존재하는 dhcpd.conf.sample파일을 /etc/디렉토리로 복사하시기 바랍니다.

[root@bible root]# cp /usr/share/doc/dhcp-3.0pl1/dhcpd.conf.sample /etc/dhcpd.conf

[root@bible root]#

[root@bible root]# ls -l /etc/dhcpd.conf

-rw-r--r--    1 root     root          852 Feb 26 14:53 /etc/dhcpd.conf

[root@bible root]#

 

다음은 /etc/dhcpd.conf파일의 기본설정과 각 항목별 용도와 설정방법을 설명한 것입니다.

 

ddns-update-style interim;

ignore client-updates;

 

subnet 192.168.0.0 netmask 255.255.255.0 {

==> 192.168.0.0/255.255.255.0네트워크의 범위에 해당하는IP주소 가운데 아래 reage항목에 나오는바와 같이 192.168.0.128 “부터 “192.168.0.255”까지의 IP주소를 DHCP클라이언트 컴퓨터에 유동공인IP주소를 할당하기 위한 설정입니다.

 

# --- default gateway

        option routers                  192.168.0.1;

==> DHCP클라이언트들이 사용할 기본게이트웨이입니다. , IP주소를 할당받은 DHCP클라이언트들은 여기에 설정된 IP주소를 기본라우터주소로 사용하며 외부로 통신을 하기위해서 이 기본라우터를 통해서 통신이 이루어 집니다뒷부분에 설명되겠지만 DHCP클라이언트에서는 자체 라우터주소가 설정되어 있으면 안되는 이유가 여기에 있습니다.

 

        option subnet-mask              255.255.255.0;

==> IP주소를 할당받은 DHCP클라이언트가 사용할 Subnet Mask를 의미합니다.

 

        option nis-domain               "domain.org";

        option domain-name              "domain.org";

==> DHCP서버의 자체 도메인이름을 의미합니다. DHCP서버로 구축된 서버의 도메인명을 FQDN형식으로 설정하시면 됩니다. 예를 들면 dhcp.superuser.co.kr와 같습니다.

 

        option domain-name-servers      192.168.1.1;

==> IP주소를 할당받은 DHCP클라이언트가 사용할 DNS서버를 설정합니다. , IP주소를 할당받은 DHCP클라이언트들은 여기에 설정된 DNS를 도메인네임서버로 사용합니다. 따라서 DHCP클라이언트는 자체적으로 DNS 설정을 하시면 안됩니다.

 

        option time-offset              -18000; # Eastern Standard Time

#       option ntp-servers              192.168.1.1;

#       option netbios-name-servers     192.168.1.1;

# --- Selects point-to-point node (default is hybrid). Don't change this unless

# -- you understand Netbios very well

#       option netbios-node-type 2;

 

        range dynamic-bootp 192.168.0.128 192.168.0.255;

==> DHCP클라이언트에게 할당할 수 있는 IP주소의 범위입니다. 192.168.0.128 IP주소부터 192.168.0.255 IP주소까지를 할당할 수 있습니다.

 

        default-lease-time 21600;

==> 할당시간이 설정되어 있지않은 DHCP클라이언트가 할당받은 IP주소를 가지고 있을 수 있는 시간을 의미합니다. (초단위설정)

 

        max-lease-time 43200;

==> 할당된 IP주소를 DHCP클라이언트가 임대(lease)할 수 있는 최대 시간을 의미합니다. (초단위설정)

 

        # we want the nameserver to appear at a fixed address

        host ns {

==> DHCP서버를 이용하여 통신을 하는 많은 DHCP클라이언트들 가운데 특정호스트에게만 항상 고정IP를 사용할 수 있도록 하기위한 설정입니다.

 

                next-server marvin.redhat.com;

 

                hardware ethernet 12:34:56:78:AB:CD;

==> 고정IP주소를 할당할 DHCP클라이언트의 MAC주소를 설정하셔야합니다. 동일한 네트웍에 존재하는 컴퓨터들의 MAC주소를 확인하려면 “arp -n”명령어를 사용하시면 됩니다.

 

                fixed-address 207.175.42.254;

==> 위의 MAC주소를 가진 DHCP클라이언트에게 할당할 고정 IP주소입니다.

}

}

 

 

 

4. DHCP서버의 네트워크 설정

 

DHCP서버로 사용되기 위해서는 DHCP서버의 ethernet에 멀티캐스트가 가능하도록 설정되어 있어야합니다. 이를 확인하기 위해서는 아래의 예에서는 ifconfig명령어를 이용하여 eth0라는 이더넷의 네트워크 설정상황을 확인한 것입니다.

[root@bible root]# ifconfig eth0

eth0      Link encap:Ethernet  HWaddr 00:D0:B7:B8:81:C8 

          inet addr:192.168.0.111  Bcast:192.168.0.255  Mask:255.255.255.0

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:3791 errors:0 dropped:0 overruns:0 frame:0

          TX packets:2220 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:100

          RX bytes:1120310 (1.0 Mb)  TX bytes:289124 (282.3 Kb)

          Interrupt:18 Base address:0x5400 Memory:fb101000-fb101038

[root@bible root]#

위의 ifconfig의 실행결과에서 볼 수 있듯이 “UP BROADCAST RUNNING MULTICAST”라는 문자열이 있다면 eth0는 멀티캐스트가 가능하도록 설정되어 있다는 것을 의미합니다.

 

그리고 다음은 route명령어를 이용하여 라우팅설정을 한 것입니다.

[root@bible root]# route add -host 255.255.255.255 dev eth0

[root@bible root]#
[root@bible root]# netstat -nr

Kernel IP routing table

Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface

255.255.255.255 0.0.0.0         255.255.255.255 UH        0 0          0 eth0

192.168.0.0     0.0.0.0         255.255.255.0   U         0 0          0 eth0

169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 eth0

127.0.0.0       0.0.0.0         255.0.0.0       U         0 0          0 lo

0.0.0.0         192.168.0.1     0.0.0.0         UG        0 0          0 eth0

[root@bible root]#

위에서 사용한 route라는 명령어에 대한 자세한 설명은 이 웹사이트(www.linux.co.kr) "리눅스 네트워크 관리실무” 강좌에서 네트워크 라우팅테이블 관리하는 route 활용실무”강좌편을 보시기 바랍니다. route명령어를 이용한 리눅스 서버의 라우팅설정과 위의 “netstat -nr”의 결과로 볼 수 있는 라우팅테이블을 보는 방법까지 자세히 설명하였습니다.

 

 

 

5. DHCP서버를 사용하는 DHCP클라이언트의 설정방법

 

, 이렇게 해서 우리는 DHCP서버를 구축하였습니다. 이제 설치한 DHCP서버에게서 IP정보를 할당 받아와서 인터넷을 사용할 클라이언트들의 설정내용을 보도록 하겠습니다. 우리가 방금 설치한 DHCP서버는 리눅스이지만 DHCP서버에게서 IP정보를 동적으로 할당받아 올 수 있는 DHCP클라이언트는 윈도우든 리눅스든 관계없습니다.

 

리눅스에서 자동 IP할당 받기위한 DHCP클라이언트 설정

 

리눅스를 DHCP클라이언트로 사용하려고 할 때의 설정내용입니다. , 지금 설정한 리눅스는DHCP클라이언트로서 인터넷을 하기 위하여 DHCP서버로부터 IP주소를 할당받아올 것입니다. 우리는 리눅스가 DHCP서버로부터 어떻게 설정하면 IP정보를 받아올 수 있는가에 대해서 알아보고자 하는 것입니다.

 

결론적으로 아주 간단한 네트워크 설정작업만으로 IP주소를 할당받을 수 있습니다. , 리눅스 네트워크설정 유틸리티인 netconfig를 실행하여“Use dynamic IP configuration (BOOTP/DHCP)”을 선택합니다. 이와 같이 설정하면 다음과 같이 /etc/sysconfig/network-scripts/ifcfg-eth0파일이 다음과 같이 설정됩니다.

[root@file root]# cat /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

ONBOOT=yes

BOOTPROTO=dhcp

[root@file root]#

굳이 netconfig유틸리티를 사용하지 않더라도 /etc/sysconfig/network-scripts/ifcfg-eth0 파일을 vi로 열어서 위의 내용을 직접 그대로 설정만 해주시면 됩니다.

 

이제 시스템을 재부팅하거나 다음과 같이 network스크립트를 재시작하시면 DHCP서버로부터 IP주소를 받아 올 수 있습니다.

[root@bible dhcp]# /etc/rc.d/init.d/network restart

Shutting down interface eth0:  [  OK  ]

Shutting down loopback interface:  [  OK  ]

Setting network parameters:  [  OK  ]

Bringing up loopback interface:  [  OK  ]

Bringing up interface eth0:  [  OK  ]

Bringing up interface eth1:  [  OK  ]

[root@bible dhcp]#


이와 같이 리눅스에서의 DHCP클라이언트 설정은 매우 간단합니다. , 그럼 이렇게 설정되어 있는 리눅스가 DHCP서버로부터 자동으로 IP주소를 할당 받아오는가를 확인해 보도록 하겠습니다.  먼저 이 리눅스시스템을 재부팅하십시요. 그리고 다음과 같이 ifconfig명령어를 실행하여 IP할당정보를 확인해 보시기 바랍니다.


15cde9d4f7ddca3e8f605d34da1176c6_1643255300_1871.png
 


위의 화면의 “inet addr:”이라는 항목에 할당된 값이 이 리눅스 시스템의 IP주소값입니다., 현재 이 리눅스 시스템에 할당된 IP주소는 192.168.0.146입니다. 그리고 다시 리눅스 시스템을 재부팅하십시요. 그리고 다시한번 ifconfig를 실행하여 할당된 IP주소를 확인해 보십시요.


 15cde9d4f7ddca3e8f605d34da1176c6_1643255326_5783.png


, 이번에는 리눅스 시스템에 할당된 IP주소가 192.168.0.211이라는 것을 확인할 수 있습니다. 재부팅할 때마다 이렇게 DHCP서버가 현재 사용되지않은 IP주소가운데 할당가능한 IP주소를 동적으로 할당하게 됩니다.

 

, 이렇게 해서 리눅스 시스템의 DHCP클라이언트 설정을 하고 IP주소를 동적으로 할당받는예까지 모두 보았습니다. 이번에는 윈도우 PC에서 IP를 자동할당 받기위한 설정을 해보도록 하겠습니다.

 

 

윈도우에서 자동 IP할당받기 위한 DHCP클라이언트설정


이번에는 윈도우를 DHCP클라이언트로 설정하여 DHCP서버로부터 IP정보를 받아올 수 있도록 해보겠습니다. 먼저 아래 그림과 같이 [제어판]에서 [네트워크연결]을 클릭하여 실행합니다 


15cde9d4f7ddca3e8f605d34da1176c6_1643255348_5844.png
 

그러면 아래 그림과 같이 [네트워크 연결]창이 열립니다. 이 창에서 현재 이 윈도우PC의 이더넷(랜카드)설정을 하기 위하여 로컬영력연결이라는 항목에서 마우스 오른쪽버튼을 클릭하여 아래 그림과 같이 [속성]메뉴를 선택합니다. 아래 마우스 포인터를 참고하십시요.



 15cde9d4f7ddca3e8f605d34da1176c6_1643255390_8877.png
 

그런 다음 아래 그림과 같이 [로컬영역연결속성]창이 뜨게 됩니다. 여기서 [인터넷 프로토콜(TCP/IP)”항목을 선택하고 [속성]버튼을 클릭합니다. 아래 그림의 마우스 포인터를 참고바랍니다.


15cde9d4f7ddca3e8f605d34da1176c6_1643255417_926.png
 

그런 다음 아래 그림과 같이 인터넷 프로토콜(TCP/IP) 등록정보창에서 자동으로 IP주소받기(O)를 선택합니다. DHCP서버에서 IP주소를 할당받아와서 사용할 것이기 때문에 이 PC의 자체 IP주소설정은 필요하지 않기 때문입니다.

그리고 또자동으로 DNS서버 주소받기(B)를 선택하신 다음 [고급]버튼을 클릭합니다. DHCP서버에서 이 PC에서 사용할 DNS IP주소를 가져올 것이기 때문에 이 윈도우PC의 자체 DNS설정은 필요하지 않습니다아래 그림의 설정내용과 마우스 포인터를 참조바랍니다.
 


15cde9d4f7ddca3e8f605d34da1176c6_1643255446_4683.png


그런 다음 [고급 TCP/IP설정]창에서 아래와 같이 기본게이트웨이에 아무런 값도 설정하지 않습니다. DHCP서버에서 이 윈도우PC에서 사용할 게이트웨이 주소를 할당받아 올 것이기 때문에 이 PC의 자체 게이트웨이 설정은 필요하지 않습니다. 그런 다음 [확인]버튼을 클릭하십시요. 


15cde9d4f7ddca3e8f605d34da1176c6_1643255474_5444.png


, 이렇게 설정을 하셨다면 이제 이 윈도우PC가 자동으로 IP주소를 DHCP서버로부터 자동으로 할당받아 오는가를 테스트해 보겠습니다. 먼저, 이렇게 설정한 윈도우PC를 재부팅합니다. 부팅이 된 후에 윈도우의 [시작]메뉴에서 [실행]메뉴를 선택합니다. 그리고 아래 그림과 같이 DOS창을 열기 위하여 cmd라는 명령어를 입력한 후에 확인을 클릭합니다.



 15cde9d4f7ddca3e8f605d34da1176c6_1643255505_5215.png




위와 같이 cmd를 입력하면 아래 그림과 같이 DOS창이 열립니다. 이 상태에서 아래 그림처럼 ipconfig라는 명령어를 입력합니다. ipconfig라는 명령어는 현재 이 윈도우PC IP주소와 네트워크 설정내역을 확인하는 것입니다아래 그림에서 확인하셔야 할 것은 결과화면에서의 “IP Address”에 할당된 값입니다. , 현재 이 PC에 할당된 IP주소는 192.168.0.9입니다.


 

15cde9d4f7ddca3e8f605d34da1176c6_1643255531_1719.png
 


, 이제 다시 윈도우PC를 재부팅합니다. 그리고 앞에서 했던 동일한 방법으로 [시작]->[실행]을 클릭하여 DOS창을 여십시요. 그리고 다시한번 ipconfig라는 명령어를 입력합니다. 그리고 이번에 할당된 IP주소를 확인하시기 바랍니다. 보시는 바와 같이 192.168.0.169가 할당되었습니다. , IP주소가 임의대로(동적으로) 할당되는 것을 확인하였습니다.


15cde9d4f7ddca3e8f605d34da1176c6_1643255561_7957.png



이렇게 하여 우리는 DHCP서버를 구축하고 DHCP클라이언트(리눅스,윈도우)에서 자동으로 IP주소와 네트워크정보를 할당받아서 사용하는 방법과 예를 모두 보았습니다. 여기까지 모두 이해하셨다면 이제 여러분들은 IP주소를 자동으로 할당하는 DHCP서버를 구축할 수 있는 능력을 보유하게 된 것입니다.


   

 


관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,032 명
  • 현재 강좌수 :  35,772 개
  • 현재 접속자 :  212 명