-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
104 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,104 @@ | ||
<img src="https://github.com/monthly-cs/2024-01-network/assets/105256335/fc41f41f-b8b0-4e24-886c-788b2d5f8743"> | ||
|
||
### 7.4 DHCP | ||
|
||
--- | ||
|
||
수동으로 IP와 네트워크 정보를 직접 설정하는 것을 ‘정적 할당’이라고 하고, | ||
|
||
자동으로 설정하도록 만드는 것이 ‘동적 할당’이다. | ||
|
||
일반적으로 데이터 센터같은 곳에서는 정적 할당을 사용하지만, PC 사용자를 위해 운영되는 사무실 같은 곳에서는 동적할당을 사용한다. | ||
|
||
이런 IP를 동적으로 할당하는데 사용되는 프로토콜이 바로 DHCP(Dynamic Host Configuration Protocol)이다. | ||
|
||
DHCP를 사용하면, 별도의 IP 설정 작업 없이 편리하게 사용자가 네트워크를 이용할 수 있다. | ||
|
||
- **7.4.1 DHCP 프로토콜** | ||
|
||
|
||
DHCP는 BOOTP라는 프로토콜 기반이다. | ||
|
||
DHCP는 서버와 클라이언트로 동작하며 클라이언트 port는 68, 서버는 67이다. | ||
|
||
- 7.4.2 DHCP 동작 방식 | ||
|
||
|
||
호스트가 IP를 자동으로 할당받는 과정을 통해 DHCP의 동작방식을 이해할 수 있다. | ||
|
||
1. DHCP Discover | ||
|
||
|
||
DHCP 클라이언트는 DHCP 서버를 찾기위해 DHCP Discover 메세지를 브로드캐스트로 전송 | ||
|
||
2. DHCP Offer | ||
|
||
|
||
DHCP Discover 메세지를 수신한 서버는 클라이언트에 할당할 IP 주소와, 서브넷, 게이트 웨이, DNS 정보, Lease Time 등의 정보를 포함한 메세지를 클라이언트로 전송 | ||
|
||
|
||
1. DHCP Request | ||
|
||
|
||
DHCP 서버로부터 제안받은 IP주소와 DHCP 서버 정보를 포함한 DHCP 요청 메세지를 브로드캐스트로 전송 | ||
|
||
|
||
1. DHCP Acknowledgement | ||
|
||
|
||
DHCP 클라이언트로부터 IP 주소를 사용하겠다는 요청을 받으면 DHCP 서버에 해당 IP를 어떤 클라이언트가 사용하기 시작했는지 정보를 기록하고 DHCP Request 메세지를 정상 수신했다는 Response 전송 | ||
|
||
|
||
DHCP Discover 메세지의 출발 IP는 0.0.0.0 | ||
|
||
목적지의 IP는 255.255.255.255로 고정된다. | ||
|
||
현재 서버가 어느 서버인지 알 수 없으므로, 브로드캐스트로 전송한다. | ||
|
||
위와 같은 과정을 클라이언트에서 정해진 시간 동안 임대한다는 개념으로 Lease라고 한다. | ||
|
||
임대 시간 50%가 지나면, 갱신과정을 거쳐 클라이언트는 계속해서 다시 사용한다. | ||
|
||
|
||
- 7.4.4 DHCP 릴레이 | ||
|
||
|
||
DHCP 동작을 위한 패킷은 모두 브로드캐스트다(갱신 과정은 유니캐스트). | ||
|
||
브로드캐스트는 동일 네트워크에서만 전송되므로 각 네트워크마다 DHCP 서버가 존재해야 한다. | ||
|
||
네트워크 영역이 복잡하다면 이중화 등 고려해야 할 요소들이 존재한다. | ||
|
||
하지만, 여러 네트워크 환경에서도 DHCP 릴레이 에이전트 기능을 사용하면, DHCP 서버 한 대로 여러 네트워크의 IP 풀을 관리할 수 있다. | ||
|
||
릴레이 에이전트는 중간에서 패킷을 중계하는 역할을 해준다. | ||
|
||
1. DHCP Discover(클라 ⇒ 릴레이) | ||
|
||
|
||
클라에서 브로드캐스트로 패킷 전송 | ||
|
||
|
||
1. DHCP Discover(릴레이 ⇒ 서버) | ||
|
||
|
||
릴레이 에이전트는 클라이언트의 요청을 중계하며 출발지와 목적지의 릴레이 에이전트 IP 주소와 DHCP 서버 IP 주소로 재작성한다. | ||
|
||
여기서 서버로 가는 요청은 이미 IP가 재작성됐기 때문에, 유니캐스트다. | ||
|
||
|
||
1. DHCP Offer(서버 ⇒ 릴레이) | ||
|
||
|
||
서버에서 릴레이 에이전트로 다양한 정보들을 다시 전송 | ||
|
||
|
||
1. DHCP Offer(릴레이 ⇒ 클라) | ||
|
||
|
||
정보를 클라이언트로 전송하는데, DHCP Sever Identifer는 실제 DHCP 서버의 IP 주소에서 릴레이 에이전트의 외부 인터페이스 IP 주소로 변경되어 전송 | ||
|
||
2. DHCP Request(클라 ⇒ 릴레이) | ||
3. DHCP Request(릴레이 ⇒ 서버) | ||
4. DHCP ACK(서버 ⇒ 릴레이) | ||
5. DHCP ACK(릴레이 ⇒ 클라) |