반응형

 

  • CentOS 7.7 DHCP 서버 구축

DHCP 서버 구축은 굉장히 간단합니다. dhcp 관련 패키지 설치 후 임대할 네트워크 정보를 입력해주면 됩니다.

yum -y install dhcp*

vi /etc/dhcp/dhcpd.conf

subnet 192.168.0.0 netmask 255.255.255.0 {
        range 192.168.0.100 192.168.0.200;
        option subnet-mask 255.255.255.0;
        option routers 192.168.0.254;
        option broadcast-address 192.168.0.255;
        option domain-name-servers 8.8.8.8, 168.126.63.1;
        default-lease-time 7200;
        max-lease-time 36000;
}
:wq

systemctl start dhcpd
systemctl enable dhcpd
  • range 192.168.0.100 192.168.0.200 : 임대할 IP의 목록
  • option subnet-mask 255.255.255.0 : 해당 네트워크의 넷마스크
  • option routers 192.168.0.254 : 게이트웨이 주소
  • option broadcast-address 192.168.0.255 : 브로드캐스트로 사용할 주소
  • option domain-name-servers 8.8.8.8, 168.126.63.1 : DNS 서버의 주소를 지정
  • default-lease-time 7200 : 임대 시간 (초단위)
  • max-lease-time 36000 : 갱신 과정을 거쳐 최대로 가지고 있을 수 있는 시간 (초단위)

DHCP 서버는 UDP 67번 포트, 클라이언트는 UDP 68번 포트를 사용하므로 이에 맞춰 방화벽 정책을 수정 후 테스트 하시면 됩니다.

당연히 클라이언트에서는 정적 IP 설정이 아닌 dhcp 로 설정 해두어야 합니다.

또한 DHCP 기능은 리눅스, 윈도우, 공유기, 라우터 등 다양한 장비에서 지원 합니다. 하지만 DHCP는 Discover 에서 브로트캐스트 통신으로 DHCP 서버를 찾기 때문에, LAN 구간을 넘어선 곳에 DHCP를 설정하고 싶다면 게이트웨이가 되는 네트워크 장비의 DHCP relay agent 기능을 지원하는지 확인 후 해당 기능을 이용하여 설정해주어야 합니다.

 

반응형
반응형

 

  • DHCP 란?

DHCP는 동적으로 IP,NETMASK,GATEWAY,DNS와 같은 네트워크 정보를 할당해주는 프로토콜 입니다. DHCP 서버는 이에 대한 네트워크 정보를 가지고 있다가, 클라이언트로부터 요청이 오면 자신이 가지고 있는 정보를 전달해줍니다.

사실 DHCP를 사용하지 않고 정적(static)으로 설정해주어도 큰 차이가 없지만, 여러개의 클라이언트를 관리해야할 경우 유저들이 IP를 변경하거나 하면 IP 충돌 등 관리가 힘들기 때문에 좀 더 편리하도록 DHCP서버를 이용하여 동적으로 제공하고 서버에서 관리 하도록 합니다.

IT를 공부하지 않더라도 아래 이미지는 한번씩 보았을겁니다. 아래 이미지가 윈도우에서 DHCP 설정하는 예시 입니다.

 

  • DHCP의 통신 흐름

DHCP는 크게 4가지의 통신 흐름을 갖습니다. 이 4가지의 통신 흐름을 각 패킷의 앞글자만 따서 DORA 과정이라고도 합니다.

  • Discover(Client) : 클라이언트가 DHCP 서버를 찾기 위한 패킷이며 브로드캐스트로 전송하여 LAN상에 DHCP가 있는지 찾습니다.
  • Offer(Server) : 서버가 Discover 패킷을 받았으면 자신이 임대해줄 수 있는 네트워크 정보와 함께 자신의 IP를 전달 합니다.
  • Request(Client) : 클라이언트가 전달받은 네트워크 정보를 사용하겠다고 DHCP에 전달하는 패킷 입니다. Offer에서 DHCP 서버의 IP를 전달 받았으니 이번엔 브로드캐스트가 아닌, DHCP서버 에게만 패킷을 전달 합니다.
  • Ack(Server) : Request를 전달받은 DHCP가 최종적으로 승인을 내리고 네트워크 정보를 임대해줍니다.

간단히 그림으로 보자면 아래와 같으며, DHCP를 통해 어떤식으로 IP를 받아오는가에 대해 알면 됩니다. 패킷까지 까서 구경할겸 한번 들여다보고 "이런식으로 통신이 되는구나" 정도만 알면 되고, 굳이 DHCP 패킷의 구조까지 외울 필요는 없다고 생각 합니다.

 

  • 임대(Lease), 갱신(Renewal), 반환(Release)

  • 임대(Lease)

임대 과정은 위에서 말한 DORA를 통해 IP를 받는 과정 입니다. iptime의 경우 기본적으로 7200초(2시간)이 설정되어 있다고 합니다.

만약 유동 인구가 많은 카페같은곳에 임대 시간을 10시간, 20시간으로 설정해버리면 더이상 제공할 주소가 없어져버릴 수 있기 때문에 임대 시간을 적절히 설정해야 합니다.

흔히 보는 윈도우의 ipconfig /renew 가 임대 과정을 거칩니다.

 

  • 갱신(Renewal)

갱신은 말 그대로 IP 임대 시간을 갱신한다는 의미 입니다. 만약 2시간으로 설정 되어 있는데, IP를 임대받은 클라이언트가 계속 사용중이여서 2시간마다 계속 DORA 과정을 거치게 되면 불필요한 트래픽이 발생할 것 입니다.

이런 이유로 임대 시간이 모두 차기 전, 약 두번의 시도를 통해 갱신을 시도 합니다.

  1. 임대 시간의 50%가 지낫을 때 갱신을 시도 합니다. 갱신에 성공하면 설정 되어있던 임대 시간(2시간)만큼 추가적으로 할당되며, 실패 시 갱신을 보류 합니다.
  2. 임대시간의 87.5%가 지낫을 때 두번째 갱신을 시도 합니다. 갱신에 성공하면 설정 되어있던 임대 시간(2시간)만큼 추가적으로 할당되며, 실패 시 갱신이 종료 됩니다.

갱신 과정은 이미 DORA 과정에서 DHCP의 IP를 알아왔기 때문에 유니캐스트 통신을 시도하며 위에서처럼 갱신이 2번 모두 실패할 경우 아래의 반환 과정을 거칩니다.

 

  • 반환(Release)

갱신 과정에 모두 실패하여 임대 시간이 모두 지낫거나, IP 주소를 더이상 사용할 필요가 없을 때 DHCP에게 할당받았던 IP를 반환 합니다.

만약, 임대 시간이 모두 지낫는데 클라이언트와 DHCP 서버끼리 통신이 되지 않을 경우 DHCP는 그냥 반환 받은것으로 처리해버립니다.

흔히 하는 윈도우의 ipconfig /release 명령어가 반환 과정을 거칩니다.

 

반응형

'APP & Server > DHCP' 카테고리의 다른 글

[DHCP] CentOS 7.7 DHCP 서버 구축  (0) 2020.02.16

+ Recent posts