diff --git "a/docs/playhuck/2024-02-23_[7\354\236\245] DHCP.md" "b/docs/playhuck/2024-02-23_[7\354\236\245] DHCP.md" new file mode 100644 index 0000000..0fd2858 --- /dev/null +++ "b/docs/playhuck/2024-02-23_[7\354\236\245] DHCP.md" @@ -0,0 +1,104 @@ + + +### 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(릴레이 ⇒ 클라)