반응형

DHCP 프로토콜이란?

 

1. DHCP란?

DHCP(Dynamic Host Configuration Protocol)는 조직의 네트워크(사설망)의 호스트에게 동적으로 IP주소를 할당하는 프로토콜입니다.

예를들어 본다면, 쉽게 생각하여 IP를 할당하는 공유기에 PC를 연결하면 자동으로 192.168.~ 로 시작하는 IP주소를 자동으로 할당해주는 것과 같습니다.

 

개인 또는 소규모 사업체의 경우 위와같은 공유기 등을 이용하여 사설IP를 할당받아 사용하거나, 각 호스트별로 IP를 관리자가 직접 할당하지만, 호스트가 네트워크 케이블을 연결함과 동시에 자동으로 IP를 할당받아 통신이 될 필요가 있으면서 연결된 호스트 IP를 정해진 규칙에 맞에 관리할 필요가 있다면 DHCP를 선택하는 방법이 좋습니다.

 

 

 

2. DHCP의 장단점

 

DHCP의 장점

 : DHCP 이전에는 네트워크 관리자가 IP주소를 관리하기 위해서는 [ MAC주소 - IP주소 ]를 관리자가 직접 맵핑하여 서버에 저장해 두고 PC와 같은 노드(node)가 부팅되면 BOOTP라는 프로토콜을 이용하여 서버로부터 IP를 알아오는 방식이었습니다.

이러한 방식은 매번 새로운 IP장비를 연결할때마다 관리자가 직접 IP주소와 MAC 주소를 맵핑시켜줘야 할 필요가 있습니다. 하지만 DHCP방식이 도입되면서는 자동으로 PC에 IP주소를 할당해주기 때문에 이러한 문제를 해결할 수 있었습니다.

 

또한 DHCP는 서버에서 모든 사설 IP주소를 관리하기 때문에 IP주소 충돌과 같은 문제를 예방할 수 있습니다.

 

 

DHCP의 단점

: DHCP는 서버가 자동으로 IP를 할당하기 때문에 몇가지 문제가 있습니다. 예를 들어 A라는 PC가 192.168.0.2라는 IP주소를 갖고 있다가 연결이 해제되면 해당 IP주소를 다른 B라는 PC가 할당받을 수 있습니다. 일반적인 경우라면 문제가 없겠지만, 만약 포트포워딩으로 특별한 서비스를 제공하는 경우 정전 등에 의해 공유기(DHCP 서버)가 재부팅될 때, 갑작스럽게 IP주소가 변경되어 서비스가 불통이 될 수 있습니다.

 

또한 IP주소를 기반으로한 인증방식을 갖고 있는 서비스가 사설 네트워크에 제공된다면 이것 역시도 문제를 발생시킬 수 있습니다.

 

이러한 문제들 외에도 보안과 서비스에 관련된 문제들이 있고 이러한 문제를 해결하는 여러 방식들이 존재합니다.

 

 

 

3. DHCP의 원리

DHCP의 IP주소 할당방식은 'IP주소 임대'가 핵심입니다.

특정 장비에 특정 IP주소를 일정 기간동안 빌려주는 방식이고, 해당 시간이 끝나면 다시 서버가 회수합니다.

이 과정에서 장비와 서버는 [IP주소 임대 요청], [임대기간 연장], [IP주소 사전 반납], [재연결 요청] 등의 통신을 수행합니다.

 

 

4. DHCP PACKET

DHCP는 Client는 UDP 68번, Server는 UDP 67번을 사용합니다.

 

 

1) DHCP DISCOVER ( Client -> Server )

 

 

DHCP Discover
DHCP Discover

DHCP Discover Message는 위와같이 네트워크 전체에 '브로드캐스팅'되는 것을 볼 수 있습니다.

 

Client가 Server에 전송하는 Packet으로 Client는 자신의 MAC 주소를 네트워크에 브로드캐스팅합니다.

 

브로드캐스팅된 해당 패킷을 DHCP 서버가 확인하면 'DHCP 서버의 IP주소'와 'DHCP 서버가 할당할 수 있는 IP주소'를 해당 장비에게 전달합니다. (DHCP OFFER)

 

 

2) DHCP OFFER ( Server-> Client )

 

DHCP Offer
DHCP Offer

 

위에서 보면 [172.30.1.254 = 공유기(DHCP 서버)]가 [172.30.1.35 = Client에게 할당하려는 IP주소]에게 DHCP Offer Message를 전송하는 것을 볼 수 있습니다.

 

특이한 것은 DHCP Server가 목적지로 하는 172.30.1.35는 아직 Client의 IP주소가 아니라는 것입니다. 때문에 Client 측에서는 해당 패킷을 수신하면 이더넷(Layer 2) 계층에서는 자신의 MAC 주소를 목적지로 하기 때문에 상위계층(Layer 3, Network)으로 올려 보내지만 해당 Layer에서는 자신을 목적지로 한 IP주소가 아니라고 생각합니다. 해당 장비가 Routing 기능이 활성화되어있다면 어떻게 될지 궁금하네요.

 

어찌 되었든 해당 DHCP Offer Message를 좀 더 보겠습니다.

 

DHCP의 메시지 영역을 보면 아래와 같은 내용이 있습니다.

 

DHCP Offer

해당 내용은 현재 IP주소를 할당하려는 DHCP 서버가 Client에게 할당하려는 IP주소와 네트워크의 정보들을 공지한 것입니다.

 

해당 내용을 참고하여 Client는 해당 IP주소를 사용할 것인지를 판단하고, 해당 IP주소를 할당받기를 원한다면 DHCP 서버에게 DHCP REQUEST Message를 전달합니다.

 

 

3) DHCP REQUEST ( Client -> Server )

 

DHCP Request
DHCP Request

 

DHCP Request는 DHCP Server가 알려준 IP주소와 네트워크 정보를 잘 수신하였고, 해당 IP주소를 할당받겠다는 응답을 전달하는 역할을 수행합니다.

 

위에 보시면 아직 송신지 주소는 0.0.0.0인 상태이며, DHCP Server의 IP주소로 내용을 전달하는 것이 아니라 브로드캐스팅을 수행하는 것을 볼 수 있습니다. 즉, 아직 Client는 IP주소를 할당받지 않은 상태임을 말합니다.

 

서버는 Client의 DHCP Request Message를 수신하면, 해당 내용을 확인했으며 IP주소를 사용해도 좋다는 응답(DHCP ACK)을 보냅니다.

 

 

 

4) DHCP ACK ( Server -> Client )

 

DHCP Ack
DHCP Ack

 

DHCP Ack Message를 수신한 Client는 이제부터 해당 IP주소를 사용하여 네트워크에 패킷을 전송할 수 있습니다.

 

즉, 이 시점부터 IP임대가 시작되는 것입니다. (172.30.1.35 가 저의 IP주소가 되었습니다.)

 

DHCP ACK 패킷을 좀 더 보겠습니다.

 

DHCP Option

DHCP의 Option을 보면 위와 같이 IP주소의 임대 기간이 나와있습니다.

 

해당 DHCP Server는 정확하게 1시간을 임대기간으로 할당하는 것을 볼 수 있습니다.

 

만약 1시간 동안 PC에서 IP 주소 임대 연장에 관련한 요청이 없다면 해당 IP주소는 1시간 후 회수됩니다.

 

그럼 이제 임대연장에 대해 보겠습니다.

 

 

 

5) DHCP IP 임대기간 연장

 

DHCP에서 IP주소의 임대기간을 연장할 때에는 앞서 사용한 DHCP Request Message를 사용합니다.

 

DHCP Request & Ack

위에 패킷을 보게 되면 [172.30.1.35]라는 제가 위에서 할당받았던 IP주소를 사용하여 DHCP 서버(172.30.1.254)에 DHCP Request 메시지를 보내는 것을 볼 수 있습니다.

 

앞서 0.0.0.0으로 브로드캐스팅했던 것과 큰 차이가 있습니다.

 

패킷의 Option 부분에도 큰 차이가 있습니다.

 

DHCP Request ( Client -> Server )

클라이언트가 보낸 메시지에는 위와 같은 내용이 있습니다.

 

즉, IP주소의 임대기간을 90일로 변경해달라는 내용입니다. 기존에 1시간을 할당받았던 것을 생각해보면 너무 파격적이네요.

 

그리고 응답(DHCP Ack)을 보겠습니다.

 

DHCP Ack ( Server -> Client )

응답을 보게 되면 Client의 90일은 할당해주지 않았지만, 위와 같이 1시간으로 임대기간을 변경해 준 것을 볼 수 있습니다.

 

기존에 1시간을 받았다가 30분 정도가 지나 30분이 남았던 임대기간을 1시간으로 재조정한 것입니다.

 

 

 

5. 다음 이야기

이번에 알아본 DHCP의 네 가지 [Discover, Offer, Request, Ack]이외에도 몇 가지 Message들이 존재합니다.

 

물론 위의 네 가지가 가장 압도적인 비율을 차지합니다만, 다음 페이지에서는 위 네가지 이외의 메시지들과 Client 측에서 DHCP Server를 귀찮게 하는 몇 가지 것들을 알아보겠습니다.

반응형
반응형

1. 가상환경 생성

conda create -n [가상환경이름] python=[버전]

 

ex) conda create -n datasci python=3.7

 

 

2. 가상환경 목록 확인

conda info --envs

 

3. 가상환경 실행

conda activate [가상환경이름]

 

ex) conda activate datasci

 

 

4. 가상환경 해제

conda deactivate

 

 

5. 가상환경 제거

conda remove -n [가상환경이름] --all

 

ex) conda remove -n datasci --all

반응형
반응형

 

1. 회선교환 (Circuit Switching) 방식

회선교환 방식은 회선 독점을 통한 통신방식이라고 볼 수 있습니다.

 

아래와 같은 간단한 네트워크망이 존재한다고 가정하겠습니다.(실제로는 대부분 전화망에서 사용하기 때문에 구성이 조금 다릅니다.)

 

(PC와 교환기로 이루어진 네트워크망입니다.)

(교환기는 단순히 전용선을 할당하는 장비라고 생각하셔도 무관합니다.)

 

 

네트워크망 예시

회선교환 방식의 가장 큰 특징은 [전용선 할당]에 있습니다.

 

예를들어 전송할 데이터가 있다고 하면 아래와 같이 전송을 위한 전용선을 할당하고 해당 선로로 모든 데이터를 전송합니다.

 

회선교환 방식

위 그림과 같이 송수신을 연결하는 전용선을 설정하고 전송을 하는게 핵심입니다.

 

개념을 이해하셨다면 특징에 대해 말해보겠습니다.

 

 

 

2. 회선교환의 특징

  • 회선교환은 통신 회선을 설정하여 데이터를 교환하는 방식
  • 회선 교환방식으로 음성 전화 시스템에 사용됨
  • 송신자의 모든 데이터는 동일한 경로로 전송됨
  • 안정적인 통신이 가능함
  • Point-To-Point 방식으로 연결됨
  • 통신중 중간경로에 문제가 발생할 경우 전체 연결이 끊어짐 (새로운 경로를 통한 새로운 회선할당 필요)

 

장점

 - 대용량 + 고속 데이터 처리에 우수

 - 고정적인 대역폭을 사용

 - 연속적인 데이터 처리에 우수

단점

 - 회선 이용 효율이 떯어짐 (대역폭 낭비)

 - 통신과정에서 회선문제시 회선할당부터 다시해야함

 - 통신비용이 고가임

 

 

 

3. 패킷교환 (Packet Switching) 방식

회선교환 방식과 비교된다면, 대충 눈치채셨을 수 있습니다. 패킷교환은 회선교환과 다르게 [전용선]의 개념이 없습니다.

 

패킷교환은 전송하려는 데이터를 패킷이라는 단위로 나눠 네트워크망으로 뿌려주게됩니다.

 

이때 패킷에는 해당 데이터가 어떤 데이터의 몇번째 데이터인지의 정보와 최종 목적지에 대한 정보가 들어있습니다.

 

위의 정보를 라우터가 보고 패킷을 최적경로를 향해 전달하게 됩니다. 이때 최적경로는 단순하게 거리만을 계산하는 것이아니라, 망의 혼잡도(대역폭 사용율), 연결상태, 기타 설정등에 따라 그때그때 변경될 수 있기 때문에 경로는 수시로 변경될 수 있습니다.

 

따라서 특정한 데이터가 100개의 패킷으로 분해되어 전송된다면, 100개의 패킷들은 라우터에의해 서로다른 경로로 전송될 수 있고, 최종적으로 목적지에 100개의 패킷이 전달되면 패킷의 순서를 통해 다시 원래의 데이터로 합쳐지는 방식입니다.

 

 

(PC와 라우터로 이루어진 네트워크 망입니다.)

(라우터는 데이터의 최적경로를 파악하고 결정하여 송신하는 장비로 일단은 공유기의 상위호환 정도로 생각하셔도 괜찮습니다.)

 

패킷교환 방식

위의 그림과 같이 3개의 패킷이 [왼쪽]에서 [오른쪽]으로 전송될 때, 각각의 패킷은 서로 다른 경로로 전송될 수 있습니다.

 

또한 이러한 특성 때문에 전송되는 패킷은 순서와 다르게 수신될 수 있습니다.

 

 

 

4. 패킷교환의 특징

  • 전송되는 패킷은 여러 경로를 이용가능(패킷별로 최적의 경로 선택)
  • 송신 패킷의 순서와, 수신 패킷의 순서가 다를 수 있음
  • 전송 속도 및 흐름 제어가 가능
  • 에러 탐지가 가능(패킷정보를 통해)
  • 일반적인 인터넷 망에서 사용됨

 

장점

 - 회선의 이용률이 높음

 - 애러 및 장애에 강함 : 라우터 고장시 다른 경로를 즉각적으로 이용, 애러에 대해 특정 패킷만 재전송 가능

 - 인터넷 뿐만 아닌 다양한 통신망에서 사용가능(전화도 가능)

단점

 - 경로 탐색과정에서 지연이 발생됨

 - 전송량 증가에 따라 지연율이 급격하게 상승

 - 패킷헤더 추가로 인한 오버헤드 발생이 가능함

 

 

 

 

5. 가상회선(Virtual Circuit) 기술

가상회선 기술은 위의 패킷교환방식의 네트워크에서 회선교환과 같은 통신을 만들어주는 기술입니다.

 

패킷단위로 데이터를 전송하지만, 사전에 논리적으로 구성된 특정한 경로로 데이터를 전송하게 됨으로 모든 패킷은 동일한 경로를 통해 데이터가 전송됩니다.

 

수신측은 위의 특징 때문에 순차적으로 패킷을 수신할 수 있습니다.

 

다만 전송을 수행하기 전에 앞서 언급한것처럼, 경로를 결정해야하고 이를 위해 몇가지 특수한 패킷들을 네트워크에 전송할 필요가 있어 처음 연결에 약간의 시간이 필요하며, 또한 경로만 일정할 뿐, 전용회선이 아니기 때문에 설정한 경로를 통해 다른 노드에 의해 대량의 데이터가 유입될 경우 네트워크 지연이 발생할 수 있습니다.

반응형

+ Recent posts