개인 VPN 서버를 구축하면서 여러 개발 용어들을 찾아보게 되었는데 생각 정리를 위해서 한 번 적어보려고 합니다.
NAT 이란?
네트워크 주소 변환 (Network Address Translation)
IP 패킷의 TCP/UDP 포트 숫자와 소스 및 목적지의 IP주소 등을 재기록하면서
라우터를 통해 네트워크 트래픽을 주고 받는 기술
내가 이해한 것은 하나의 IP를 가지고 여러 호스트 IP를 만들어 인터넷에 접속하는 방법이라고 생각한다.
NAT을 왜 쓰나요?
1. 하나의 공인 IP(인터넷 연결이 가능한 IP)를 가지고 여러 갈래로 쪼개서 여러 대가 동시에 접속이 가능한 확장성
2. 공인 IP가 아닌 192.xxx , 172.xxx 등 사설 IP 대역을 사용하기에 내 공인 IP가 외부로 유출 되지 않는다는 점
확장성과 보안에 강하기 때문에 NAT을 사용한다고 생각한다
(글쓴이도 최근 집 IP가 공인 IP로 되어있어서 새로 공유기를 구매해 사설 IP로 변경함)
A 클래스 사설 네트워크 대역 : 10.0.0.0 ~ 10.255.255.255 (10.0.0.0/8 (255.0.0.0))
B 클래스 사설 네트워크 대역 : 172.16.0.0 ~ 172.31.255.255 (172.16.0.0/12 (255.240.0.0))
C 클래스 사설 네트워크 대역 : 192.168.0.0 ~ 192.168.255.255 (192.168.0.0/16 (255.255.0.0))
NAT은 어떻게 동작하나요?
쉽게 설명을 하자면 우리 집에서 외부에 있는 웹 서버(구글,네이버)로 접속을 할 때 해당 요청 패킷(포트)는 반드시 공유기(게이트웨이)를 거치게 됩니다.
해당 공유기에서 사설 IP를 공인 IP로 변경시켜 외부 웹 서버로 접속 할 수 있도록 만들어 주는 역할을 하고 있는데 이 과정을 NAT이라고 합니다.
내가 생각하는 NAT의 흐름도 : 사설 IP -> 공유기 -> IP변환 -> 공인 IP -> 웹서버 접속
내가 사용하는 NAT
현재 제가 사용하고 있는 NAT종류는 바로 Port Forwarding 이라는 것을 사용하고 있습니다.
포트포워딩은 하나의 IP(서버)에서 여러가지 서비스를 운영할 때 각각의 서비스에 포트를 부여해 특정 포트 번호가 일치하면 그 서비스로 경로를 지정해주는 기능으로 하나의 IP를 가지고 여러 서비스를 운영할 수 있다는 장점이 있습니다.
그래서 3가지의 서버를 각각 포트를 부여해(ex: 9999, 1234, 1111) 잘 서비스를 운영하고 있습니다.
여러분의 공인 IP를 지키는 NAT 한 번 내 컴퓨터도 확인해보는 것도 좋을 것 같습니다 :)
'Dev DBAN > 개발 용어 핥아보기' 카테고리의 다른 글
개발 용어 핥아보기 - 프로세스와 스레드 (0) | 2021.12.28 |
---|---|
개발 용어 핥아 보기 - TCP와 UDP 간단 정리 (0) | 2021.12.23 |
개발 용어 핥아 보기 - OSI 7계층? (0) | 2021.12.22 |
개발용어 핥아보기 - ORM을 알아보자 (0) | 2021.11.01 |
개발 용어 핥아보기 - 트러블 슈팅 (0) | 2021.10.10 |
댓글