dhcp
DHCP 서버와 클라이언트: IP 주소 할당 과정 이해하기
DHCP란?
DHCP(Dynamic Host Configuration Protocol)는 네트워크 상의 장치들에게 동적으로 IP 주소와 기타 네트워크 설정을 자동으로 할당해주는 프로토콜입니다. 이를 통해 관리자는 각 장치에 대한 수동 설정의 번거로움을 줄일 수 있습니다.
DHCP 과정
DHCP는 기본적으로 다음의 4단계 과정을 거쳐 IP 주소를 할당합니다:
- DHCPDISCOVER: 클라이언트가 네트워크에 있는 DHCP 서버를 찾기 위해 브로드캐스트 메시지를 전송합니다.
- DHCPOFFER: DHCP 서버가 클라이언트에게 사용할 수 있는 IP 주소를 제안하는 응답을 보냅니다.
- DHCPREQUEST: 클라이언트가 특정 DHCP 서버에게 제공된 IP 주소를 요청합니다.
- DHCPACK: DHCP 서버가 요청한 IP 주소를 클라이언트에게 할당하는 응답을 보냅니다.
DHCP 클라이언트 동작 확인
우분투에서 DHCP 클라이언트를 통해 IP 주소를 요청할 때, dhclient
명령어를 사용할 수 있습니다. 이를 통해 DHCP 서버와의 상호작용을 확인할 수 있습니다.
dhclient -v enp1s0
위 명령어를 실행하면 다음과 같은 로그를 확인할 수 있습니다:
DHCPREQUEST for 172.30.1.2 on enp1s0 to 255.255.255.255 port 67 (xid=0x68ca3d24)
DHCPACK of 172.30.1.2 from 172.30.1.1 (xid=0x243dca68)
여기서 DHCPREQUEST
는 요청 메시지를 나타내고, DHCPACK
은 서버로부터 응답 메시지를 나타냅니다. 그러나 DHCPDISCOVER 메시지는 생략되어 보일 수 있습니다.
생략된 이유
dhclient
가 내부적으로 디스커버리 메시지를 처리하기 때문입니다.- 클라이언트가 이미 IP 주소를 보유하고 있을 경우 디스커버리 과정을 생략할 수 있습니다.
생략된 디스커버리 과정을 확인하기 위해 tcpdump
를 사용할 수 있습니다. 아래 명령어로 DHCP 디스커버리와 오퍼를 모니터링할 수 있습니다:
sudo tcpdump -i enp1s0 port 67
이 명령어를 실행한 후 클라이언트가 IP를 요청할 때, 다음과 같은 로그를 볼 수 있습니다:
15:27:31.066267 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from 52:54:00:b8:51:15 (oui Unknown), length 300
15:27:31.066424 IP 172.30.1.1.bootps > 255.255.255.255.bootpc: BOOTP/DHCP, Reply, length 447
로그 해석
첫 번째 줄:
0.0.0.0.bootpc > 255.255.255.255.bootps
: 클라이언트가 DHCP 서버를 찾기 위해0.0.0.0
주소에서255.255.255.255
브로드캐스트 주소로 요청을 보냅니다. 이때 클라이언트의 MAC 주소(52:54:00:b8:51:15)도 함께 전송됩니다.length 300
: 메시지의 길이는 300 바이트입니다.
두 번째 줄:
172.30.1.1.bootps > 255.255.255.255.bootpc
: DHCP 서버(172.30.1.1)가 클라이언트에게 응답을 보냅니다.Reply
: 서버가 클라이언트의 요청에 대한 응답을 보낸 것입니다.length 447
: 응답 메시지의 길이는 447 바이트입니다.
정리
dhcp protocol
동적으로 ip를 할당 받도록 도와주는
같은 네트워크대역에 특정 아이피를 대여해주는
관리로해서 ip충돌x
공유기나 와이파이에 들어가 있음
| dbcp discover -> | mac address를 broadcast로보냄
| <-dhcp off |
| dhcp request -> |
| <- dhcp ack |
dhcp server config
수행할 인터페이스를 지정하는
/etc/sysconfig/dhcpd
/etc/dhcp/dhcpd.conf
ubuntu에서 systemctl status dhcpd 해보면 서버가 구동중이아니고 dhcpd.conf도 존재하지 않는데
IP 주소를 받는 이유
우분투 시스템 자체에는 DHCP 서버(dhcpd 서비스)가 없더라도, 네트워크 상의 다른 장치(예: 라우터)가 DHCP 서버 역할을 하고 있을 수 있습니다. 예를 들어, 가정이나 회사 네트워크에서 일반적으로 사용하는 라우터가 DHCP 서버 기능을 갖추고 있습니다. 이 경우, 우분투 시스템은 라우터에서 DHCP 서버의 역할을 수행하는 서비스를 통해 IP 주소를 받을 수 있습니다. 라고 합니다.
아는분은 댓글좀요
dhcp server 구성하는법
Available servers Ubuntu makes two DHCP servers available:
isc-dhcp-server: This server installs dhcpd, the dynamic host configuration protocol daemon. Although Ubuntu still supports isc-dhcp-server, this software is no longer supported by its vendor.
Find out how to install and configure isc-dhcp-server.
isc-kea: Kea was created by ISC to replace isc-dhcp-server – It is supported in Ubuntu releases from 23.04 onwards.
Find out how to install and configure isc-kea.
https://ubuntu.com/server/docs/how-to-install-and-configure-isc-kea