NAT NETWORK
NAT(네트워크 어드레스 트랜슬레이션)는 사설 IP가 공인 IP로 통신할 수 있도록 주소를 변환해주는 방법이다.
IPv4 기준으로 최대 IP 갯수는 약 43억 개이고, 이는 현대 사회에서 부족하다. 사설 IP는 이러한 한정된 IPv4의 주소를 최대한 활용하기 위해 분할된 개념이다.
따라서, 더 많은 IP 주소를 제공하는 IPv6에서는 사설 IP 개념이 필요 없다.
크게 세 가지 종류가 있다.
동적 NAT (Dynamic NAT)
동적 NAT는 내부 네트워크의 사설 IP 주소를 가용 가능한 공용 IP 주소로 동적으로 변환하는 방식이다.
내부 네트워크의 여러 장치가 공용 IP 주소 풀에서 임시로 할당된 IP 주소를 사용하여 인터넷에 접근할 수 있고, 이 방식은 공용 IP 주소의 효율적인 사용을 가능하게 한다.
우리집의 Private IP 주소가 192.168.0.2 이라고 가정하자.
- Private IP 주소에서 61.123.44.1(Destination)으로 통신을 보낸다.
- Private IP로는 외부로 나갈 수가 없기 때문에 동적 NAT는 Nat Pool에서 가용 가능한 공인 IP를 찾는다.
- 현재 사용되고 있지 않은 Public IP는 181.227.3.53이므로 해당 공인 IP로 변환한다.
- 181.227.3.53 공인 IP로 Destination으로 통신을 보낸다.
- 다음 통신에서도 해당 과정을 반복한다. Public IP는 NAT에서 동적으로 찾아 변환되므로 항상 바뀔수 있고, 외부에서 보기에는 공인 IP를 써서 통신한 것처럼 보인다.
정적 NAT (Static NAT)
정적 NAT는 내부 네트워크의 사설 IP 주소를 항상 고정 공용 IP 주소로 변환하는 방식이다.
내부 네트워크의 특정 장치가 항상 동일한 공용 IP 주소를 사용하여 인터넷에 접근할 수 있도록 하고, 주로 서버와 같은 특정 장치에 사용된다.
이 경우, 사설 IP의 수만큼 공인 IP가 필요하며, 이는 AWS의 인터넷 게이웨이에서 사용되는 방식이다.
정적 NAT는 아까와 마찬가지로 Private IP를 Public IP로 매칭시켜주는 건 똑같은데, 일일이 하나씩 매칭이 되어 있는 것이다.
우리집의 Private IP 주소가 192.168.0.2 이라고 가정한다면, 우리 집의 Public IP 주소는 181.227.3.33으로 고정된다.
그래서 정적 NAT는 퍼블릭 IP와 프라이빗 IP 숫자가 거의 같아지므로 1:1 매칭이 가능하고 동작도 간단해진다.
포트 주소 변환 (PAT, Port Address Translation)
PAT는 다수의 내부 네트워크 장치가 하나의 공용 IP 주소를 공유하여 인터넷에 접근할 수 있도록 하는 방식이다.
이 시스템을 통해 다양한 사설 IP 주소들이 하나의 공유 공인 IP를 사용할 수 있고,
각 장치는 고유한 포트 번호를 사용하여 구분되어 공용 IP 주소의 효율적인 사용을 극대화한다.
PAT, 포트 어드레스 트랜슬레이션의 경우, 하나의 퍼블릭 IP가 하나의 사설망을 대표하며, 중간에 게이트웨이가 필요하다.
게이트웨이는 내부 네트워크 장치에서 수신한 트래픽을 처리하여 적절한 포트로 전송하게 되는데, 게이트웨이에서 포트 변환이 일어나기 때문에 이 경우에는 조금 더 복잡해진다.
그 과정은 다음과 같다.
우리집의 Private IP 주소가 192.168.0.2 이라고 가정하자.
- 191.168.0.2가 61.124.4.1로 통신을 보낸다.
- PAT(Port Address Translation)에서 내부 네트워크 장치들의 포트는 게이트웨이(또는 NAT 라우터)에 의해 정해진다. 내부 네트워크 장치가 외부 네트워크와 통신할 때, 게이트웨이는 각 장치의 트래픽을 구분하기 위해 고유한 포트 번호를 할당(5000)하고, 이 포트 번호는 게이트웨이가 관리하게 된다.
- 게이트웨이는 해당 Private 망을 대표하는 Public IP(181.227.3.33)를 사용하여 Destination으로 보내게 되는데,. 그런데 이 과정에서 포트를 한번 변환하게 된다. 이 포트를 SRC port(50001)라고 하고 2번과 3번의 과정을 통해 해당 정보를 저장하게 된다.
- Destination(61.123.4.1)는 Public IP(181.227.3.33)와 포트넷 게이트웨이가 설정한 포트(50001)로 응답을 보내게 된다.
- 응답이 오면 게이트웨이는 50001 포트에서의 요청을 확인하고, 저장된 데이터에 따라192.168.0.2의 5000번으로 보내야 한다고 판단한다.
- 해당 과정은 다음 요청에 반복된다.
CIDR(Classless Inter Domain Routing)
주소의 영역을 여러 네트워크 영역으로 나누기 위해 IP를 묶는 방식으로, 여러개의 사설망을 구축하기 위해 망을 나누는 방법이다.
- CIDR Block: IP 주소의 집합
- CIDR Notation: CIDR Block을 표시하는 방법
- 네트워크 주소와 호스트 주소로 구성
- 각 호스트 주소 숫자 만큼 의 IP를 가진 네트워크 망 형성 가능
CIDR 표기법(CIDR Notation)과 의미
CIDR 표기법은 Cloud의 VPC 및 네트워크 서비스에서 서브넷을 만들 때 필수적인 지식으로, 큰 네트워크를 작은 단위로 나누는 과정에서 활용된다.
CIDR 표기법은 네트워크 주소와 호스트 주소로 구성이 되어 있는데, 각 호스트 주소의 숫자만큼의 IP를 가진 네트워크 방을 형성할 수가 있다.
이게 무슨 말이냐면
CIDR Block을 192.168.2.0/24로 표기한다고 한다면,
IPv4에서는 간단히 보면 하나의 자리가 모두 8비트로 된 바이너리 숫자를 나타내고,
8bit.8bit.8bit.8bit 총 32bit로 구성된다.
CIDR 표기법은 네트워크 주소와 호스트 주소로 나누어지고, / 다음의 숫자인 24가 네트워크를 구성하는 bit를 나타낸다.
네트워크의 주소는 따라서 앞에서부터 24bit, 즉 192.168.2 까지가 네트워크 주소이다.
IP 주소에서 네트워크 주소는 변동하지 않으며, 호스트 주소의 비트만 변동한다는 점을 이해해야 한다.
그러므로 192.168.2.0/24에서 CIDR 블록의 네트워크 비트는 24비트로 고정되고, 호스트 비트는 총 8비트가 변동 가능하다.
따라서 192.168.2.0/24에 해당하는 CIDR Block은
192.168.2.0에서 192.168.2.255까지의 모든 IP 주소로, 256가지의 IP주소를 나타낸다.
CIDR Block은 호스트 주소 비트만큼 IP 주소를 보유 가능하다.
CIDR을 통해 서브넷 할당하기
서브넷이란?
- 네트워크 안의 네트워크
- 큰 네트워크를 잘게 쪼갠 단위
- 일정 IP주소의 범위를 보유
- 큰 네트워크에 부여된 IP범위를 조금식 잘라 작은 단위로 나눈 후 각 서브넷에 할당
Q, 우리에게 192.168.0.0/16 대역대에 해당 하는 IP주소가 할당되었다. 해당 IP주소를 서브넷으로 나누어 본다면?
192.168.0.0/16 이므로, 192.168까지는 네트워크 주소로, 고정된다.
따라서 남은 16bit를 이용해 서브넷을 구성한다면?
서브넷1(192.168.1.0/24) : 192.168.1.0~192.168.1.255 총 256가지의 IP가 할당가능한 CIDR Block 형성
192.168.0.0/16 대역을 /24 서브넷으로 나누면 최대 256개의 서브넷을 구성할 수 있으며, 각 서브넷은 256개의 IP 주소를 가질 수 있다.
출처
https://www.youtube.com/watch?v=3VXLD0-Iq8A
'Cloud' 카테고리의 다른 글
VPC 구성요소의 이해 : 보안그룹과 NACL (0) | 2024.08.10 |
---|---|
클라우드 네트워크 인프라의 기초 이해: VPC와 Subnet (0) | 2024.08.08 |