옴뇸뇸 2022. 10. 4. 14:47

DHCP(Dynamic Host Configuration Protocol)
  - 자동으로 host에게 IP 주소를 할당
  - 동작 순서(사용되는 패킷 종류)
        * client에 IP가 없는 상태에서 진행

 

dhcp,  출저 : wikipedia


Discover : client -> broadcast, 네트워크의 DHCP 서버를 찾는 패킷
Offer       : server -> broadcast, discover 패킷을 받은 server는 '내가 어떤 IP를 줄 수 있다' 라는
                 패킷을 전송, 해당 IP 주소를 임시할당 상태로 분류(DHCP database 내부에서 할당 대기 상태로 전환)
Request : client -> broadcast(or unicast), 제일 먼저 받은 offer를 '사용하겠다'라고 알려주는 패킷을 전송
Ack         : server -> broadcast(or unicast), offer가 채용된 server는 IP 정보 및 옵션들이 들어있는 패킷을 전송
                 (offer가 채용되지 못한 server는 할당 대기 상태인 IP를 다시 미할당으로 분류)

이 후에 ack, 패킷을 받은 client는 IP 정보와 각종 옵션을 IP 설정에 적용

 

 

 

Relay agent

  - DHCP 클라이언트와 서버가 서로 다른 네트워크에 있는 경우 DHCP 패킷을 중계 해주는 역할

  - 형식

      (config-if)# ip helper-address <dhcp server ip address>

 


실습 구성도

서버는 네트워크의 첫번째 ip 주소부터 사용, 게이트웨이는 네트워크의 마지막 ip 주소를 사용할 때

각 네트워크의 PC에 DHCP로 ip주소를 할당 해보려 한다

 

routing 설정 완료
DHCP pool 생성

routing 설정까지 마친 후 dhcp 서버에서 각 네트워크에 할당할 pool을 생성 해준다

 

Seoul PC0 dhcp 성공, Busan PC1 dhcp 실패

하지만 DHCP server와 동일 네트워크에 있는 PC 0번만 성공적으로 ip 주소를 받아오고

다른 네트워크에 있는 PC 1번은 ip 주소를 받지 못한 것을 확인할 수 있다

이는 브로드캐스팅을 외부 네트워크로 발송하지 않는 Router의 특성으로 인해

브로드캐스팅 기반으로 작동하는 DHCP가 외부 네트워크로 발송되지 못하기 때문이다

이를 해결하기 위해서는 router에 relay agent 기능을 설정해야 한다

이때 내부 네트워크 쪽 인터페스에 설정 해줘야 함을 주의한다

 

Busan과 Jeju router에 relay agent 설정
Busan PC 1, Jeju PC 2 dhcp 성공

relay agent를 설정 해주니 다른 네트워크에 있는 PC에도 생성한 pool대로 잘 할당되는 것을 확인할 수 있다

 


DHCP server를 사용하는 것이 아니라 router에 직접 DHCP를 설정 할 수도 있다

 

Seoul router에 dhcp 설정

ip dhcp pool <범위이름>

  network <대표주소> <서브넷마스크>

  default-router <지정할 GW 주소>

  dns-server <지정할 dns 주소>

ip dhcp excluded-address <제외할 ip 시작 주소> <제외할 ip 끝 주소>

 

DHCP server에서 서비스를 껐음에도 불구하고 Seoul PC에 잘 할당 되는 것을 확인할 수 있다