컴퓨터공학/네트워크관리사 2급 필기+실기

네트워크 관리사 2급 필기 [네트워크 일반] #4

연봉1000억 2024. 2. 10. 10:21
와이어 샤크로 IPv4 주소 알아보기

 

1-1 정보를 표현하는 단위 (bit)와 IP 주소 체계

 

0과 1은 2가지를 표현할 수 있다. 이것이 1bit이다. 그럼 2bit는 몇개를 표현할 수 있을까? 아래와 같이

총 4개를 표현할 수 있다. 이것을 수학으로 거듭제곱이며 2의 2승이라고 표현한다. 8bit는 1byte가 되며

2의 8승이다. 총 256가지가 생긴다.

 

0,0

0,1

1.0

1.1

 

즉, 0부터 255 사이로 값을 표현할 수 있게 된다. 이것을 .으로 구분하는데 옥텟이라고 한다. 그렇게 최대 0.0.0.0 부터 255.255.255.255의 사이로 경우의 수가 생기며 이것을 32bit라고 한다. 40억개가 넘는 IP 주소가 만들어진다. 

 

1-2 IPv4는 클래스 A, B, C, D로 나눠짐

40억개가 넘는 IP 주소들을 나눠서 사용하기 위해 A,B,C,D로 나눠서 쓴다. 

Rage는 네트워크 ID의 범위이며 Network Address는 호스트 ID이다.

https://ko.ipshu.com/dns-ip/1.0.0.1#question2

 

DNS 서버 IP 주소: 1.0.0.1

1.0.0.1은 APNIC Research and Development - California에 속하는 DNS 서버의 IP 주소입니다. 다음은 이 DNS 주소에 대한 자세한 정보입니다.

ko.ipshu.com

여기에서 아이피를 검색해볼 수 있다.

1.0.0.1을 검색해보면 재밌는 서버가 나온다.
살면서 볼일이 없는 주소 0.0.0.0은 도대체 뭘까?

1-3 공인 IP와 사설 IP 확인 방법

공인 IP를 네이버에 검색하거나 구글에 내 IP 확인하기를 검색하면 공인 IP가 뜨게 된다. 구글에 재밌는 사이트가 하나 있는데 https://ip.pe.kr/ 바로 이곳이다.

 

내 아이피 확인 (My ip address) - ip.pe.kr

211.231.103.94 당신의 공인 아이피 주소는 위와 같습니다. 접속하신 국가는 대한민국 (KR) 입니다. 자세히 알아보기 서버를 이전 했습니다! NEW -->

ip.pe.kr

ip.pe.kr 홈페이지
Kwon Hyung joo (권형주)라는 사람이 만들었다.
2015년에 만들어진 곳이다.
dbip api를 이용하여 IP 주소의 실제 위치를 알려주는 기능을 만들었다.
Team.ATDE 라는 곳에서 만들었나보다.
흠... 열심히 사시는 분..

 

2014년 무려 10년전 글들이..

 

암튼 cmd에서 ipconfig를 쳤을 때 192로 시작한다면 공유기에 의해 생긴 사설 IP인 것이고 모뎀과 직접 연결된 컴퓨터의 경우 공인 IP가 뜰 것이다. 

 

1-3 IP 패킷 실제로 보기

https://www.wireshark.org/download.html

 

Wireshark · Download

Wireshark: The world's most popular network protocol analyzer

www.wireshark.org

wireshark를 깔아주자.

다른 덤프들도 깔아주자
npcap도 깔아주자
USB Pcap도 깔아주자

 

Packet capture을 줄여서 Pcap이라고 한다.

reboot now가 있으므로 저장한 이후에 피니시를 눌러주자.
wireshark의 처음 화면이다. 왼쪽 상단 위 톱니바퀴를 누르면 다른 이더넷으로 바꿔서 캡처할 수 있다.
1번째 패킷을 보면 IP 주소가 나오는데 192로 시작하는 것은 나의 IP이고 목적지(Destination)은 230.0.0.1이다.
230.0.0.1은 미국 IANA라는 기관에서 예약한 IP 주소이다. 2번째 계층에 있는 DNS 서버라고 한다.

https://www.novell.com/documentation/dns_dhcp/?page=/documentation/dns_dhcp/dhcp_enu/data/behdbhhj.html

 

Novell Documentation

 

www.novell.com

https://securitymanjoseph94.tistory.com/6

 

와이어샤크를 이용해 IP패킷 분석하기

오늘은 와이어샤크를 이용해 IP패킷을 분석해 보도록 하겠습니다. 분석 전 먼저 헤더 구조를 알아야 하니 IP 헤더구조에 대해 설명하겠습니다. 버전 : 사용중인 IP패킷의 버전 (IPv4 또는 IPv6) 헤더

securitymanjoseph94.tistory.com

패킷 분석기를 이용하여 패킷을 가지고 IP Header를 확인해보자. 

https://www.youtube.com/watch?v=8lFfi_NpvDs

IP 헤더를 와이어 샤크를 가지고 설명해준다.

https://en.wikipedia.org/wiki/Internet_Protocol_version_4#Header

 

Internet Protocol version 4 - Wikipedia

From Wikipedia, the free encyclopedia Fourth version of the Internet Protocol Internet Protocol version 4 (IPv4) is the fourth version of the Internet Protocol (IP). It is one of the core protocols of standards-based internetworking methods in the Internet

en.wikipedia.org

위키피디아에서 검색하는게 더 좋은 자료가 많다.
인터넷 프로토콜 버전 4, src(출발지) Dst(도착지) Header Length 20 bytes (5)는 헤더의 길이를 나타낸다. 패킷에 따라서 헤더의 길이는 조금씩 달라진다.

 

Version : ipv4를 의미한다.

Source address : 패킷이 출발한 IP 주소

Destination address : 패킷이 도착한 IP 주소

IHL(Internet Header Length) : 인터넷 헤더의 길이 

DSCP : CS0 / ECN : Not-ECT

 

DSCP(Differentiated Services Code Point)는 무엇일까?

 

Differentiated Services Field Codepoints (DSCP)

2 xxxx11 Experimental or Local Use Reserved for experimental or Local Use

www.iana.org

https://access.redhat.com/documentation/ko-kr/red_hat_openstack_platform/16.2/html/networking_guide/dcsp-marking-egress-traffic_config-qos-policies

 

9.5. DSCP 표시 QoS 정책을 사용하여 네트워크 트래픽 우선 순위 지정 Red Hat OpenStack Platform 16.2 | Red Ha

Access Red Hat’s knowledge, guidance, and support through your subscription.

access.redhat.com

 

 

DSCP : CS0 는 RFC 2474번 문서에서 확인할 수 있다.

 

원래는 ToS(Type of service)였다고 한다. 이후에 발전하여 DSCP로 변경되었다.

 

https://en.wikipedia.org/wiki/Type_of_service

 

Type of service - Wikipedia

From Wikipedia, the free encyclopedia A field in a header of a IPv4 packet header The type of service (ToS) field is the second byte of the IPv4 header. It has had various purposes over the years, and has been defined in different ways by five RFCs.[1] Pri

en.wikipedia.org

https://www.cisco.com/c/ko_kr/support/docs/quality-of-service-qos/qos-packet-marking/10103-dscpvalues.html

 

차별화된 서비스 코드 포인트를 사용하여 QoS(Quality of Service) 정책 구현

이 문서에서는 Cisco 라우터의 QoS(Quality of Service) 설정에서 DSCP(Differentiated Services Code Point) 값을 설정하는 방법에 대해 설명합니다.

www.cisco.com

http://www.ktword.co.kr/test/view/view.php?no=769

 

DiffServ

DiffServ, Diff-Serv   Differentiated Service   차등 서비스(2019-07-18)

www.ktword.co.kr

http://www.ktword.co.kr/test/view/view.php?m_temp1=574&id=557

 

QoS

QoS, QOS   Quality Of Service   서비스 품질(2022-05-01)

www.ktword.co.kr

요약하자면 원래는 Tos였다가 DSCP로 바뀌게 되었고 DSCP는 DiffServ를 구현하기 위해 설정하는 값이다. 우선순위에 따라서 패킷을 나누고 등급을 매겨 좀 더 안정적으로 통신이 되도록 하기 위해(Qos)사용된다. 트레픽에 따라 적용되는 값을 다르게 설정할 수 있는데 멀티미디어, 음성신호, 실시간 대화, 휴대폰, 네트워크 제어 등으로 구분한다.

각 값에 대한 설명을 chatgpt로 확인할 수 있다.
ECN에 대한 chatgpt의 설명

 

ECN(명시적 혼잡 알림)은 IP 네트워크안에 있는 endpoint(네트워크에 연결되는 모든 장치)에서 사용된다. 현재 통신 상태가 좋지 않아 정체가 되었다면 CE(Congestion Experienced)를 보내서 혼잡제어를 하는 역할을 하게 된다. 이런 식으로 IP 패킷에는 시시각각 변화하는 네트워크 환경을 고려한 정보들이 있다.

 

Total length(총 길이) : IP 패킷의 크기이며 bytes로 표시함. 최소 크기는 20bytes 최대 크기는 65,535bytes이다. 하지만 실재로는 Router의 MTU(Maximum Transmission Unit)에 제한을 받는데 표준 이더넷은 1500bytes라서 IP 단편화(IP Fragmentation)과정을 거친다.

 

https://itwiki.kr/w/IP_%EB%8B%A8%ED%8E%B8%ED%99%94

 

IT위키

IT에 관한 모든 지식. 함께 만들어가는 깨끗한 위키

itwiki.kr

https://www.cloudflare.com/ko-kr/learning/network-layer/what-is-mtu/

 

Identification(인증) : 패킷이라는 용어가 일반적으로 사용되는 것이고 IP datagram은 IP 패킷을 좀 더 명확하게 하는 용어이다. 이러한 IP datagram이 조각화(단편화)가 된다. 이 때 원본 IP datagram에 할당된 고유번호가 identification이다.

 

Flags : IP datagram에서 단편화를 하는 과정에서 나눠진 패킷들을 제어하거나 식별하는데 사용된다. 

Flagment offset : 단편화한 패킷들의 오프셋이다.

offset : 오프셋은 다양한 의미로 사용된다. 

Flags : 0x2, Don't fragment

https://datatracker.ietf.org/doc/html/rfc791

 

RFC 791: Internet Protocol

 

datatracker.ietf.org

 

Flags에는 3가지 값이 있다.

 

0x2는 16진수로 표현된 값이다. 그래서  flags: 0x2는 flags : 2 라는 의미이다.

 

더블 클릭하면 무슨 값으로 flags가 설정되었는지 확인할 수 있다. Don't fragment로 set 되어있다. 즉, 패킷을 나누지 말라는 말이다.

이러한 flags는 ping, traceroute의 명령어를 사용하는데 도움을 준다. 이러한 방식을 Path MTU Discovery(PMTUD)를 사용한다고 표현하기도 하며 여기서 PMTUD는 두 IP 호스트 사이의 경로에서 MTU의 크기를 결정하기 위해 사용되는 기술이다. 즉, ping, traceroute와 같은 명령어는 PMTUD를 진단하기 위해 구현한 것이라고도 할 수 있다. 

 

https://www.cisco.com/c/en/us/support/docs/ip/generic-routing-encapsulation-gre/25885-pmtud-ipfrag.html

 

Resolve IPv4 Fragmentation, MTU, MSS, and PMTUD Issues with GRE and IPsec

This document describes how IPv4 Fragmentation and Path Maximum Transmission Unit Discovery (PMTUD) work.

www.cisco.com

 

 

 

Header checksum : 헤더의 손상을 감지하기 위해 사용되는 데이터이다.

 

https://blog.naver.com/barcel/221222325295

 

IP Header Checksum[헤더 체크섬]

체크섬(checksum)은 검사합으로 간단하게 오류를 검출하는 방법이다. 체크섬을 이용해 네트워크를 통해 전...

blog.naver.com

https://en.wikipedia.org/wiki/Checksum

 

Checksum - Wikipedia

From Wikipedia, the free encyclopedia Data used to detect errors in other data Effect of a typical checksum function (the Unixcksum utility) A checksum is a small-sized block of data derived from another block of digital data for the purpose of detecting e

en.wikipedia.org

IP 단편화 과정
array 자료구조에서 인덱스를 의미한다. 엑셀로 예를들면 row와 column을 구성한 이후에 고유번호인 Key를 따로 작성하여 index와 같은 의미로 사용하는 것과 비슷하다.

 

 


그외 다른 링크들 및 RFC 문서에 대한 내용

 

 

Wireshark · Display Filter Reference: Internet Protocol Version 4

Wireshark: The world's most popular network protocol analyzer

www.wireshark.org

wireshark에서 필터링을 이용하여 원하는 패킷의 내용을 찾아볼 수 있다. cmd 명령어를 조합해서 쓰는 것과 비슷하고 찾는 것 자체는 그렇게 어렵지는 않지만 굉장히 많은 프로토콜들이 있고 프로토콜의 구조가 복잡하기 때문에 유의미한 패킷을 찾아 내는 것이 중요할 것 같다. 

 

https://www.ietf.org/

 

Home

 

www.ietf.org

IETF(국제인터넷표준화기구) 홈페이지

https://www.ietf.org/blog/how-read-rfc/

 

How to Read an RFC

 

www.ietf.org

RFC 문서 개요

https://www.rfc-editor.org/search/rfc_search_detail.php?rfc=rfc+4&pubstatus%5B%5D=Any&pub_date_type=any

 

RFC Search Detail

From Month January February March April May June July August September October November December Year 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998

www.rfc-editor.org

RFC의 수많은 문서들 현재까지 9000개가 넘는 문서들이 존재한다. 재밌는 문서가 있을 수도 있다.

https://datatracker.ietf.org/doc/rfc5234/

 

RFC 5234: Augmented BNF for Syntax Specifications: ABNF

Internet technical specifications often need to define a formal syntax. Over the years, a modified version of Backus-Naur Form (BNF), called Augmented BNF (ABNF), has been popular among many Internet specifications. The current specification documents ABNF

datatracker.ietf.org

제대로 번역이 안된다... 9000개가 넘는 RFC 문서 언제 읽을까

https://80000coding.oopy.io/27733d13-5f80-42d0-a393-8107dda2eadd

 

RFC 5234, RFC 7405 요약 정리

 

80000coding.oopy.io

https://codingdreamtree.tistory.com/45

 

RFC 문서

RFC란 Request For Comments의 약자로 의견 요청이라는 뜻이 담겨져있다. 위키에 따르면. 인터넷 기술에 적용 가능한 새로운 연구 , 혁신 , 기법등을 아우르는 메모를 의미한다. 인터넷 협회에서 기술자

codingdreamtree.tistory.com


이렇게 와이어샤크로 IPv4 패킷을 중점적으로 알아봤고 IP 패킷은 MTU에 따라서 어쩔 수 없이 패킷이 쪼개지는 단편화 과정을 거친다는 것을 알 수 있었다. 그리고 단편화 이후에 재조립 과정이 있다. 이러한 과정속에서 데이터는 합쳐지고 보내지고 쪼개지는 것을 반복한다. 

국제 인터넷 표준화 기구에 방대한 RFC 문서들이 있는데 너무 오래되거나 자신의 상황에 따라 필요가 없는 문서도 많다. 외울 수 없기 때문에 Chatgpt로 요약을 해서 읽어보거나 중요한 RFC 문서만 검색하여 알아두면 좋을 것 같다. 

의미는 비슷한데 쓰이는 용어가 달라서 헷갈리는 경우가 있다. 예를들어 offset이 사실 index와 같은 의미인데 index라고 하면 array의 index 값을 의미할 수도 있지만 db에 따라서 key 값이나 panel과 같은 3d dataframe 구조도 있다.
x,y,z로 3차원을 정보를 표현하듯이 데이터 베이스 또한 그렇게 만들 수 있다. 

https://stackoverflow.com/questions/50055457/align-pandas-dataframes-as-panels

 

Align pandas dataframes as panels

I have 12 dataframes of the same shape for 12 years of data collection. I need to use this as a panel to to plot the various column values across the time series axis (years). Hence, I think I sho...

stackoverflow.com