티스토리 뷰

Host의 IP 주소의 할당 방식은 두가지가 존재한다.

  1. 고정 IP 주소 방식으로 직접 IP, 서브넷 마스크, 게이트웨이를 설정하는 방식이다.
  2. DHCP를 이용해서 동적으로 필요할 때 IP 주소를 할당받는 방식이다.

일반 사용자들은 대부분 2번을 사용하며 학교나 관공서에서 1번을 사용한다. 1번을 사용하면 IP추적을 통해 특정 컴퓨터를 특정할 수 있다.

DHCP 프로토콜 사용의 장점

  • 사용을 할 때만 할당받아서 사용하게 된다.
  • 고정적으로 컴퓨터마다 일일히 IP를 구성해줄 필요가 없다.
  • 호스트(노트북, 폰) 등의 이동성을 지원해준다. 이동한 위치에서 새로 IP를 발급해주면 된다.

DHCP

host가 네트워크 망에 접속할 DHCP 서버와의 통신을 통해서 사용 가능한 IP를 묻고 사용 가능한 IP 주소를 받아서 Host가 사용하게 된다.

  1. [DHCP discover] Host가 브로드캐스트를 통해 DHCP 서버를 찾아낸다. 이때 host는 IP주소가 없고 port는 68을 사용한다. DHCP 서버의 port는 67이다. (Optional)
  2. [DHCP offer] DHCP 서버가 요청에 응답한다. (Optional)
  3. [DHCP request] Host가 IP 주소를 요청한다.
  4. [DHCP ack] DHCP 서버가 사용 가능한 IP 주소를 알려준다.

DHCP는 IP주소를 알아내기 위한 프로토콜이지만 계층은 5계층 애플리케이션 계층의 프로토콜이다. 4계층에서는 UDP 프로토콜을 사용한다.

DHCP 서버

  • DHCP 서버는 모든 서브넷마다 존재하지는 않는다. 라우터의 인터페이스가 속한 서브넷이 여러개 일 때 그 중 하나의 서브넷에만 존재하고 그 외 서브넷은 DHCP 서버를 찾는 브로드캐스트에 대해 라우터를 통해 존재하는 서브넷으로 요청을 보낸다.
  • 즉, 라우터의 인터페이스가 속한 서브넷에 DHCP 서버가 없는데 거기서 브로드캐스트로 IP주소를 요청하면 라우터로 요청이 가서 다른 서브넷에 요청이 전달되어 찾아주게 된다.

DHCP Message 구조

Opcode : 요청인지 응답인지를 표시하는 용도이다. 더 자세한 내용은 Options bit를 통해 표시한다.

Flags : 단 1bit를 이용해서 unicast(0) / multicast(1) 을 구분하는데 사용된다. 나머지 15bit는 사용하지 않는다.

Options : 메시지의 타입이 뭔지 알려주는데 사용된다.

  • DHCP 프로토콜 과정에서 사용되는 타입을 알려준다. (DISCOVER, OFFER, REQ, DECLINE, ACK, NACK, RELEASE, INFROM)

IP 주소의 할당 방법

  • IPS(인터넷 제공 업체)로 부터 IP 주소를 일부분 할당 받는다. 해당 IP 또한 subnet mask가 존재하는 IP이다. 이 IP를 서브네팅하여 더 많은 IP주소를 생성하게 된다.
  • 사실 서브네팅은 미국의 IP 관리를 통해 한국 정부에 할당해주고, 한국 정부가 이를 또 IPS에게 일부분 할당해주는 것이다. IPS가 준 IP를 고객이 다시 서브네팅하여 더 많은 IP주소를 만들어서 사용하게 된다.

예를들어 IPS로부터 11011000 00001111 11110000 00000000  216.15.240.0/20을 할당받았다고 해보자. 이때 앞 20bit는 ip주소가 뒤 12bit는 서브넷 호스트 ID가 될 수 있다.

 

이때 12bit를 이용해 4096개의 호스트를 하나의 서브넷에서 구분하는 방식으로 사용할 수 있지만 이보다는 뒤 12bit 중 3bit를 추가적으로 host ip 로 사용하여 000 ~ 111인 총 8개의 subnet을 생성할 수 있다.

 

즉, 11011000 00001111 11110010 00000000 ~11011000 00001111 11111110 00000000 의 추가적인 서브넷이 생성되고 서브넷 마스크는 23이되는 것이다.

이렇게하여 8개의 서브넷을 구역별로 나눠주고 각 서브넷은 9bit를 이용해 512개의 host id를 구분할 수 있게 사용할 수 있다.

 

이는 마치 주소체계와 비슷하게 볼 수 있다. 경기도 안양시 동안구 관양동으로 주소를 나누고 관양동내에서 건물 주소를 배정할 수 도 있지만 관양 1동, 관양 2동, 관양 3동 ... 식으로 더 세분화하여 구분할 수 있다. 이러면 동명 건물들이나 구체적인 주소 관리에 더 쉬워질 뿐더러 상위 프로토콜에서 관양 1 ~ 8동에 대한 우편물은 경기도 안양시 동안구 관양 ~ 만 확인해서 관양동 우체국에 주면 거기서 알아서 세분화해서 분리할 수 있어서 빠른 처리가 가능해진다.

IP도 마찬가지로 ISP에서 준 앞 20bit만 확인해서 패킷을 전달해주면 거기서 8분등을 한대로 뒤 3bit를 더 확인해서 적절한 서브넷에 전달할 수 있게 된다.

 

참고로 ISP는 ICANN에게서 IP주소를 할당 받는다. 여기서 DNS도 관리한다.

 

위와 같이 DHCP Request <-> DHCP ACK를 통해 IP주소를 할당받게 된다.

  • 요청 시 ip주소가 없으므로 0.0.0.0이고 DHCP 서버를 찾기위해 브로드캐스트로 요청을 보내는 것이다.
  • 응답의 경우 IP를 192.168.35.109를 도착지로 하였는데 이는 할당 ip를 의미한다.
  • DHCP의 요청/응답 쌍은 Transaction ID를 통해 매칭된다.

ICMP - Internet Control Message Protocol

  • Network Layer에서 사용하는 프로토콜이다. 상위 프로토콜을 사용하지 않는다.
  • 에러 리포팅도, 복구 메커니즘도, 쿼리 처리도 해주지 않고 Unrealiable하고 Connectionless한 IP 프로토콜에 대한 보완을 위해 나온 프로토콜이다.
  • 현대 TCP/IP 프로토콜에서 특별한 목적을 위한 메시지 메커니즘 용도로 추가된 프로토콜이다.

ICMP 메시지

  • Error Reporting 용도와 Query 용도로 사용되며 Type으로 구분된다. 각 Type에서 Code로 세분류가 이어진다.
  • 에러 리포팅 타입으로 Type 3은 목적지 도달 실패, Type 11은 시간초과 (TTL 만료)가 있다.
  • 쿼리 타입으로 단순 요청 or 응답만 요구하는 Type 8 or 0이 있다. (ping)

mit 대학에 핑 요청을 보내서 응답을 받은 경우
네이버는 ICMP 핑에 대한 요청을 막아논것을 볼 수 있다

Type 3에 대해서 Code 2는 프로토콜이 도달할 수 없다고 알려주고, Code 3은 Port에 도달할 수 없다고 알려준다. 이 두 메시지는 Host가 직접 생성한 메시지이다. 나머지 코드들은 경유할 때 거치는 라우터들에 의해 생성된다.

 

ICMP를 이용해서 echo ping을 요청하는 경우이다. type이 8인것을 볼 수 있다. 

반응형
Comments
반응형
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday