해당 글은 VSFe 깃허브 레포를 참고하여 작성한 글입니다. (아래 출처에 표기)
✅ DHCP가 무엇인지 설명해 주세요.
▶ DHCP란?
DHCP(Dynamic Host Configuration Protocol): 네트워크에 연결된 장치(호스트)가 IP 주소와 기타 네트워크 설정을 자동으로 받을 수 있도록 하는 프로토콜이다.
IP와 관련된 자세한 설명은 여기와 여기를 참고하면 좋을 것 같다.
▶ DHCP 장점
- 자동화된 IP 주소 할당: 관리자가 IP 주소와 네트워크 설정을 수동으로 설정할 필요가 없다.
- IP 주소 충돌 방지: DHCP 서버의 Lease Table(임대 테이블)을 통해 IP 주소 충돌을 방지할 수 있다.
- IP 주소 절약: 호스트의 사용 여부에 따라 IP 주소가 동적으로 할당되므로 IP 주소를 절약할 수 있다.
- 중앙 집중식 관리: 네트워크 설정을 중앙에서 관리할 수 있어 네트워크 관리와 구성 변경이 용이하다.
- 유연한 네트워크 구성: IP 주소 변경이 필요할 때마다 DHCP 서버에서 설정을 조정하면 네트워크 전체에 자동으로 반영된다.
▶ DHCP 단점
- 대규모 네트워크에서의 복잡성: 기본적으로 브로드캐스트 패킷을 사용하므로, 많은 단말이 연결된 대규모 네트워크에서는 부하가 발생할 수 있다.
- 의존성 문제: DHCP 서버에 장애가 발생하면, 전체 단말의 통신이 영향을 받을 수 있다.
- 보안 취약성: DHCP는 인증 없이 클라이언트에 IP 주소를 할당하기 때문에 보안에 취약하다.
- 승인되지 않은 DHCP 서버가 잘못된 정보를 클라이언트에게 제공할 수 있다.
- 인증되지 않은 클라이언트가 DHCP 서버를 가로채 리소스에 대한 접근 권한을 탈취할 수 있다.
- 악성 클라이언트가 DHCP 리소스를 과도하게 소모시켜 네트워크 성능을 저하시킬 수 있다.
- 정적 IP 필요 호스트의 비적합성: 파일 서버, 프린터 등 IP 주소가 변경되어서는 안 되는 장치에는 적합하지 않다.
- NAT 및 포트 포워딩 문제: NAT 및 포트 포워딩 등을 사용하는 특정 서비스를 요구하는 호스트에는 적합하지 않을 수 있다.
NAT(Network Address Translation): 네트워크 주소 변환을 의미하며, 일반적으로 공용 IP 주소와 사설 IP 주소 간의 변환을 수행한다. 주된 목적은 IP 주소의 부족 문제를 해결하고, 네트워크 보안을 강화하는 것이다.
포트 포워딩(Port Forwarding): NAT 장비에서 특정 포트를 통해 들어오는 외부 요청을 내부 네트워크의 특정 장치로 전달하는 기술이다. 주로 서버나 특정 서비스를 외부에서 접근할 수 있도록 설정할 때 사용된다.
▶ DHCP 구성 요소
- DHCP 서버: 네트워크 내에서 IP 주소와 기타 네트워크 설정을 클라이언트에게 할당하여 자동으로 설정하게 해 준다.
- 클라이언트에게 IP 할당 요청이 들어오면 IP를 부여한다.
- 클라이언트에게 할당할 IP 주소의 범위를 설정한다.
- 클라이언트에게 할당된 IP 주소를 변경 없이 유지해 줄 수 있다.
- 클라이언트에게 할당된 IP 주소의 유효 기간을 관리한다.
- DHCP 클라이언트: 네트워크에 연결되어 IP 주소 및 기타 네트워크 설정을 DHCP 서버로부터 받아 사용하는 장치이다.
- 네트워크에 연결될 때 DHCP 서버에 IP 주소 할당을 요청한다.
- IP 주소를 부여받으면 TCP/IP 설정이 초기화되고, 다른 호스트와 TCP/IP로 통신이 가능해진다.
✅ DHCP는 몇 계층 프로토콜인가요?
- DHCP는 Application 계층 프로토콜이다.
- OSI 모델에서 Application 계층은 사용자와 네트워크 간의 상호작용을 담당하는데, DHCP는 네트워크 설정 정보를 응용 프로그램에 전달하는 역할을 한다.
프로토콜 스택과 OSI 7계층 모델과 관련된 자세한 설명은 여기를 참고하면 좋을 것 같다.
✅ DHCP는 어떻게 동작하나요?
▶ DHCP Lease(임대)
DHCP 서버는 IP 주소를 클라이언트에게 영구적으로 할당하는 것이 아닌, 임대 기간(IP Lease Time)을 설정하여 해당 기간 동안만 IP 주소를 사용할 수 있도록 임대한다.
🔽 과정
- DHCP Discover: 클라이언트가 네트워크에 연결되면, DHCP 서버를 찾기 위해 브로드캐스트 패킷을 전송한다.
- 메시지 방향: 클라이언트 -> DHCP 서버
- 메시지 타입: 브로드캐스트
- 주요 파라미터:
- Client MAC: 클라이언트의 MAC 주소
- DHCP Offer: DHCP 서버가 클라이언트의 요청을 수신하고, 사용 가능한 IP 주소와 설정 정보를 담은 제안 메시지를 클라이언트에게 브로드캐스트한다.
- 메시지 방향: DHCP 서버 -> 클라이언트
- 메시지 타입: 브로드캐스트(Flag가 1일 경우), 유니캐스트(Flag가 0일 경우)
- 주요 파라미터:
- Client MAC: 클라이언트의 MAC 주소
- Your IP: 클라이언트에 할당(임대)할 IP 주소
- Subnet Mask (Option 1): 서브넷 마스크
- Router (Option 3): 클라이언트의 기본 게이트웨이 IP 주소
- DNS (Option 6): DNS 서버 IP 주소
- IP Lease Time (Option 51): 클라이언트가 IP 주소를 사용(임대)할 수 있는 기간(시간)
- DHCP Server Identifier (Option 54): DHCP Offer를 보낸 서버의 IP 주소 (2개 이상의 DHCP 서버가 DHCP Offer를 보낼 수 있으므로 각 DHCP 서버는 자신의 IP 주소를 메시지에 포함)
- DHCP Request: 클라이언트는 받은 제안 중 하나를 선택하고, 그 제안을 수락하는 요청 메시지를 DHCP 서버에 전송한다.
- 메시지 방향: 클라이언트 -> DHCP 서버
- 메시지 타입: 브로드캐스트
- 주요 파라미터:
- Client MAC: 클라이언트의 MAC 주소
- Requested IP Address (Option 50): 사용을 요청할 IP 주소 (DHCP Offer의 Your IP 주소)
- DHCP Server Identifier (Option 54): 선택한 DHCP 서버의 IP 주소
- DHCP Acknowledgment: DHCP 서버는 클라이언트의 요청을 확인하고, IP 주소와 네트워크 설정을 포함한 확인 메시지를 클라이언트에게 전송한다.
- 메시지 방향: DHCP 서버 -> 클라이언트
- 메시지 타입: 브로드캐스트(Flag가 1일 경우), 유니캐스트(Flag가 0일 경우)
- 주요 파라미터:
- Client MAC: 클라이언트의 MAC 주소
- Your IP: 클라이언트에 할당(임대)할 IP 주소
- Subnet Mask (Option 1): 서브넷 마스크
- Router (Option 3): 클라이언트의 기본 게이트웨이 IP 주소
- DNS (Option 6): DNS 서버 IP 주소
- IP Lease Time (Option 51): 클라이언트가 IP 주소를 사용(임대)할 수 있는 기간(시간)
- DHCP Server Identifier (Option 54): DHCP Offer를 보낸 서버의 주소 (2개 이상의 DHCP 서버가 DHCP Offer를 보낼 수 있으므로 각 DHCP 서버는 자신의 IP 주소를 메시지에 포함)
브로드캐스트(Broadcast): 네트워크의 모든 장비(노드)에게 데이터를 동시에 전송하는 방식, 한 장비가 브로드캐스트 패킷을 보내면, 네트워크에 연결된 모든 장비가 이 패킷을 수신한다.
유니캐스트(Unicast): 네트워크의 특정 장비에게만 데이터를 전송하는 방식, 발신 장비는 수신 장비의 정확한 주소를 알고 있으며, 이 주소를 통해 패킷을 직접 전송한다.
🔽 갱신과 반환
- 갱신(Renewal): 클라이언트가 임대 기간이 끝난 후에도 계속해서 IP 주소를 사용하려면, DHCP 서버에 IP 주소 임대 기간 연장(IP Address Renewal)을 요청해야 한다.
- 반환(Release): 더 이상 IP 주소가 더 이상 필요하지 않은 경우, DHCP 서버에 IP 주소 반납 절차(IP Address Release)를 수행해야 한다.
✅ DHCP에서 UDP를 사용하는 이유가 무엇인가요?
DHCP는 네트워크 장비의 초기화 과정에서 일어나기 때문에 빠르고 효율적으로 네트워크를 구성할 수 있어야 한다.
- 빠른 전송: UDP는 연결 설정 없이 데이터를 전송할 수 있어 빠른 속도로 패킷을 송수신할 수 있다.
- 단순성: UDP는 TCP와 달리 연결 관리와 흐름 제어를 필요로 하지 않아 간단하게 구현할 수 있다.
- 브로드캐스트: DHCP Discover 메시지는 브로드캐스트로 전송되며, UDP는 이런 브로드캐스트 메시지를 효율적으로 처리한다.
UDP와 관련된 자세한 설명은 여기와 여기를 참고하면 좋을 것 같다.
✅ DHCP에서, IP 주소 말고 추가로 제공해 주는 정보가 있나요?
- 서브넷 마스크: 네트워크의 서브넷을 정의한다.
- 기본 게이트웨이: 네트워크 외부로 나가기 위한 경로를 제공한다.
- DNS 서버 주소: 도메인 이름을 IP 주소로 변환하기 위해 사용하는 DNS 서버의 주소를 제공한다.
- WINS 서버 주소: Windows 네트워크에서 이름을 IP 주소로 변환하기 위한 WINS 서버의 주소를 제공한다.
- 도메인 이름: 네트워크의 도메인 이름을 제공한다.
✅ DHCP의 유효기간은 얼마나 긴가요?
DHCP의 IP 주소 유효기간, 즉 임대 기간(TTL, Time To Live)은 일반적으로 24시간을 권장한다.
- 임대 기간은 네트워크 관리자에 의해 설정될 수 있기 때문에 요청이 많은 곳은 짧은 시간으로 설정하고, 요청이 적은 곳은 긴 시간으로 유연하게 임대 기간을 설정할 수 있다.
- 이 기간이 너무 길면 IP 주소가 순환되지 않아 Lease Table이 가득 차게 될 수 있다. 이 경우 새로운 장비가 네트워크에 연결되더라도 IP Pool에 여유가 없어 IP 주소를 할당받지 못할 수 있다.
📍 문제 출처
Tech-Interview / 03-NETWORK.md
📍 참고 자료
'Programming > Network' 카테고리의 다른 글
[Network] OSI 7계층 (0) | 2024.08.11 |
---|---|
[Network] IP (0) | 2024.08.06 |
[Network] 프로토콜 스택 (0) | 2024.08.05 |
[Network] 네트워크 (0) | 2024.08.05 |
[Network] TCP, UDP (0) | 2024.07.28 |