Kylian 태그 관리 글쓰기 방명록
2023-11-07 15:54:15

NAT (Network Address Translation)

사설 IP가 공용 IP로 통신할  수 있도록 주소를 변환해주는 방법

3가지 종류

1. Dynamic NAT : 1개의 사설 IP를 가용 가능한 공인 IP로 연결

- 공인 IP 그룹(또는 NAT Pool)에서 현재 사용 가능한 IP를 가져와서 연결

- 어떤 공인 IP를 쓸 지는 NAT Pool에서 사용하지 않는 공인 IP를 사용함.

 

2. Static NAT : 하나의 사설 IP를 고정된 하나의 공인 IP로 연결

- AWS Internet Gateway가 사용하는 방식

- 사설 IP 숫자만큼 공인 IP 숫자가 필요함.

 

3. PAT(Port Address Translation) : 많은 사설 IP를 하나의 공인 IP로 연결

- NAT Gateway / NAT Instance가 사용하는 방식

- PAT 방식이 일반적인 회사나 학원, 집 등에서 사용하는 일반적인 방식!

- 포트 기반으로 사설망의 어떤 기기가 통신을 받아야 하는지 정하는 방식이 PAT 방식임.

(ex. 192.168.0.2는 61.123.44.1과 통신해야 하는데 Port 5000번으로 나갈 때 공인 IP로 주소가 변환되면서 Port도 50001로 바뀌어서 트래픽이 전송됨)

장점: 다양한 사설 IP 주소가 하나의 공인 IP를 공유해서 외부와 통신할 수 있다는 장점

- 포트가 다르기 때문에 공인 IP가 1개여도 내부적으론 문제없이 통신됨

 

 

사설 IP (Private IP)

한정된 공인 IP 주소를 최대한 활용하기 위해 IP주소를 분할하고자 만든 개념

IPv4 기준으로 최대 IP갯수는 43억개(4,294,967,296)

 

공인 IP 부족을 해결하고자 만든 것 : 사설망

사설망 내부에는 외부 인터넷 망으로 통신이 불가능한 사설 IP로 구성

외부로 통신할 때는 통신 가능한 공인 IP로 나누어 사용

보통 하나의 망에는 사설 IP를 부여받은 기기들과 NAT 기능을 갖춘 Gateway로 구성

 

참고 : IPv6 최대 IP 개수

2^128 = 340,282,366,920,938,463,463,374,607,431,768,211,456개

(즉, 340 2823 6692 938 4634 6337 4607 4317 6821 1456개)

 

 

IP Class 기반 라우팅

IP Class는 IPv4 주소를 영역별로 나눈 것으로 크게 A, B, C, D, E 클래스로 나뉘며 각각 네트워크 크기와 호스트의 수가 다르다. 이중 D와 E는 특수용도로 D는 멀티캐스트용, E는 향후 사용을 위해 예약된 주소다.

나머지 A, B, C는 일반 사용자에게 부여하는 용도로 이번에 어떻게 나뉘는지 알아보려고 한다.

 

아래의 범위에 있는 IP들은 사설 IP로 정하자고 약속함.

예를 들어  61.123.44.1 주소가 있다면, 아래의 사설 IP 주소 대역에 속하지 않으므로

일반적으로 공인 IP 주소로 간주된다.

이름 Class IP Address Range IP 개수(호스트 수) 서브넷 마스크
24-bit block A 10.0.0.0~10.255.255.255 16,777,216 255.0.0.0
20-bit block B 172.16.0.0~172.31.255.255 104,857 255.240.0.0
16-bit block C 192.168.0.0 ~ 192.168.255.255 65,536 255.255.0.0
  D      
  E      

IP 주소를 8비트로 4등분한 각각을 옥텟(Octet)이라고 한다. 각 옥텟 별로 0~255개의 범위가 되므로 각 256개가 들어갈 수 있다.

그리고 이 옥탯 별로 IP의 클래스를 A, B, C로 나눌 수 있다. 각 클래스마다 위에서 배운 네트워크 ID 부분과 호스트 ID 부분 범위가 서로 다른 것을 볼 수 있다. 이런 식으로 나눔으로써 각 클래스마다 할당되는 총 호스트 개수가 나뉘어 보다 체계적으로 관리할 수 있게 된다.

 

 

CIDR

Classless Inter Domain Routing(CIDR) : 클래스에서 발전하여 더 이상 클래스를 사용하지 않음.

CIDR이란 무엇인가요?

Classless Inter-Domain Routing(CIDR)은 인터넷상의 데이터 라우팅 효율성을 향상시키는 IP 주소 할당 방법

인터넷에 연결되는 모든 컴퓨터, 서버 및 최종 사용자 디바이스는 IP 주소라는 고유한 번호가 연결되어 있다.

 

- IP는 주소의 영역을 여러 네트워크 영역으로 나누기 위해 IP를 묶는 방식

- 여러 개의 사설망을 구축하기 위해 망을 나누는 방법

 

 

 

CIDR Block  CIDR를 기반으로 나눈 것이 CIDR Block : IP 주소의 집합

CIDR Notation : CIDR Block을 표시하는 방법

- 네트워크 주소와 호스트 주소로 구성

- 각 호스트 주소 숫자만큼의 IP를 가진 네트워크 망 형성 가능

- A.B.C.D/E  예) 172.16.0.0/12

A.B.C.D: 네트워크 주소+호스트 주소 표시 / E: 0~32 네트워크 주소가 몇 bit 인지 표시

CIDR Notation은 네트워크 비트(고정)와 호스트 주소 비트(변경 가능)를 보여준다.

- 호스트 주소 비트만큼 IP 주소를 보유 가능

예) 192.168.2.0/24

     - 네트워크 비트 24

     - 호스트 주소 = 32-24 = 8

     - 즉 2^8 = 256개의 IP 주소 보유(192.168.2.0 ~ 192.168.2.255)

 

서브넷이란?

서브넷 : 네트워크 안의 네트워크

큰 네트워크를 잘게 쪼갠 단위

일정 IP 주소의 범위를 보유

   - 큰 네트워크에 부여된 IP 범위를 조금씩 잘라서 작은 단위로 나눈 후 각 서브넷에 할당(AWS VPC 등)

예) 192.168.0.0/16 이라는 큰 네트워크 안에서 서브넷을 잘게 자를 때 사용하는 것이 CIDR Notation임.

 

 

참고 : AWS 강의실 기초 강좌

https://www.youtube.com/watch?v=3VXLD0-Iq8A

Kylian. Designed by bskyvision.