하마롱크의 블로그
NAT (2) 본문
1. SNAT와 DNAT
1.1. NAT를 사용해 네트워크 주소를 변환할 때 어떤 IP 주소를 변환하는지에 따라 두 가지로 구분
- SNAT(Source NAT): 출발지 주소를 변경하는 NAT
- DNAT(Destination NAT): 도착지 주소를 변경하는 NAT
1.2. SNAT와 DNAT는 트래픽이 출발하는 시작 지점을 기준으로 구분
어떤 주소를 변경해야 하는지는 서비스 흐름과 목적에 따라 결정
1.3. 요청 시 SNAT를 해 목적지로 전송하면 해당 트래픽에 대한 응답을 받을 때는 출발지와 목적지가 반대가 되므로 DNAT가 되는데 이때 트래픽을 요청하는 시작 지점만 고려해 SNAT 설정을 해야 함
NAT 장비를 처음 통과할 때 NAT 테이블이 생성되므로 응답 패킷이 NAT 장비에 들어오면 별도의 NAT 설정이 없더라도 NAT 테이블을 사용해 반대로 패킷을 변환해줄 수 있기 때문
이 과정을 역 NAT라고 하며 NAT가 정상적으로 수행되려면 역 NAT 과정이 함께 수행되어야 함
2. SNAT와 DNAT를 사용하는 경우
2.1. SNAT를 사용하는 경우
2.1.1. SNAT는 사설에서 공인으로 통신할 때 많이 사용
- 공인 IP 주소의 목적지에서 출발지로 다시 응답을 받으려면 출발지 IP 주소 경로가 필요한데 공인 대역에서는 사설 대역으로의 경로를 알 수 없으므로 공인 IP의 목적지로 서비스를 요청할 때 출발지에서는 사설 IP를 별도의 공인 IP로 NAT해 서비스를 요청해야 함
- 그래야 해당 요청을 받은 목적지에서 출발지 IP를 공인 IP로 확인해 다시 응답할 수 있는 경로를 찾을 수 있음
- 이것은 공유기처럼 PAT를 사용하는 경우에 해당
2.1.2. 보안상 SNAT를 사용
- 회사에서 다른 대외사와 통신 시 내부 IP 주소가 아니라 별도의 다른 IP로 전환해 전송함으로써 대외에 내부의 실제 IP 주소를 숨길 수 있음
- 보안상의 문제뿐만 아니라 대외사와 통신해야 하는 사내 IP가 대외사의 사내 IP 대역과 중복될 때도 SNAT를 통해 중복되지 않는 다른 IP로 변경해 통신하는 데 사용
- 이 경우는 앞에서 말한 사설에서 공인으로 통신해야 하는 경우와 비슷하지만 이 경우에는 변경되는 IP가 반드시 공인일 필요는 없음
2.1.3. 로드 밸런서의 구성에 따라 SNAT를 사용하기도 함
- 출발지와 목적지 서버가 동일한 대역일 때는 로드 밸런서 구성에 따라 트래픽이 로드 밸런서를 거치지 않고 응답할 수 있어 SNAT를 통해 응답 트래픽이 로드 밸런서를 거치게 할 수 있음
2.2. DNAT를 사용하는 경우
2.2.1. DNAT는 로드 밸런서에서 많이 사용
- 사용자는 서비스 요청을 위해 로드 밸런서에 설정된 서비스 VIP(Virtual IP)로 서비스를 요청하고 로드 밸런서에서는 서비스 VIP를 로드 밸런싱될 서버의 실제 IP로 DNAT해 내보냄
2.2.2. 사내가 아닌 대외망과의 네트워크 구성에도 DNAT를 사용
- 사내 IP 주소는 중앙에서 일괄적으로 관리되므로 IP가 중복되는 경우가 없지만 사내가 아닌 대외망과의 연동에서는 IP가 중복될 수 있음
- IP가 중복되지 않더라도 IP 주소가 제각각이므로 신규 대외사와의 연동마다 라우팅을 개별적으로 설정해야 함
- 이 경우, 대외망에 NAT 장비를 이용해 대외사의 IP를 특정 IP 대역으로 NAT함
- 사내에서는 어떤 대외사든 대외망 전용 NAT 대역으로 변경된 네트워크 대역으로 라우팅을 처리하면 되므로 대외사 추가에 따라 별도 라우팅을 개별적으로 설정할 필요가 없고 사내 IP와 중복되는 IP가 있더라도 라우팅 이슈 없이 구성할 수 있음
3. 동적 NAT와 정적 NAT
3.1. 출발지와 목적지의 IP를 미리 매핑해 고정해놓은 NAT가 정적 NAT
3.2. 반대로 출발지나 목적지 어느 경우든 사전에 정해지지 않고 NAT를 수행할 때 IP를 동적으로 변경하는 것이 동적 NAT
3.3. 동적 NAT는 출발지와 목적지가 모두 정의된 것이 아니라 다수의 IP 풀에서 정해지므로 최소한 출발지나 목적지 중 한 곳이 다수의 IP로 구성된 IP 풀이나 레인지(Range)로 설정되어 있음
NAT가 필요할 때 IP 풀에서 어떤 IP로 매핑될 것인지 판단해 NAT를 수행하는 시점에 NAT 테이블을 만들어 관리
NAT 테이블은 설정된 시간 동안 유지되고 일정 시간 동안 통신이 없으면 다시 사라지므로(NAT 테이블 타임아웃) 동적 NAT의 설정은 서비스 흐름을 고려해 적용해야 함
3.4. 정적 NAT는 출발지와 목적지 매핑 관계가 특정 IP로 사전에 정의된 것이므로 1:1 NAT라고 부르기도 함
실제 IP 매핑도 A라는 IP와 B라는 IP가 항상 고정되어 매핑된 상태이므로 서비스 방향에 따라 고려할 필요가 없음
방향성 없이 서비스 흐름을 고려하지 않고 NAT 설정 가능
<참고문헌>
IT 엔지니어를 위한 네트워크 입문