외부활동/CS 면접 끝장내기 - 컴퓨터 네트워크 2기

컴퓨터 네트워크 4주차 스터디 정리

소프 2023. 8. 13.

IP 프로토콜

IP 주소

IP는 네트워크 상에서 컴퓨터(노드)를 식별하기 위해 부여된 위치주소이다.

https://catsbi.oopy.io/15f97a5f-acc8-410e-afab-0b26adff89c5

네트워크 주소는 공통적인 부분이고, 호스트 주소가 중복이 없고 유일한 식별자 역할을 한다.

예를 들면 OO 아파트 101동 101호라는 주소가 있으면 101동까지가 네트워크 주소고, 101호가 호스트 주소가 된다.

※ 네트워크 주소는 각 국가마다 부여한다. == 지역(043-256...)

※ 호스트 주소는 호스트들을 개별적으로 관리하기 위해 사용한다.(국가의 국민) 전화기(5551)

 

IP 주소는 실제로 32자리의 2진수로 이루어져 있다.

192.168.0.103의 2진수

11000000.10101000.00000000.01100111

IP는각 자릿수를 옥텟이라 부르며 dot(.)으로 구분한다.

즉 IP는 00000000.00000000.00000000.00000000 ~ 11111111.11111111.11111111.11111111 까지 대략 0 ~ 2^32개 정도를 만들 수 있다.

32비트 주소를 사용하여 약 43억개의 주소를 만들 수 있다.

 

※ 현재는 대부분 사용되고 있어 Ipv6 표현으로 대체중이다.

 

IP 주소 클래스(A, B, C class)

IP 주소를 네트워크 주소와 호스트 주소로 구분하는 방법

하나의 네트워크에서 몇 개의 호스트 주소를 가질 수 있느냐에 따라 클래스를 나눌 수 있다.

3개의 클래스로 나눈 이유는 네트워크의 크기에 따른 구분

하나의 네트워크에서 몇 개의 호스트 IP 까지 가질 수 있는가에 따라서 클래스를 나눔

https://catsbi.oopy.io/f565e8c1-34c6-4b61-be61-e1ab04fc51fb

 

https://velog.io/@hidaehyunlee/IP-address%EB%9E%80

 

Class A

하나의 네트워크가 가질 수 있는 호스트 수가 가장 많은 클래스(대규모 네트워크)

https://inpa.tistory.com/entry/WEB-IP-%ED%81%B4%EB%9E%98%EC%8A%A4-%EC%84%9C%EB%B8%8C%EB%84%B7-%EB%A7%88%EC%8A%A4%ED%81%AC-%EC%84%9C%EB%B8%8C%EB%84%B7%ED%8C%85-%EC%B4%9D%EC%A0%95%EB%A6%AC

IP주소를 바이너리로 표시할 때 맨 앞자리 수가 항상 0인경우

0.0.0.0 ~ 127.255.255.255.255까지를 A 클래스라 한다.

네트워크 주소는 1.0.0.0과 126.0.0.0 까지로 규정

호스트 개수는 2^24 - 2

-2인 이유는 모두가 1인 경우 브로드캐스트 주소로 사용하고 모두가 0인 경우엔 네트워크 주소로 사용해서 호스트 IP로 사용해선 안됨)

 

Class B

IP 주소를 바이너리로 표시할 때 맨 앞자리수가 항상 10인 경우(중규모 네트워크)

https://inpa.tistory.com/entry/WEB-IP-%ED%81%B4%EB%9E%98%EC%8A%A4-%EC%84%9C%EB%B8%8C%EB%84%B7-%EB%A7%88%EC%8A%A4%ED%81%AC-%EC%84%9C%EB%B8%8C%EB%84%B7%ED%8C%85-%EC%B4%9D%EC%A0%95%EB%A6%AC

128.0.0.0 ~ 191.255.255.255 까지를 B 클래스라 한다

네트워크의 범위는 10xx.xxxx. xxxx.xxxx에서 x들이 가질 수 있는 경우의 수 (2^14)

호스트 주소 범위는 xxxx.xxxx.xxxx.xxxx에서 x들의 경우의 수인 (2^16 - 2)

IP 주소가 172.30.1.12 라면 B 클래스고  네트워크 부분은 172.30 / 호스트 부분은 1.12

 

Class C

IP 주소를 바이너리로 표시할 때 맨 앞자리 수가 항상 110으로 시작한다. (소규모 네트워크)

192.0.0.0 ~ 223.255.255.255 까지를 C클래스라 한다

네트워크의 범위는 110x xxxx xxxx xxxx xxxx xxxx 에서 x 가 가질 수 있는 경우의 수 (2^21)

호스트의 범위는 xxxx xxxx 에서 x가 가질 수 있는 경우의 수(2^8) - 2

 

 

 

Class D

D클래스는 첫번째 옥텟의 네번째 비트가 1110으로 고정

1110 xxxx. xxxx xxxx. xxxx xxxx. xxxx xxxx

표현할 수 있는 범위는 224.0.0.0 ~ 239.255.255.255

멀티캐스트용 대역으로 IP주소에 할당되지 않는다.

 

Class E

E클래스는 첫번째 옥텟의 네번째 비트가 1111으로 고정

1111 xxxx. xxxx xxxx. xxxx xxxx. xxxx xxxx

표현할 수 있는 범위는 240.0.0.0 ~ 255.255.255.255

연구용 예약된 주소 대역으로 IP주소에 할당되지 않는다.

 

네트워크 주소 & 브로드 캐스트 주소

IP 주소에서 사용할 수 없는 주소가 두가지가 존재한다.

가장 첫번째 호스트 주소(호스트 ID가 모두 0인 주소)는 네트워크 자체를 지칭하며, 마지막 주소(호스트 ID가 모두 1인 주소)는 브로드캐스트용 주소로 쓰인다.

https://inpa.tistory.com/entry/WEB-IP-%ED%81%B4%EB%9E%98%EC%8A%A4-%EC%84%9C%EB%B8%8C%EB%84%B7-%EB%A7%88%EC%8A%A4%ED%81%AC-%EC%84%9C%EB%B8%8C%EB%84%B7%ED%8C%85-%EC%B4%9D%EC%A0%95%EB%A6%AC

네트워크 주소는 말 그대로 네트워크 자체를 나타내는거고, 브로드 캐스트 주소는 인터넷 데이터를 전달하기 위한 주소로서, 이것은 모든 네트워크 아이피 클래스에서 동일하게 적용 되는 것이므로 주의해야 한다. 사용하면 문제가 생긴다.


다음 과 같이 사용할 수 있는 아이피 주소 범위가 있다고 하자.

 

192.168.10.0 ~ 192.168.10.255

 

여기서 첫번째 192.168.10.0은 192.168.10 의 네트워크 자체를 가리키고,

맨 마지막 192.168.10.255가 브로드캐스트용 주소가 되게 된다.

그리고 그 사이의 192.168.10.1 ~ 192.168.10.254 주소들을 우리가 실제로 사용하는 것이다.

 

💡 그중 192.168.10.1은 보통 공유기(라우터)가 가져가게 된다. 그래서 보통 사용자들은 192.168.10.2 부터 할당 받는 편이다.

 

 

IPv6란

사용가능한 주소의 제한을 늘리기 위해 도입된 것이다. IoT 등 급진하는 네트워크 디바이스들의 인터넷 사용을 대비

콜론으로 구분된 4개의 16진수로 구성된 8개의 그룹으로 구성된다.

ex) 2001:0db8:85a3:0000:0000:8a2e:0370:7334

128비트의 주소를 사용하여 엄청나게 많은 주소(약 340십억개의 주소)를 만들 수 있어 주소 고갈 문제를 해결할 수 있다.

 

💡 브로드 캐스트란?
같은 대역의 네트워크 주소를 가진 모든 호스트들에게 패킷을 전송하는 방식
수신받은 장비들은 거부권 없이 반드시 수신
나에게 필요한정보인지 확인하는 과정에서 CPU를 사용(부담 업) / 과도한 브로드캐스트는 네트워크 및 PC 성능에 좋지 않음
ex) 아파트 방송
실질적인 통신은 IP 주소가 아닌 MAC 주소로 이루어지는데 IP 주소는 알고 있지만 MAC 주소를 모를때 사용하는 방법
ex) 방송으로 홍길동의 집이 어디야? 하면 홍길동이 "우리집 주소는 OOO야" 하면서 주소를 전달
ARP 과정이 브로드캐스트를 통해 IP로 MAC 주소를 알게되는 것

💡 멀티 캐스트란?
1:N 방식
특정 그룹을 지정해서 해당 그룹원에게만 보내는 방식
스위치나 라우터가 기능을 지원해줘야 함

💡 유니 캐스트란?
출발지와 목적지가 정확해야 하는 1:1 전송 방식
자신의 MAC 주소와 비교해서 동일한 노드만 수신함
원하는 노드랑만 통신

💡 애니 캐스트란?
가장 가까운 노드와 통신하는 방식
수신가능한 노드 중 한 노드에만 데이터를 전송

 

IPv4 IPv6 차이점

헤더 복잡성

ipv4는 14개 필드

Ipv6는 8개 필드로 간소화, 사용하는 서비스의 형태에 따라 헤더를 분리하였다. 그래서 독립된 헤더를 사용하여 각 기능에 적합한 형태로 전송함으로써, 효율적인 전송을 보장한다.(즉, 불필요한 과정(단편화, 헤더 오류 탐지 등)이 생략)

 

메시지 전송 방식

ipv4는 유니캐스트, 멀티캐스트, 브로드캐스트

Ipv6는 유니캐스트, 멀티캐스트, 애니캐스트

 

Mobile

Ipv4는 모바일 환경에서는 통신 효율이 떨어짐

Ipv6는 라우팅 헤더에 의해 모바일 사용에 의한 이동성(손실 패킷 양 적음, 지속적인 연결 유지)이 증가

 

주소 설정

Ipv4는 주소 할당을 위해 수동 구성 또는 DHCP가 필요함

Ipv6는 주소 자동설정기능이 생겨 PC, 콘솔, 디스플레이 등 non-PC 장치까지 주소를 자동으로 할당할 수 있어 편리

 

보안

Ipv4는 IPSec 프로토콜을 별도로 설치해야 한다

Ipv6는 IPSec 프로토콜을 표준 기능으로 포함하고 있다.

💡 IPSec이란 암호화와 인증을 추가한 프로토콜 

 

서브넷과 서브넷 마스크란

서브넷은 부분 망이라는 의미로 IP 주소에서 네트워크 영역을 부분적으로 나눈것

좀더 쉬운말로 하나의 네트워크가 분할되어 나눠진 작은 네트워크

 

서브넷을 만들기 위해 네트워크를 분할하는 것을 서브네팅이라고 한다.

서브네팅을 하면 IP 할당 범위를 더 작은 단위로 쪼갤 수 있게 된다.

그래서 만일 IP가 100개만 필요하다면 C클래스(256개)를 더 쪼개서 줄 수 있다.

 

서브넷 마스크는 서브넷을 만들 때 사용되는 것으로 IP 주소에는 반드시 서브넷 마스크가 있는데, 이 서브넷 마스크를 이용하여 IP 주소에서 Network ID와 Host ID를 편하기 구분하기 위해 사용한다.

서브넷 마스크는 연속된 1과 연속된 0으로 구성되어있다는 것이다.

https://inpa.tistory.com/entry/WEB-IP-%ED%81%B4%EB%9E%98%EC%8A%A4-%EC%84%9C%EB%B8%8C%EB%84%B7-%EB%A7%88%EC%8A%A4%ED%81%AC-%EC%84%9C%EB%B8%8C%EB%84%B7%ED%8C%85-%EC%B4%9D%EC%A0%95%EB%A6%AC#%EC%84%9C%EB%B8%8C%EB%84%A4%ED%8C%85_%EA%B3%84%EC%82%B0%EB%B2%95

 

IP 주소가 192.168.0.1/24 라면 뒤에 /24가 서브넷 마스크를 표현한 것이다.

/24 라는 뜻은 32비트 중 앞에서부터 차례대로 1의 개수가 24개라는 의미이다. 나머지 32-24=8은 0으로 채워주면 서브넷 마스크 숫자가 되는 것이다.

/24  →  11111111.11111111.11111111.00000000

https://inpa.tistory.com/entry/WEB-IP-%ED%81%B4%EB%9E%98%EC%8A%A4-%EC%84%9C%EB%B8%8C%EB%84%B7-%EB%A7%88%EC%8A%A4%ED%81%AC-%EC%84%9C%EB%B8%8C%EB%84%B7%ED%8C%85-%EC%B4%9D%EC%A0%95%EB%A6%AC#%EC%84%9C%EB%B8%8C%EB%84%A4%ED%8C%85_%EA%B3%84%EC%82%B0%EB%B2%95

 

 

서브넷팅

서브네팅이란 IP주소를 효율적으로 나누어 사용하기 위한 방법이다.

네트워크 성능 보장, 자원을 효율적으로 분배하기 위해 네트워크 영역과 호스트 영역을 쪼개는 작업을 행한다.

 

만일 호스트를 50개만 사용하는 기업이 192.168.10.0/24 아이피 주소를 사용한다면 가정하면, C클래스이니까 총 256개의 주소를 할당하게 되는데,

256개 전체를 주기에는 낭비가 되니까, 이 256개를 절반으로 나누고(128개) 또 절반으로 나눈(64개) 주소를 기업에게 할당하고 남는 네트워크 주소는 다른 사용처로 할당하는 효율적인 작업이 바로 서브네팅 원리이다.

 

 

서브네팅 계산법

주소 범위를 절반으로 나누기 (2등분)

https://inpa.tistory.com/entry/WEB-IP-%ED%81%B4%EB%9E%98%EC%8A%A4-%EC%84%9C%EB%B8%8C%EB%84%B7-%EB%A7%88%EC%8A%A4%ED%81%AC-%EC%84%9C%EB%B8%8C%EB%84%B7%ED%8C%85-%EC%B4%9D%EC%A0%95%EB%A6%AC#%EC%84%9C%EB%B8%8C%EB%84%A4%ED%8C%85_%EA%B3%84%EC%82%B0%EB%B2%95

서브넷 구분 비트를 한개 지정해 서브넷을 두개로 분리하는 방법.

💡 서브넷 구분비트란
네트워크 주소를 어느 기준으로 쪼개서 서브넷(분할된 네트워크)을 만들어 구분할지 정하는 비트
서브넷 구분 비트는 항상 호스트 ID에서 왼쪽부터 결정 이 되어야 한다는 특징이 있다.

 

주소 범위를 4등분으로 나누기

https://inpa.tistory.com/entry/WEB-IP-%ED%81%B4%EB%9E%98%EC%8A%A4-%EC%84%9C%EB%B8%8C%EB%84%B7-%EB%A7%88%EC%8A%A4%ED%81%AC-%EC%84%9C%EB%B8%8C%EB%84%B7%ED%8C%85-%EC%B4%9D%EC%A0%95%EB%A6%AC#%EC%84%9C%EB%B8%8C%EB%84%A4%ED%8C%85_%EA%B3%84%EC%82%B0%EB%B2%95

서브넷 구분 비트를 2개 지정해 서브넷을 4개로 분리하는 방법.

 

 

주소범위를 복합적으로 나누기

https://inpa.tistory.com/entry/WEB-IP-%ED%81%B4%EB%9E%98%EC%8A%A4-%EC%84%9C%EB%B8%8C%EB%84%B7-%EB%A7%88%EC%8A%A4%ED%81%AC-%EC%84%9C%EB%B8%8C%EB%84%B7%ED%8C%85-%EC%B4%9D%EC%A0%95%EB%A6%AC#%EC%84%9C%EB%B8%8C%EB%84%A4%ED%8C%85_%EA%B3%84%EC%82%B0%EB%B2%95

주소를 원하는 크기만큼 나누는 방식

반드시 크기가 큰 것 부터 나눠야 한다.

즉, 1층의 100개 부터 나누어 할당해줘야 한다는 말이다.

 

1층의 호스트 100대의 아이피주소를 할당하기위해서는 7개의 호스트 ID 비트(128개)가 필요하다.

 

이번에는 2층의 50대의 호스트를 할당하기 위해선 6개의 비트(64개)만 호스트 ID만 있으면 된다.

왜냐하면 2^6 (64)개만 할당해주면 되기 때문이다.

단 유의할 점은 이 64개는 처음에 1층에 할당하고 남은 나머지 128개의 호스트 주소 범위를 쪼개서 나눠 할당해야 한다.

 

3층은 30개만 사용하니 2^5(32)만 필요해 호스트 ID는 5비트

 

 

슈퍼넷팅

서브넷팅이 네트워크를 분할하는것 이었다면, 슈퍼넷팅은 반대의 개념이다.

네트워크를 합치는 것을 슈퍼넷팅이라고 한다.

C클래스 2개를 합쳐서 하나의 네트워크로 구성하여 사용할 수 있다.

 

방법은 간단하다. 서브넷 마스크를 이동시키면 된다.

192.168.10.0/24 에서 192.168.10.0/23으로 prefix숫자를 감소시킨다.

prefix 숫자가 감소시킨다는 것은 곧 호스트ID 갯수가 늘어난다는 뜻과 같다

 

 

라우팅 & 라우팅 프로토콜

라우팅이란?

경로 정보를 기반으로 현재의 네트워크에서 다른 네트워크로 최적의 경로를 통해 데이터를 전송하는 기법

 

라우팅 테이블

라우팅 테이블은 패킷을 목적지로 전달하기 위해 참조하는 테이블이다. 라우팅 계산에 필요한 요소를 기반으로 라우팅 프로토콜을 통해 계산된 라우팅 정보를 저장한다.

위 그림과 같이 호스트 A가 호스트 B와 통신하고 싶다고 목적지 IP 주소를 라우팅 테이블에게 알려주면, 라우팅 테이블은 여러 경로 중 호스트 B로 전달하기 위한 최적의 경로(10.0.0.0/8)를 선택한다.

 

라우팅 방식

정적 라우팅 방식

네트워크 관리자가 패킷의 경로를 임의로 결정하여 수동으로 구성하는 라우팅 방식

 

장점

- 라우터의 부하를 경감

- 복잡한 계산이 필요없으므로빠른 라우팅 가능

 

단점

- 관리자가 관리해야 할 부분이 많음

- 네트워크 환경 변화를 고려하지 않음

- 정해진 경로 상에서 장애가 발생할 경우, 네트워크 전체 이용에 장애가 발생할 수 있다.

- 네트워크의 규모가 커지면 수동으로 추가하기 위해 시간이 많이 든다.

 

 

netstat -r 명령어를 통해 현재 PC의 라우팅 테이블을 확인할 수 있고, 정적 라우팅 방식의 경우 이 라우팅 테이블을 하나 하나 조작하여 경로를 입력해 주어야 한다.

 

동적 라우팅 방식

라우터가 라우팅 프로토콜에 의한 계산에 따라 스스로 라우팅 경로를 결정하는 방식

 

장점

- 작업 부담이 없고, 항상 최신 라우팅 정보를 유지할 수 있다.

- 네트워크 환경 변화를 고려한다.

 

단점

- 라우터의 부하가 크다,

 

예시

현우가 마트에서 장을 보고 싶다. 이때 A마트는 비싸고 멀고, B마트는 싼데 멀고, C마트는 싸고 가깝다. C마트에 가서 장을 보려고 하였으나, C마트가 하필 휴점일이었다. 그래서 철수는 고민 끝에 B 마트에서 장을 보았다.

동적 라우팅 방식은 위 예시처럼 C마트가 휴점일이라는 환경 변화를 고려할 수 있고, 그에 따라 동적으로 경로를 결정한다. 상황에 따라 A마트가 될 수 있고, B마트가 될 수 있는데 이것은 라우팅 프로토콜에 따라 다르게 계산된다.

 

 

라우팅 프로토콜이란?

라우터 간 통신 방식을 규정하는 통신 규약

 

인터넷은 각 기관이나 단체가 독립적으로 운영하는 네트워크들이 라우터에 의해 연결된 복잡한 네트워크이다. 이와 같이 독립적인 네트워크를 자율 시스템 (AS: Autonomous System)이라고 부르는데 그 특성은 아래와 같다.

- AS 내의 라우터는 서로 동일한 라우팅 프로토콜을 사용한다.

- AS 내의 네트워크와 라우터는 한 조직에 의해 관리된다.

 

하나의 AS 내에 있는 라우터 간에 라우팅 정보 교환을 위해 사용되는 프로토콜을 IGP (Interior Gateway Protocol)이라고 부르고,

다른 AS에 속하는 라우터 간에 라우팅 정보 교환을 위해 사용되는 프로토콜을 EGP (Exterior Gateway Protocol)라고 부른다.

IGP는 한 AS 내의 모든 라우터에서 동작하는 데 비해, EGP는 AS와 AS가 연결되는 관문 역할의 몇 개 라우터에서 동작한다.

 

IGP(내부 게이트웨이 프로토콜)

하나의 AS 내에 있는 라우터 간에 라우팅 정보 교환을 위해 사용되는 프로토콜이며, 크게 Distance Vector 프로토콜과 Link-State Vector 프로토콜로 나뉜다.

 

Distance Vector

- 이웃 라우터의 주기적 갱신 정보로 라우팅 테이블을 반영하여 경로를 결정하는 프로토콜

- 목적지까지 도달하는 데 필요한 거리와 방향만 라우팅 테이블에 기록

- 분산 벨만 포드 알고리즘으로 구현이 가능

- 홉 개수가 적은 소규모 네트워크에서 사용이 용이함

 

장점

- 인접한 노드끼리 정보를 주고 받으므로 전체 토폴로지를 몰라도 최단 경로를 설정이 가능

 

단점

- 변화가 없더라도 일정 주기마다 의무적으로 인접 노드 간 변화가 생겼는지 확인해야 함

 

 

- 각 라우터마다 갈 수 있는 모든 라우터의 최단 경로를 라우팅 테이블에 기록

다익스트라 알고리즘으로 구현이 가능

홉 수가 많은 중/대형 네트워크에서 사용이 용이함

 

장점:

라우팅 정보가 변경되면, 바뀐 라우팅 정보만 전파하므로 네트워크 트래픽 발생량이 감소

 

단점

복잡한 구조로 경로 설정이 구현되므로 주소 배분이나 장치 설정의 어려움이 발생

 

https://steady-coding.tistory.com/528

 

EGP

 

Path Vector Protocol

Distance Vector + Link State

 

자율 시스템 (AS)간 사용하는 프로토콜로, 이름에서 알 수 있듯이 최종 목적지까지 path를 이용하여 라우팅하는 프로토콜이다. 거리에 대한 처리 과정이 생략되고, 관리하는 라우팅 정보에는 목적지 네트워크의 AS만 저장한다. 거리 벡터의 장점인 간단한 정보만을 저장하여 메모리/CPU 부담이 적고, 링크 상태 방식의 장점인 변화가 있는 경우에만 테이블을 교환한다.

 

Public IP와 Private IP

 

공인 IP(Public IP)

ICANN이라는 기관이 국가별로 사용할 IP 대역을 관리하고, 우리나라는 한국인터넷진흥원(KISA)에서 국내 IP 주소들을 관리하고 있다.

이것을 ISP(Internet Service Provider의 약자로 KT, LG, SKT와 같이 인터넷을 제공하는 통신업체)가 부여받고, 우리는 위 회사에 가입을 통해 IP를 제공받아 인터넷을 사용하게 되는 것이다. 이렇게 발급받은 IP를 공인 IP라고 한다.

 

 

사설 IP(Private IP)

https://inpa.tistory.com/entry/WEB-%F0%9F%8C%90-IP-%EA%B8%B0%EC%B4%88-%EC%82%AC%EC%84%A4IP-%EA%B3%B5%EC%9D%B8IP-NAT-%EA%B0%9C%EB%85%90-%EC%A0%95%EB%A7%90-%EC%89%BD%EA%B2%8C-%EC%A0%95%EB%A6%AC

공유기를 사용한 인터넷 접속 환경일 경우 공유기까지는 공인 IP 할당을 하지만, 공유기에 연결되어 있는 가정이나 회사의 각 네트워크 기기에는 사설 IP를 할당한다.

즉, 사설 IP는 어떤 네트워크 안에서만 내부적으로 사용되는 고유한 주소이다. 사설 IP는 보통 내 컴퓨터에서 사용하는 로컬 IP라고도 불린다.

공인 IP는 전 세계에서 유일하지만, 사설 IP는 하나의 네트워크 안에서 유일하다. 공인 IP는 외부, 내부 상관없이 해당 IP에 접속할 수 있으나, 사설 IP는 내부에서만 접근이 가능하다.

 

 

사설 IP & 사설망 원리

사설망이란 공유기를 사용한 인터넷 접속 환경일 경우 공유기까지는 공인 IP 할당을 하지만, 공유기에 연결되어 있는 가정이나 회사의 각 네트워크 기기에는 사설 IP를 할당하여 그룹으로 묶는 방법이다.

 

 

사설망 (Private Network)는 지정된 대역의 아이피만 사용이 가능하다. 리눅스하면서 한번쯤은 봤던 10.0.0.0 번대의 아이피와, 톰캣이나 아파치 서버를 설치하면서 한번쯤은 봤던 192.168.0.0 번대의 아이피가 바로 사설IP를 일컫는다.

아래의 표에 나타난 숫자의 아이피가 있으면 그 아이피는 어느 특정 국가의 지역을 나타내는 인터넷 주소가 아닌 사설 인터넷 주소라고 생각하면 된다.

https://inpa.tistory.com/entry/WEB-%F0%9F%8C%90-IP-%EA%B8%B0%EC%B4%88-%EC%82%AC%EC%84%A4IP-%EA%B3%B5%EC%9D%B8IP-NAT-%EA%B0%9C%EB%85%90-%EC%A0%95%EB%A7%90-%EC%89%BD%EA%B2%8C-%EC%A0%95%EB%A6%AC

 

https://inpa.tistory.com/entry/WEB-%F0%9F%8C%90-IP-%EA%B8%B0%EC%B4%88-%EC%82%AC%EC%84%A4IP-%EA%B3%B5%EC%9D%B8IP-NAT-%EA%B0%9C%EB%85%90-%EC%A0%95%EB%A7%90-%EC%89%BD%EA%B2%8C-%EC%A0%95%EB%A6%AC

  • 반 : 사설망
  • 반장 : Gateway (192.168.0.1 ↔ 181.227.3.33)
  • 반 학생들 : 각 컴퓨터들 (192.168.0.2, 192.168.0.3, 192.168.0.4 ...)
  • 학교 : 외부 인터넷 (61.123.44.1)

 

 

https://inpa.tistory.com/entry/WEB-%F0%9F%8C%90-IP-%EA%B8%B0%EC%B4%88-%EC%82%AC%EC%84%A4IP-%EA%B3%B5%EC%9D%B8IP-NAT-%EA%B0%9C%EB%85%90-%EC%A0%95%EB%A7%90-%EC%89%BD%EA%B2%8C-%EC%A0%95%EB%A6%AC

사설망이라는 개념을 쓰면 같은 아이피 번호를 중복해서 마구 사용할수 있고, 이는 곧 IP의 절약과 연관된다.

 

 

 

NAT (사설망 ↔ 외부 통신 방법)

IP패킷의 TCP/UDP 포트 숫자와 소스 및 목적지의 IP 주소 등을 재기록하면서 라우터를 통해 네트워크 트래픽을 주고 받는 기술을 말한다. 한 마디로 Network Address인 IP를 변환(Translation)하겠다는 뜻이다.

NAT를 이용하는 이유는 대개 사설 네트워크(Private Network)에 속한 여러 개의 호스트가 하나의 공인 IP 주소를 사용하여 인터넷에 접속하기 위함이다.

 

실생활 비유

카페에 가서 와이파이 연결

사설 IP 부여 받음

네이버 접근하고 싶으면 컴퓨터는 공유기에게 신호를 보냄

신호를 받은 공유기는 다음 순서에 따라 네이버에게 요청을 보낸다.

  - 먼저 요청받은 내부ip를 기록한다. (내가 부여 받은 사설 IP). 누가 요청했는지 알아야하니까.

  - 요청한 컴퓨터 ip는 외부에서 접속할 수 없는 사설ip다. 따라서 사설ip를 공인ip로 변환한다.

공유기가 공인 IP로 네이버에게 요청하고 네이버는 요청을 처리 후 공인 IP로 보내 공유기가 받고 공유기는 다시 사설 IP로 보내서 통신 완료

 

 

https://inpa.tistory.com/entry/WEB-%F0%9F%8C%90-IP-%EA%B8%B0%EC%B4%88-%EC%82%AC%EC%84%A4IP-%EA%B3%B5%EC%9D%B8IP-NAT-%EA%B0%9C%EB%85%90-%EC%A0%95%EB%A7%90-%EC%89%BD%EA%B2%8C-%EC%A0%95%EB%A6%AC

사설망 안에 있는 PC들은 외부와의 통신을 하기 위해 NAT의 도움을 받는다.

NAT는 Network Address Translation 즉, 인터넷 주소 번역 이다.

인터넷 주소 번역 원리는 간단하다. 우선 공유기(라우터)에 연결되어있는 각 사내 컴퓨터들의 사설 IP (192.168.0.xxx)를 받아와 유일한 공인 IP로 변환한다. 그리고 외부 인터넷으로 공인 IP 주소정보를 보내는 것이다.

 

외부 입장에서는 어느 회사의 영업부 사원이 보냈는지 알지 못한다. 그냥 회사 공유기 주소만 알고있는 것이다. 하지만 문제는 없다. 답변을 하게되면, 인터넷 정보가 다시 회사 공유기로 올것이고 공유기에서는 이전에 요청한 정보들을 다 기억하고 있어서, 확인하고 그대로 김인턴 PC에게 넘겨주는 것이다.

즉, private ip 를 사용하고 있는 컴퓨터가 사설 바깥쪽에 있는 public ip에 해당되는 외부세계에 간접적이라도 접속할 수 있게 된다. 이때 사용되는 기술이 바로 NAT 인 것이다.

 

 

ICMP란

Internet Control Message Protocol

- 라우터를 포함한 네트워크  장치가 다른 IP 주소와 통신을 할 때 성공 또는 실패를 나타내는 오류 메시지 및 운영정보를 보내는데 사용된다.

쉽게 말해서 도착지 호스트가 없거나, 포트가 닫혀 있는 등의 에러 상황이 발생할 경우 IP헤더에 기록되어 있는 출발지 호스트로 에러에 대한 정보를 보내주는 역할을 한다(IP란 같이 쓰임)

- 네트워크 계층 통신 프로토콜

- 흔히 사용하는 PING 메시지가 ICMP 프로토콜을 사용함

추가로 Tracert/Traceroute도 있음

 

TYPE에 따른 메시지

TYPE 별 자세한 구분을 하기 위해 CODE로도 구분도 함

 

대표

Destination Unreachable : 목적지에 도달하지 못함 (3번)

Code 0 : Network 도달불가 (Network ID 문제) (Core router가 판단가능)

Code 1 : Host 도달불가 (Host ID 문제)

Code 2 : Protocol 도달불가 (Protocol 타입 문제)

Code 3 : Port 도달불가 (프로세스가 없다, 포트넘버가 잘못돼있다.)

Code 4 : fragment가 필요하나 DF 로 되어 있을 때. ( Path MTU 발견 및 수정할 정보 전송!)

등등 더 많은 코드가 있습니다.

Time Exceeded : 시간이 오래 걸려 목적지에 도달하지 못함 (11번)

1. TTL 이 0 이 된 경우.

2. Fragment중 하나가 손실돼서, 다시  조합을 할 수 없을 경우.

 -> 이 경우는 보통 higher layer이 재전송합니다.

 

https://programming119.tistory.com/155

Ping 은 Type 8인 ICMP 메세지로 요청하며, 특정 IP와의 통신이 가능한지를 Type 0 메세지를 통해 반환합니다.  

Traceroute는 해당 IP까 거친 라우팅 경로를 반환해줍니다.

 

 

https://nordvpn.com/ko/blog/public-ip-and-private-ip/

https://inpa.tistory.com/entry/WEB-%F0%9F%8C%90-IP-%EA%B8%B0%EC%B4%88-%EC%82%AC%EC%84%A4IP-%EA%B3%B5%EC%9D%B8IP-NAT-%EA%B0%9C%EB%85%90-%EC%A0%95%EB%A7%90-%EC%89%BD%EA%B2%8C-%EC%A0%95%EB%A6%AC?category=943705 

참고

https://catsbi.oopy.io/15f97a5f-acc8-410e-afab-0b26adff89c5

https://velog.io/@k906506/IPv4-vs-IPv6

https://togll.tistory.com/42

https://qazyj.tistory.com/312

https://ensxoddl.tistory.com/344

https://catsbi.oopy.io/3555f477-30c0-46c5-9e13-0bb3b9ba8ea2

https://inpa.tistory.com/entry/WEB-IP-%ED%81%B4%EB%9E%98%EC%8A%A4-%EC%84%9C%EB%B8%8C%EB%84%B7-%EB%A7%88%EC%8A%A4%ED%81%AC-%EC%84%9C%EB%B8%8C%EB%84%B7%ED%8C%85-%EC%B4%9D%EC%A0%95%EB%A6%AC

https://inpa.tistory.com/entry/WEB-%F0%9F%8C%90-IP-%EA%B8%B0%EC%B4%88-%EC%82%AC%EC%84%A4IP-%EA%B3%B5%EC%9D%B8IP-NAT-%EA%B0%9C%EB%85%90-%EC%A0%95%EB%A7%90-%EC%89%BD%EA%B2%8C-%EC%A0%95%EB%A6%AC?category=943705 

https://inpa.tistory.com/entry/WEB-%F0%9F%8C%90-NAT-%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80

https://peemangit.tistory.com/103

https://dongwooklee96.github.io/post/2021/04/13/icmp%EB%9E%80-draft/

https://programming119.tistory.com/155

https://steady-coding.tistory.com/528

 

댓글