DHCP(Dynamic Host Configuration Protocol)
✒️ 2025-05-22 15:13 내용 수정
해당 IP 주소와 기타 관련 구성 정보를 IP 호스트에 자동으로 제공하는 클라이언트/서버 프로토콜
참고 자료 : Windows Server DHCP(동적 호스트 구성 프로토콜) 서버란?, NordVPN 동적 호스트 프로토콜(DHCP)의 뜻과 작동 원리 알아보기, 위키백과 동적 호스트 구성 프로토콜
- 서브넷 카스크 및 기본 게이트 웨이 정보를 ip 호스트에 자동으로 제공해준다.
- 인터넷의 TCP/IP 프로토콜에서 각 컴퓨터들은 고유한 IP 주소를 가져야만 인터넷에 접속할 수 있다.
- DHCP를 통해 서버에 필요한 TCP/IP 구성 정보를 가져올 수 있다.
- 대부분 가정용 네트워크에서는 Router가 IP 주소를 장치에 할당하는 DHCP 서버 역할을 한다.
- DHCP가 없다면 수동으로 장치마다 IP 주소를 할당해야 하기 때문에 시간 소모가 크고 작업이 비효율적이다.
DHCP 작동(DORA)
- DHCP Discover : 장치 -> DHCP 서버, 장치는 네트워크에 연결 시 DHCP에 브로드캐스트 메시지를 통해 IP 주소 할당을 요청한다.
- DHCP Offer : DHCP 서버 -> 장치, DHCP에서 요청을 받아들여 주소를 할당하고, 해당 주소를 이용하여 장치의 네트워크를 모니터링한다.
- 서버는 IP 주소 정보를 포함한 네트워크 정보의 할당 요청, IP 주소 정보, 단말의 MAC 주소 정보를 네트워크 정보화 함께 전송한다.
- DHCP Request : 장치 -> DHCP 서버, 브로드캐스트 메시지로 단말기가 받은 IP 주소를 사용하겠다고 승낙한다.
- DHCP Ack : DHCP 서버 -> 장치, 서버는 장치에서 보낸 메시지에서 장치의 MAC 주소와 매칭되는 IP 주소와 게이트웨이 주소를 확정시켜준다.
| DORA | 설명 |
|---|---|
| Discover | 클라이언트가 서버에서 ip 요청 |
| Offer | 서버가 클라이언트에게 ip 제안 |
| Request | 클라이언트가 서버의 ip 제안을 승락 |
| Ack | 서버가 거래 승인을 확인(긍정 응답) |
DHCP 네트워킹
- 기본 게이트웨이(네트워크#게이트웨이(gateway)), 서브넷 마스크(네트워크#서브넷과 넷마스크), DNS 서버(DNS) 옵션을 포함하고 있다.
- DHCP의 IP 주소 할당 방식
- 동적 할당(Dynamic Allocation) : 관리자가 DHCP에 IP 주소를 유보한 뒤, 로컬 네트워크에 있는 DHCP 클라이언트가 네트워크 초기화 단계에서 DHCP 서버로부터 IP를 요청하는 방식.
- 자동 할당(Automatic Allocation) : 관리자가 정한 규칙에 따라 DHCP 서버가 IP 주소를 클라이언트에 할당하는 방식.
- 수동 할당(Manual Allocation) : 관리자가 각 클라이언트에 대한 고유한 식별자를 IP 주소에 수동 할당하는 방식
설치
yum install -y dhcp로 DHCP 패키지를 다운 받고,rmp -aq | grep dhcp로 패키지 설치를 확인한다.
- DHCP 서버는 자신이 제공할 ip 대역 중 하나를 할당 받아야 하기 때문에 고정 ip 중 한 개를 지정해준다.
gedti /etc/dhcp/dhcpd.conf으로 설정 파일을 열면 /usr/share/doc/dhcp*/dhcpd.conf.example 을 보라는 문구가 있다.- 해당 파일이 예시 파일이므로
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf로 파일을 복사 및 덮어쓰기 해준다.- 설치된 버전에 따라 dhcp* 부분이 다르다.
- 다시
gedti /etc/dhcp/dhcpd.conf으로 설정 파일을 편집해준다.
| 옵션 | 설명 |
|---|---|
| default-lease-time 초 | 최소 임대 시간(초) |
| max-lease-time | 최대 임대 시간(초) |
- subnet 192.168.219.0 netmask 255.255.255.0
- Network ID(공통 주소) 192.168.219
- Host id : 0 ~ 255 (256개)를 원하는 대로 사용 가능
- 네트워크#서브넷과 넷마스크 참고
| 옵션 | 설명 |
|---|---|
| option routers | Router 주소. GNS3의 e0/1 주소 |
| option subnet-mask | 서브넷 마스크. netmask와 동일 |
| option broadcast-address | ip의 마지막 주소. 서브넷의 주소는 네트워크 시작 ip |
| range | 실제 제공할 ip의 범위(자동 ip 범위) |
| 고정 ip는 자동 ip 범위에서 제외된 ip | |
| option domain-name-server | 도메인 서버 주소.(8.8.8.8, 168.126.63.1, 기타 다른 도메인) |
-
touch /var/lib/dhcpd/dhcpd.leases생성한다.- 만약 이 파일을 생성하지 않은 데몬 재실행 시 에러가 발생한다.
-
systemctl start dhcpd로 dhcp 서비스를 실행한다.systemctl status dhcpd로 상태를 확인하고,systemctl enable dhcpd로 재부팅 옵션을 설정한다.
8. GNS에서 SuperPuTTY로 동작 확인을 체크할 수 있다. (오류때문에 실습 진행을 못해서 내용만 정리)
9. DHCP 서버에 Switch2 네트워크 정보를 gedti /etc/dhcp/dhcpd.conf로 추가한다. (오류때문에 실습 진행을 못해서 내용만 정리)
10. Swtich 2에서 Switch1에 있는 DHCP 서버에 IP 요청한다. (오류때문에 실습 진행을 못해서 내용만 정리)
# conf t
# int e 0/2
# ip add 192.168.47.254 255.255.255.0
# no shut
# ip helper dhcp_server_id
# ip nat inside
# end
# copy run start