보안/학교,기관

IP 주소(네트워크보안)(Wireshark로 배우는 컴퓨터 네트워크)

지트리아 2022. 10. 6. 14:18

용어정의

본문 정리

개요

인터넷 주소, IP주소 : 인터넷에 연결된 각 장치를 구별하기 위해 TCP/IP 프로토콜 모음 IP 계층에서 사용하는 식별자이며 IPv4에선 32비트이다. 또한 전세계적으로 유일하다

주소 공간

프로토콜에서 사용되는 주소의 총 개수를 의미한다. 2의 32승 대략 40억개 이상이다.

표기법

2진 표기법, 점 10진 표기법, 16진 표기법이 있다.

2진 표기법은 1옥텟(8비트) 씩 나누어 표시하는 것이다.10010110 10010000 10000010 10000000

점 10진 표기법은 8비트를 그냥 10진 법으로 표시하는 것이다,111.56.24.78

16진 표기법은 4비트를 한묶음으로 나타낸 것이다,810B0BEF

주소의 범위

마지막 주소에서 처음 주소를 빼고 거기에 1을 더한다.(10진 표기법은 기수가 256임을 이용한다)

연산

NOT·AND·OR 을 이용한다.

클래스 기반 주소지정

1990년대 중반에 클래스 없는 주소지정으로 바뀐다.

클래스

총 5개의 클래스로 나뉜다.

시작주소가 128,63,32,16,8로 늘어남을 확인할 수 있다.

4바이트를 4부분으로 나누며 A(1:3), B(2:2), C(3:1), D(멀티캐스트 주소), E(향후 사용을 위한 예비용) 여기서 ? : ?는 Netid : Hostid를 의미한다.

 

클래스와 블록

내가 내가 적은 글을 보고 이해할 수 있을까

A클래스는 1바이트, 즉 8비트를 Netid 부분으로 갖는다. 이 비트에서 맨 왼쪽비트는 0이 되기 때문에 2^7의 경우의 수, 즉 128개의 블록을 가질 수 있다. 이제 3바이트는 Hostid로 어떤 숫자든 올 수 있다(물론 아주 가끔 특별한 주소가 있다 그것들 제외하고, 추후 설명이 있다.)즉 0.0.0.0~0.255.255.255인 블록이 128개가 올 수 있다는 의미이다.(127.255.255.255까지)

B클래스는 2바이트,즉 16비트를 Netid부분으로 갖는다. 이 비트에서 맨 왼쪽 두 비트는 10이 되기 때문에 2^14의 경우의 수, 즉 16384개의 블록을 가질 수 있다. 이제 2바이트는 Hostid로 어떤 숫자든 올 수 있다.(위랑 같은 말이 들어간다.) 즉 128.0.0.0~128.0.255.255인 블록이 16384개가 올 수 있다는 의미이다.(191.255.255.255까지)

C클래스는 3바이트,즉 24비트를 Netid부분으로 갖는다. 이 비트에서 맨 왼쪽 세 비트는 110이 되기 때문에 2^21의 경우의 수, 즉 2097152개의 블록을 가질 수 있다. 이제 1바이트는 Hostid로 어떤 숫자든 올 수 있다.(위랑 같은 말이 들어간다.) 즉 192.0.0.0~192.0.0.255인 블록이 2097152개가 올 수 있다는 의미이다.(223.255.255.255까지)

D클래스 한 블록만을 가지며 멀티캐스팅을 위해 설계 되었다.

E클래스 한 블록만을 가지며 예약된 주소로 사용하기 위해 설계 되었다.

 

2계층 주소 지정

Netid가 클래스를 보여주고 앞의 부분이 네트워크를 정의하기 때문에 뒷 부분이 호스트를 정의한다.

정확히는 n비트가 네트워크를 정의, 32-n비트가 호스트를 정의한다. n의 값은 A,B,C클래스에 따라 각각 8,16,24가 될 수 있다.

네트워크 주소 : 첫 주소는 목적지 주소로 패킷을 전송하는데 사용

라워터 프로스세스 : 목적지 주소 전달 받음 → 네트워크 주소를 찾음 → 라우팅 케이블을 통해 라우터에서 나가는 인터페이스 번호를 찾음(해당 인터페이스번호는 네트워크 주소랑 연관되어 있음) → 인터페이스 번호로 나감

네트워크 마스크 : 패캣의 목적지 주소에서 네트워크 주소를 추출하기 위해 사용된다. 앞의 n비트는 1이고 나머지는 0으로 채워져있다.(여기서 n은 클래스에 따라 8,16,24가 대입된다)

 

3계층 주소 지정 : 서브넷팅

앞은 netid & hostid로 2계층임을 알았다. 허나 통제 및 보안, A&B 클래스의 소진으로 인해 더 작은 블록으로 나누어야 했다. 서브넷팅은 블록을 작은 블록으로 나누는 개념이다. 이때 별도의 라우터를 사용한다. 

이때 netid는 subnetid로 바뀌며 해당 길이는 'n + log2에 s개의 서브넷'이다.

 

슈퍼넷팅

C클래스는 크기가 작아 사용되지 않았는데 이를 해결하기 위해 슈퍼넷팅이라는 해결책이 도입되었다. 해당길이는 'n - log2에 s개의 결합된 블록 개수'이다. 하지만 이는 주소 낭비 및 패킷 라우팅을 복잡하게 만들었다.

 

클래스 없는 주소지정

해당 방법은 단기적인 해결책이다.(장기적해결책은 IPv6)

 

가변 길이 블록

2에 0승, 2에 1승 ···· 2에 32승개의 주소를 갖는 블록이 기관에 할당될 수 있다.

 

2단계 주소 체계

netid & hostid의 역할을 prefix & suffix가 대신하는 것이다. 다만 n이 8,16,24에 국한되는 것이 아니라 0~32까지이다. 

따라서 클래스 때와 달리 블록에 속한 주소의 수, 처음주소 등을 바로 알 수 가 없다. 이에 프리픽스 길이 옆에 슬래시로 구분해주는 슬래시 표기법(클래스 없는 도메인 간 라우팅 표기법)을 이용한다.

슬래시 표기법을 이용하여 얻을 수 있는 정본는 3가지이다.(첫 번째 주소(네트워크 주소), 주소의 개수, 마지막 주소) 구하는 방식은 마지막 주소를 구하는 방식을 제외하곤 같으며 마지막 주소는 (임의의주소) 그리고 (네트워크 마스크)에 1의 보수를 취해 OR연산을 취하면 된다.(p.148)

 

블록 할당

블록 할당을 하기 위해선 3가지 제약조건이 만족되어야한다.

1. 요구 주소는 2의 거듭제곱이여야하고 2. 블록에 속하는 주소의 개수로 프리픽스 길이의 값을 알 수있어야 하며 3. 할당하고자 하는 주소들은 연속적인 숫자여야한다.

 

서브넷팅

해당 과정은 위에서 서술한 서브넷팅과 같다. 다만 이때 프리픽스 길이는 'n + log2에 할당받은 주소 총 개수 / 각 서브넷에 할당된 주소의 개수'이다.  이에 서브넷에 속하는 주소의 개수는 2의 거듭제곱이여야 한다.

 

 

특수 주소

특수 블록

모두 0인 주소 : IPv4 패킷을 전송하고자 하는 호스트가 자신의 IPv4 주소를 모르는 경우에 통신을 위해 사용된다.

모두 1인 주소 : 제한된 프로드캐스트 주소로 네트워크 내의 모든 다른 호스트들에게 메시지를 전송하고자 할때 사용된다.

127.0.0.0 : 루프백 주소로 컴퓨터에 설치된 소프트웨어를 시험하기 위하여 사용되는 주소이다.(ping 같은거)

사설 주소 : 이 주소들은 전역 네트워크에서 인식 되지 않으며 시설 용도를 위하여 할당 되었다. 이 주소들은 네트워크가 분리되어 있거나 주소 변환 기술을 사용하여 사설 망을 인터넷에 연결하는데 사용된다.

224.0.0.0 : 멀티캐스트 주소로 멀티캐스트 통신을 위하여 예약된 블록이다.

 

블록에 속하는 특수 주소

네트워크 주소 : 블록에 속하는 첫 번째 주소로서 호스트가 아닌 네트워크 자체를 정의한다.

직접 브로드캐스트 주소 : 서픽스가 모두 1로 설정된 블록, 라우터가 특정한 네트워크에 있는 모든 호스트들에게 패킷을 전송하기 위하여 사용된다. 해당 주소는 IPv4 패킷에서 목적지 주소로만 사용할 수 있다.

 

IPv6 주소

128비트 또는 16바이트 또는 16옥텟 길이이다.

 

표기법

IPv4는 점 10진 표기법이 많이 쓰이지만 너무 길기 때문에 콜론 16진 표기법을 사용한다.2바이트인 8개 영역으로 표시된다,FDEC : BA98 : ······· : FFFF

쉽게 표현하기 위해 제로 압축, 혼합 표기법, CIDR 표기법을 사용한다.

 

주소 공간

2에 128승으로 IPv4에 2에 96승배이다.

 

세 가지 주소 유형

유니캐스트 주소 : 단일 인터페이스(컴퓨터)를 정의한다. 

에니캐스트 주소 : 단인 주소를 모두 공유하는 컴퓨터 그룹을 정의한다.

멀티캐스트 주소 :컴퓨터 그룹을 정의한다. 에니케스팅과의 차이는 복사본을 수신 받는다.

 

IPv6 주소 공간 할당

대부분 예비용으로 두고 있다.

 

연습문제

Q1. IPv4 주소의 길이는 ---비트이다.

 32

 

Q2. IPv4 주소는 일반적으로 ---진 표기법 또는 점 10진 표기법으로 표기된다.

 2

 

Q3. 클래스 기반 주소지정에서 IPv4 주소는 --- 개의 클래스로 나누어진다.

 5

 

Q4. 클래스 A에서 netid는 ---이다.

 0~127

 

Q5. 클래스 B에서 netid는 ---이다.

 128~191

 

Q6. 클래스 C에서 netid는 ---이다.

 192~223

 

Q7. 클래스 A의 기본(default) 마스크는 ---이다.

 255.0.0.0

 

Q8. 클래스 B의 기본 마스크는 ---이다.

255.255.0.0

 

Q9. 클래스 C의 기본 마스크는 ---이다. 

255.255.255.0

 

Q10. 클래스 없는 주소지정에서는 각 기관에 ---이 할당된다.

 가변 길이 블록

 

Q11. 클래스 없는 주소지정에서 기관에게 할당하는 첫 번째 주소는 ---.

 주소의 개수로 나누어질 수 있어야 한다.

 

Q12. 클래스 없는 주소지정방식에서 16개의 블록이 시작하는 주소는 어떤 것인가?

 정답 없음

 

Q13. 클래스 없는 주소지정 방식에서 12.2.2.76/27인 주소가 있다면, 블록의 시작 주소는 무엇인가?

 12.2.2.64

 

Q14. 클래스 없는 주소지정 방식에서 12.2.2.76/10인 주소가 있다면, 블록의 시작 주소는 무엇인가?

 12.0.0.0

 

Q15. 클래스 없는 주소지정 방식에서 12.2.2.7/30인 주소가 있다면, 블록의 주소 개수는 얼마인가?

 4

 

Q16. 고정 길이 서프넷팅에서 서브넷의 수는 ---한다.

 2의 제곱이 되어야

 

Q17. 한 기관이 2.2.2.64/25인 주소를 가지는 블록을 부여받았다. 서브넷 프리픽스 길이가 /28이라면 서브넷의 최대 수는 얼마인가?

 8

 

Q18. 한 기관이 199.34.32.0/27로 시작하는 주소의 클래스 없는 주소지정 방식의 블록을 부여받았다. 부여된 주소의 수는 얼마인가?

 32

 

Q19. CIDR 표기법에서 A 클래스의 기본 마스크는 무엇인가?

 /8

 

Q20. --- 주소지정 방식에서 주소가 주어지면, 시작하는 주소와 주소의 범위를 구할 수 있다.

 클래스 기반

 

Q21. 클래스 없는 주소지정 방식에서 ---은 가변적인 부분이다.

 서픽스

 

Q22. 클래스 없는 주소지정 방식에서 프리픽스 길이는 ---을 정의한다.

 mask

 

Q23. 블록의 프리픽스 길이는 /22이다. 마스크는 무엇인가?

 255.255.252.0

 

Q24. 블록의 프리픽스 길이는 /15이다. 마스크는 무엇인가?

255.254.0.0

 

Q25. 블로그이 마스크는 255.255.255.224이다. 프리픽스 길이는 무엇인가?

 /31 이거 답지는 /32라는데 /31이 맞지 않나? 아시는분은 댓글 좀 달아주세요ㅠ

 

Q1. 다음 각 시스템에 대한 주소 공간은 얼마인가?

 8비트 주소 → 2에8승 , 16비트 주소 →  2에 16승, 64비트 주소 →2에 64승  

 

Q4. 다음 각 클래스의 16진 표기법에서 netid를 나타내는데 몇 개의 자릿수가 필요한가?

 클래스A  → 2자리 , 클래스B →  4자리, 클래스C →  6자리

 

Q6. 다음 IP 주소의 클래스를 적어라.

 208.34.54.12 → C, 238.34.2.1  →  D, 242.34.2.8  → E, 129.14.6.8  → B  

 

Q7. 시작 주소가 14.7.24.0이고 마지막 주소가 14.14.34.255인 범위에 속하는 주소의 개수를 구하라.

 2816개

 

Q8. 범위에 속하는 첫 번째 주소는 122.12.7.0이고 범위 내에 2048개의 주소가 있다면, 마지막 주소는 무엇인가? 

 122.12.14.255

 

Q11. 클래스 A의 서브넷에서 호스트의 IP 주소와 서브넷 마스크는 다음과 같다. 첫 번째 주소(서브넷 주소)는 무엇인가? 마지막 주소는 무엇인가?

 IP Address : 25.34.12.56   Subnet mask : 255.255.0.0

 25.34.0.0  25.34.255.255

 

Q12. 클래스 C의 서브넷에서 호스트의 IP 주소와 서브넷 마스크는 다음과 같다. 첫 번째 주소(서브넷 주소)는 무엇인가? 마지막 주소는 무엇인가?

 IP Address : 202.44.82.16   Subnet mask : 255.255.255.192

  202.44.82.0  202.44.82.63

 

Q13. 다음의 경우에서 서브넷 마스크를 구하라.

 클래스 A에서 1024개의 서브넷 : 1이 18개

 클래스 B에서 256개의 서브넷 : 1이 24개

 클래스 C에서 32개의 서브넷 : 1이 29개

 클래스 C에서 4개의 서브넷 : 1이 27개

 

Q14. 주소의 블록에서 어떤 호스트의 IP 주소가 182.44.82.16/26인 것을 안다. 이 블록의 시작 주소(네트워크 주소)와 마지막 주소(제한된 브로드캐스트 주소)는 무엇인가?

 182.44.82.00  182.44.82.63

 

Q15. 기관이 130.56.0.0/16 블록을 부여받았다. 관리자는 길이가 1024개의 서브넷을 만들기를 원한다.

 서브넷 마스크를 구하라. 1이 22개

 각 서브넷의 주소의 수를 구하라. 130.56.0.0 130.56.4.0

 첫 번째 서브넷의 시작과 마지막 주소를 구하라. 130.56.0.0 130.56.3.255

 마지막 서브넷(서브넷 1024)에서 시작과 마지막 주소를 구하라.130.56.252.0 130.56.255.255

 

Q16. 다음 마스크를 슬래쉬 표기법(/n)으로 작성하라.

 255.255.255.0. /24

 255.0.0.0/8

 255.255.224.0/19

 255.255.240.0/20

 

Q17. 다음 블록에서 주소의 범위를 구하라.

 123.56.77.32/29  123.56.77.32 ~39

 200.17.21.128/27  200.17.21.128 ~191

 17.34.16.0/23  17.34.16.0 ~ 17.34.1.255

 180.34.64.64/30   180.34.64.64~67

 

Q18. 다음 IPv6 주소를 생략되지 않은 콜론 16진 표기법으로 나타내어라.

 64개의 0비트 뒤에 32개의 2비트(01)가 반복되는 주소 0을 16개력한 후 5를 16개 입력

 64개의 0비트 뒤에 32개의 2비트(10)가 반복되는 주소 0을 16개력한 후 A를 16개 입력

 64개의 2비트(01)가 반복되는 주소 5를 32개 입력

 32개의 4비트(0111)가 반복되는 주소 7을 32개 입력

 

Q19. 다음 주소를 생략형으로 나타내어라.

0:FFFF:FFFF::

1234:2346:3456::FFFF

0:1::FFFF:1200:1000

::FFFF:FFFF:24:123:12:6

 

이 밑에 있는 건 모르겠다 아는 분은 댓글주시면 감사합니다.

Q22. 기관이 2000:1234:1423/48의 블록을 할당 받았다. 이 기관의 첫 번째와 두 번째 서브넷의 CIDR 표기법은 무엇인가? 

  2000:1234:1423/48

 

Q23. 클래스 없는 주소지정에서 두 개의 블록이 동일한 프리픽스 길이를 가질 수 있는가? 설명하여라.

 

 

Q24. 클래스 없는 주소지정 방식에서 블록에 속하는 첫 번째 주소와 임의의 하나의 주소(마지막 주소가 아닐 수도 있음)를 알고 있다. 프리픽스 길이를 알 수 있는가? 설명하여라.

 

 

Q25. ISP는 120.60.4.0/20으로 시작하는 주소의 블록을 할당받았다. ISP는 블록을 1000개의 기관이 각각 8개의 주소만을 갖도록 분배하기를 원한다. 서브블록을 설계하고 각 서브블록에 대해 슬래쉬 표기법으로 나타내어라. 할당 후에 사용가능한 주소는 얼마인지 구하라.