네트워크 주소를 변환하는 기술이다. NAT는 기본적으로 하나의 네트워크 주소에 다른 하나의 네트워크 주소로 변환하는 1:1 변환이 기본이지만 IP 주소가 고갈되는 문제를 해결하기 위해 1:1 변환이 아닌 여러개의 IP를 하나의 IP로 변환하기도 한다.
공식용어로는 NAPT라고 불린다
실무에서는 PAT(Port Address Translation)라는 용어로 더 많이 사용된다.
NAT : IP주소를 다른 IP 주소로 변환해 라우팅을 해주는 기술이다
사설 IP에서 공인 IP로 전환해주는 것 뿐만 아니라 공인 IP에서 사설 IP로 주소를 전환 할 수 있고 사설 IP에서 또다른 사설 IP나 공인 IP에서 또다른 공인 IP로의 전환도 NAT으로 정의될 수 있다.
- AFT(ADdress Family Translation)
IPv4주소를 IPv6 주소로 변환하거나 그반대로 IP주소를 변환하는 기술도 NAT 기술의 일종이다
1. IPv4 주소 고갈문제의 솔루션으로 NAT가 사용된다
- 외부에 공개해야 하는 서비스에 대해서는 공인 IP를 사용하고, 외부에 공개할 필요가 없는 일반 사용자의 PC나 기타 종단 장비에 대해서는 사설 IP를 사용해 꼭 필요한 곳에만 효율적으로 IP를 사용할 수 있게 한다
2. 보안을 강화하는데 NAT기술을 사용한다- 외부와 통신할때 내부 IP를 다른 IP로 변환해 통신하면 외부에 사내 IP 주소 체계를 숨길 수 있다
- 내부 네트워크에서 외부 네트워크로 나가는 방향 통신은 허용하지만 외부에서 시작해 내부로 들어오는 통신은 방어할 수 있다
3. IP 주소 체계가 같은 두 개의 네트워크 간 통신을 가능하게 해준다- 공인 IP는 인터넷에서 유일한 주소로 IP가 중복되면 안되지만 사설 IP는 외부와 통신할 때 공인 IP로 변환되어 통신함으로 서로 다른 회사에서 중복해 사용할 수 있다.
SNAT과 DNAT은 트래픽이 출발하는 시작 지점을 기준으로 구분한다.
SNAT
- 사설에서 공인으로 통신 할 때 많이 사용한다
- 사내 IP를 다른 IP로 변경한다
공유기와같은 기능인 PAT를 사용하는 경우 해당되며 공인 IP에서 사설 IP로 갈경우 사설 IP를 몰라 별도의 공인 IP로 NAT해 서비스를 요청해야 한다
DNAT
로드밸런서에서 많이 사용된다.
사용자는 서비스 요청을 위해 로드 밸런서에 설정된 서비스 VIP로 서비스를 요청하고 로드밸런서에는 VIP를 로드밸런싱될 서버의 실제 IP로 DNAT해 내보낸다.
iptables는 netfilter라는 프로젝트에서 만든 패킷 제어 기능으로, 패킷의 필터링, 제어 등의 기능을 제공한다. iptables에는 table과 chain이라는 큰 분류가 있으며, 그 안에 규칙을 정의해 패킷의 흐름을 제어합니다. 테이블은 iptables의 규칙을 정의할 수 있는 가장 광범위한 범주로 filter, NAT, mangle, raw가 있다.
NAT는 패킷의 속성인 출발 주소(source), 도착 주소(destination) 등을 변경할 수 있도록 각종 규칙을 정의하는 테이블이다. 라우터(공유기) 등에서 사용하는 주소 변환(NAT)과 동일하지만, iptables의 NAT는 이에 그치지 않고 다양한 상황에 범용적으로 적용해 사용할 수 있다
CentOS7으로 3대의 서버를 생성한다.
NAT서버, private 서버 2대로 활용하며 여기서 private 2대는 외부통신망을 차단시킨다.
NAT 서버로 iptables를 사용하여 외부망에 접근할 수 있도록 한다.
참고자료
https://zigispace.net/1121
IT 엔지니어를 위한 네트워크 입문
카카오클라우드 스쿨 4조