Network/OSI 7 Layers

[정리] 내 디바이스가 웹서버와 연결하기까지 [1] (DHCP / IP / ARP / DNS )

Bans 2021. 2. 1. 03:55

내 디바이스가 웹 서버와 연결하기까지 [1] (DHCP / IP / ARP / DNS )
 - Wireshark 를 통한 패킷캡쳐

OSI 7 Layers - 7계층 구조를 통해

네트워크의 구성요소와

각 계층의 특징 / 역할 / 대표 프로토콜 등을 정리했다.

 

1-4계층의 역할은 다음과 같이 간단하게 요약할 수 있다.(호스트 계층)

 

1계층 : 물리적 연결

2계층 : 물리적 연결의 검증

3계층 : 논리적 연결

4계층 : 논리적 연결의 검증

bans.tistory.com/2
 

OSI 7 Layer Model 에 대하여

- OSI 7 Layer Model (Open Systems Interconnection Reference Model) OSI 7 계층이란? -> 개방된 통신 시스템간의 상호연결성을 부여하는 표준 OSI 7 계층 - 국제 표준화 기구(ISO)에서 정의한 통신의 7단계..

bans.tistory.com

 

이제 네트워크 패킷 캡쳐 도구 와이어샤크(Wireshark)를 이용하여

디바이스가 네트워크에 연결되는 시작점 부터

웹 주소를 통해 웹 페이지를 읽어오는 과정을 전체적으로 정리해보려 한다.

 

 

1. 무선랜 연결 후 IP 할당 과정 (ARP / DHCP)

1.1 와이어샤크로 무선랜을 켠 순간부터 캡쳐된 초기 프레임들

 

Apple = 내 Device 제조사 (맥북)

Mercury = 우리집 공유기 제조사 (SKB)

 

1번 프레임부터 차례대로 내려오면

EAPOL 이라는 프로토콜을 통해 4-Way handshake 로 wifi 인증 과정을 거쳐

디바이스와 공유기가 맥 주소를 통해 통신한다. (OSI 1계층, 2계층)

 

다음으로 보이는 프로토콜은 ICMPv6 프로토콜이며, 이 프로토콜은

오류 메시지 전달 등 주요 제어 메시지에 사용하는 프로토콜이다.

https://m.blog.naver.com/nackji80/220891048637 (ICMPv6 관련 참조 블로그)
 

[IPv4 와 IPv6 차이] ICMPv6 프로토콜에 대해서 알아보자.

# IPv4와 IPv6 비교# IPv6 네트워크# ICMP, ICMPv6 안녕하세요!!"IPv6 Network의 이해" ...

blog.naver.com

 

다음으로 보이는 프로토콜은 ARP 와 DHCP 프로토콜이 있다.

 

1.2 ARP 패킷
1.3 DHCP 패킷

ARP 프로토콜은 IP 주소를 통해 통신 상대의 MAC 주소를 알아내기 위해 사용하는 프로토콜로,
반대의 경우는 RARP (MAC -> IP)라 부른다.

1.4 ARP 의 대략적인 구조

참고 블로그 : https://nitw.tistory.com/186
 

ARP(Address Resolution Protocol)

ARP(Address Resolution Protocol) 데이터의 송수신 시 호스트의 IP 주소를 아는 것 만으로는 MAC 주소를 이용해 통신하는 네트워크 계층에서 프레임을 전달하는 것은 불가능하다. 때문에 TCP/IP 통신에서 하

nitw.tistory.com

1.5 (그림 1.1, 1.2 에서 확인할 수 있는) Frame 12 의 패킷 캡쳐 상세

Request 와 Reply (Opcode 1 / 2) 상태로 나뉘며,

요청 상태에서는 Destination 을 Broadcast 로 설정하여,

Target IP address (캡쳐에선 192.168.35.1) 를 가진 기기의 MAC 주소를 요청하고

응답 상태에서는 Frame 13의 내용처럼 Destination 과 Source 의 주체가 서로 바뀌어 Unicast 로 응답하는 모습을 볼 수 있다.

(+ Frame 10의 ARP Announcement 는 ARP 테이블에 있는 캐시 항목을 업데이트하기 위해 Broadcast로 전송된다. )


ARP 는 IP 주소를 알아야 동작할 수 있다.

위에서는 이미 기기가 할당받은 자신의 IP 주소를 알고 있다는 전제하에 통신이 이루어지는데

IP 주소를 할당받는 데에는 DHCP 라는 프로토콜이 필요하며,

이미 할당받은 IP 가 디바이스의 테이블에 저장되어 있기에 ARP 프로토콜이 실행되었던 것이다.

 

DHCP 의 프로토콜 진행은 아래와 같이 4단계로 이루어진다.

DHCP Discover -> DHCP Offer -> DHCP Request -> DHCP Ack

1.6 DHCP 4단계 진행절차

참고 블로그 : https://jwprogramming.tistory.com/35
 

DHCP란?

DHCP (Dynamic Host Configuration Protocol) - DHCP는 Dynamic Host Configuration Protocol의 약자입니다. DHCP란 호스트의 IP주소와 각종 TCP/IP 프로토콜의 기본 설정을 클라이언트에게 자동적으로 제공해주..

jwprogramming.tistory.com

DHCP를 통한 IP 주소 할당은 임대라는 개념을 가지고 있다.

이는 DHCP 서버가 임대기간(IP Lease Time)을 명시하여 그 기간 동안만 단말이 IP 주소를 사용하도록 하는 것이다.

임대기간 이후에도 계속 해당 IP 주소를 사용하고자 한다면 

IP 주소 임대기간 연장(IP Address Renewal) DHCP 서버에 요청해야 하고

임대 받은 IP 주소가 더 이상 필요치 않게 되면 IP 주소 반납 절차(IP Address Release)를 수행하게 된다.

보통 가정에서 ISP 업체 (KT SK LG 지역케이블 등) 로부터 받는 서비스를 유동IP 라고 부르며

이 과정에 DHCP 가 사용된다.

 

1.7 DHCP 패킷구조

출처 : https://jinheeahn.wordpress.com/2015/10/28/4-dhcp-packet-설명-1/
 

(4) DHCP Packet 설명 1

지난 시간에 이어서 Wireshark로 Capture한 Packet에 대한 설명을 하면서 DHCP가 어떻게 동작하는지 알아보겠습니다.   DHCP가 무엇인지 잘 모르신다면 아래의 링크를 확인해주세요. DHCP 시작하기 !  – D

jinheeahn.wordpress.com

1.8 Frame 11의 DHCP 패킷 정보

위와 같이 DHCP 의 Type 에 따라 Option 값이 다르게 나타나며, 위의 패킷은 DHCP ACK 패킷으로,

할당 된 IP 에 관련된 여러 정보들이 나열되어 있다.

실제로, 아래에 DNS 서버들 (210.220.163.82 / 219.250.36.130) 은 SK Broadband 의 IP 주소다.

 

1.9 DHCP에 표현되는 DNS IP는 현재 나의 인터넷 ISP 업체의 소유

 

2. DNS 부터 HTTP까지

DNS (Domain Name Server) 는 도메인과 해당 서버의 IP를 연결하는데 필요한 정보를 저장하는 곳으로,

실제 도메인 이름 ( ex. www.google.co.kr. ) 을 통해 해당 IP 주소를 알아오는 데에 사용된다.

 

2.1 도메인으로 알수있는 DNS Server 구조

 

참조 블로그 : https://it-mesung.tistory.com/180 (DNS 과정)
 

[Network] DNS 과정

DNS(Domain Name System) 개인 컴퓨터의 웹에서 www.naver.com을 입력하면 어떤 과정을 통해 접속하는 지 살펴보자. DNS는 IP 주소를 기억하는 것이 어렵기 때문에 DNS가 등장한 것이다. DNS의 과정을 간략히

it-mesung.tistory.com

 

2.2 DNS 패킷 캡쳐

위의 DNS 패킷을 보면 사용하는 프로토콜 (UDP), 요청 도메인의 IP 주소 등이 응답으로 나오는 걸 알 수 있다.

DNS Response의 Source Address (210.220.163.82)가 위의 1.9 그림에 나온, 이용중인 ISP의 DNS서버임을 확인할 수 있다.

 

패킷 분석에 대한 추가적인 자세한 내용은 아래의 블로그 참고.

참고 블로그 : https://darksoulstory.tistory.com/62
 

기본적인 DNS Packet 분석

DNS는 UDP나 TCP를 통해 실행할 수 있으며, TCP를 이용하는 경우는 Zone 전달이나 큰 DNS 쿼리를 보낼 때 이용 하며, 일반적으로 UDP를 이용하는 DNS 쿼리/응답 패킷만 볼 수 있다. DNS 메시지의 형태는

darksoulstory.tistory.com