NAT의 정의
NAT란 'Network Address Translation'의 약자입니다. 즉, '네트워크의 주소를 바꾼다'는 뜻입니다. 번역이나 통역이라는 말로 'translate'라는 단어를 많이 쓰는데요. 여기서는 일정한 규칙에 따라서 바꿔준다 정도로 생각하면 될 것 같습니다. 네트워크 주소란 바로 IP를 의미합니다. 그러니까, IP 주소를 바꾸는 것을 NAT라고 할 수 있습니다. 그런 게 왜 필요한 걸까요?
필요성
현재 우리가 사용하고 있는 IP는 IPv4입니다. '000.000.000.000'의 형식을 가진 IP주소를 말합니다. 현재 우리는 크게 걱정 없이 쓰고 있는 듯 하지만, 인터넷을 사용하는 사람이 많아지면서 기존의 이 IP는 문제가 생겼습니다. 해당 IP 구조는 256^4 = 42억 개 밖에 없어서 늘어나는 서버들과 클라이언트들의 모든 주소를 표현하기에는 한계가 생길 것이라는 것이 자명해졌기 때문입니다. 따라서, IPv6를 고안했지만 기존의 시스템을 모두 교체하기에는 비용적인 면이나 시간적인 부분들이 곤란해져서 IPv6으로 전체적으로 교체되기 전까지는 IPv4으로도 수많은 주소들을 사용할 수 있어야 했습니다. 따라서 특정 규칙에 따라서 IP 주소를 바꿔줌으로써, 특정 구역 내에서는 일관된 규칙을 가지고 IP를 부여받고, 네트워크를 연결해 주는 라우터에서는 NAT를 통해서 IP를 원래 IP와 내부에서만 쓰는 IP를 따로 기록/관리해서 네트워크를 연결해주는 방식으로 IP 주소를 아끼는 것입니다.
장점
NAT가 고안된 것은 IPv4의 주소 한계를 이겨내기 위함이지만, 그 외에도 여러 가지 장점이 있습니다. 첫 번째로 내부 주소를 숨김으로 인해서 일종의 보안을 제공한다는 것입니다. 정확한 비유는 아니지만, 잘 모르는 사람에게 주소를 말할 때 아파트나 도로명까지만 말하고 세부주소를 말하지 않으면 집의 정확한 위치가 노출되지 않게 되는 것과 비슷한 원리라고 할 수 있습니다. 또한, 중구난방일 수 있는 주소가 아니라 일종의 규칙에 따라서 일관성과 체계를 가지는 주소가 됨으로써 IP주소의 체계가 정돈되는 듯한 것도 장점이라고 할 수 있습니다.
단점
지금이야 익숙하게 쓰는 개념이어서 큰 문제라고 느끼지 않지만, 세부적인 단계에서 생각해 보면 당연히 문제가 있을 수 있습니다. 라우터에서 NAT를 관리하는 절차에 따라서 비용이나 시간 등, 근본적으로 성능이 떨어지게 될 수 있으며 NAT의 개념을 모르는 사람들에게 혼란을 준다는 것도 단점이라고 하면 단점일 수 있습니다. 즉, 나는 주소를 A라고 알려줬는데 상대방은 B라고 입력해야 들어올 수 있기 때문에, A라고 말해도 상대방이 찾아내기 어렵다는 것입니다. 의도하지 않게 보안성이 좋아진 것은 다른 의미로는 편리성이 떨어진 것이기도 합니다.
종류
- 정적 (static) - 사설 IP가 하나의 공인 IP를 가지게 됩니다. IP가 절약되는 것은 아니고, IP 주소만 바뀌는 것뿐입니다.
- 동적 (dynamic) - 사설 IP가 랜덤으로 공인 IP에 매핑이 되는 것입니다.
- PAT (Port Address Translation) - 하나의 공인 IP에서 포트마다 사설 IP가 할당되는 방식으로 IP 절약 효과가 생깁니다.
'💻Information Security' 카테고리의 다른 글
SQL Injection이란? (0) | 2024.01.18 |
---|---|
Root와 Web Root, 헷갈리는 '루트'란? (0) | 2024.01.15 |
JSON과 JWT! (JSON Web Token) (0) | 2024.01.14 |
Database(DB)와 SQL의 개념과 필요성 (2) | 2024.01.14 |
웹 서버(Web Server)와 WAS(Web Application Server) (1) | 2024.01.13 |