NAT (Network Address Translation) - 주소 변환(http://darksoulstory.tistory.com/72)
내부가 사설 IP로 구축되었을 때 사설 IP가 가지는 가장 큰 문제점은 Routing 이 되지 않는 다는 점이다. 사설 IP로 설정된 Client에서 공인 IP를 가지는 Server로 서비스를 요청하는 경우(접속하는 경우) 목적지(Server)의 주소가 공인 IP 이므로 Routing이 되어 접속이 허용된다. 문제는 접속요구를 받은 Server가 Client로 응답을 보내주는 경우이다. 이 경우 Client의 IP가 사설 IP로 설정되었으므로 Routing이 되지 않으며, 정상적인 Network 서비스를 제공받을 수 없게 된다.
[그림1. 사설 IP에 대한 문제]
이러한 문제를 해결해 주기 위한 것이 바로 주소변환(NAT)이다. 사설 IP를 Routing이 되는 공인 IP로 변경해주는 기능을 주소변환(Network Address Translation)이라고 한다. 주소변환(Network Address Translation)은 쉽게 설명하면 전송되는 Packet의 IP 정보를 변경하는 기술이다.
1. NAT 필요성
1) 공인 IP 부족문제 해결
- 내부 망 에서는 사설 IP를 사용하고, 외부 인터넷 망 접속 시 사설 IP를 공인IP주소로 변환하여 사용함 으로서 공인 IP부족문제를 해결한다.
2) 외부로부터 내부망을 보호 - 보안성 우수
- 내부를 사설망 (사설IP)로 구축하여 인터넷(공인망)으로부터 보호 목적
(사설 대역 IP는 인터넷 구간에서 라우팅이 되지 않는다.)
3) ISP변경에 따른 내부 IP변경 최소화
2. NAT의 종류
NAT의 종류는 Firewall 벤더사 마다 약간의 용어 차이가 있음을 미리 알린다.
1) Normal NAT (Port NAT) –N:1
NORMAL NAT는 사설 IP를 공인 IP로 변환 해주는 것으로, N개의 사설 IP를 하나의 공인 IP로 변환해 준다. 즉, N개의 사설 Client들이 하나의 공인 IP를 공유해서 인터넷을 사용하게 하는 것이다.
내부망에서 외부망으로 나갈 때 10000번 ~ 60000번까지 Port만 변경해서 나간다.
[그림2. Normal NAT]
내부의 Client가 서버로 서비스를 요구하는 경우, 전송되는 Packet의 출발지 주소를 방화벽의 외부 IP(121.162.10.xxx)로 설정하면, Server의 응답은 방화벽으로 들어온다.
방화벽은 내부 사설 Client에서 전송된 패킷의 주소변환 정보를 갖고 서버로 보내온 응답을 해당 Client에 전달해 준다.
주소 변환 전 IP (Port) | 주소 변환 후 IP (Port) |
192.168.10.100 (1025) | 121.162.10.xxx (10000) |
192.168.10.101 (1156) | 121.162.10.xxx (10001) |
[표1. Normal NAT 변환]
2) Reverse NAT (Static NAT)
외부에서 내부의 사설 네트워크에 접속해야 하는 서버가 있는 경우 NORMAL NAT 설정만으로는 외부 에서 내부 서버로 접속할 수 없다. 그 이유는 NORMAL NAT에 설정된 공인 IP로 외부에서 접속요구를 했을 경우 방화벽에서는 N개의 사설 IP 중 어떤 IP로 변환해야 할지 알 수 없기 때문이다. 외부에서 접속해야 하는 내부망의 사설 서버에 대해서는 주소변환 설정을 따로 해주어야 하는데, 이때 설정해야 하는 주소변환이 REVERSE NAT로 1:1 Mapping , Static Mapping 이라고도 한다. 외부에서 지정된 공인 IP로 접속을 요구하면 방화벽에서는 해당 공인 IP에 지정된 사설 IP로 패킷을 전달해 통신이 이루어진다.
[그림3. Reverse NAT]
① 외부의 Client에서 내부망에 존재하는 웹서버의 공인 IP로 웹 서비스를 요청한다.
출발지 IP | 목적지 IP |
121.161.10.xxx | 121.161.10.xx1 |
② Firewall에서는 내부에 존재하는 웹 서버의 공인IP를 사설 IP로 주소 변환 한다.
웹 서버 공인 IP | 주소 변환 ▶ | 웹 서버 사설 IP |
121.161.10.xx1 | 192.168.10.100 |
③ 주소 변환 과정을 거친 Packet의 목적지 IP는 내부에 존재 하는 웹 서버의 사설 IP로 변경된다.
출발지 IP | 목적지 IP |
121.161.10.xxx | 192.168.10.100 |
④ 내부에 존재하는 웹 서버가 Client에 대한 응답 Data를 보내면, Firewall은 다시 출발지 IP를 웹 서버의 공인 IP로 주소 변환 시킨다.
웹 서버 사설 IP | 주소 변환 ▶ | 웹 서버 공인 IP |
192.168.10.100 | 121.161.10.xx1 |
⑤ 주소 변환된 웹 서버의 공인 IP로 Client에 웹 서버의 Data가 전달 된다.
출발지 IP | 목적지 IP |
121.161.10.xx1 | 121.161.10.xxx |
3) Redirect NAT
Redirect NAT는 목적지 주소를 재 지정할 때 사용한다. 예를들어 웹 서버가 장애 등이 발생하여 부득이 하게 사용 할 수 없는 경우 Redirect NAT 설정은 유용하게 사용된다.
웹 서버(192.168.10.100)의 장애로 서비스가 불가능 하지만, 외부에서는 웹 서버(121.161.10.xxx)로 접속을 해 올 것이다. 이에 대해 갑작스런 장애에 대한 공지를 하기 위해 방화벽에서 공지 전용 서버(192.168.10.101)로 목적지를 변경해 줄 수 있다. 192.168.10.100으로 접속요구 하는 것을 192.168.10.101로 변경해서 공지 내용을 전달해 준다. 이때 사용하는 것이 Redirect NAT이다.
[그림4. Redirect NAT]
4) Exclude NAT
특정 목적지로 접속할 때 만 설정된 NAT를 적용 받지 않도록 할 때 사용한다. 방화벽 외부에 라우터가 있는 경우를 예로 들어 보자. 내부 관리자가 방화벽 외부에 있는 라우터에 접속할 때는 Normal NAT 적용을 받게 되는데, 내부 관리자에 대해 Normal NAT 적용을 받지 않고 라우터로 접속하도록 설정 할 수 있다.
출처: http://darksoulstory.tistory.com/72 [DarkSoul.Story]
'C Lang > IT Knowledge' 카테고리의 다른 글
가상화란?가상화 작동원리,하이퍼비전, 가상화 유형 (0) | 2018.10.09 |
---|---|
vpn이란? (0) | 2018.09.07 |
TCP와 HTTP (0) | 2018.06.05 |
CIDR(Classless Inter-Domain Routing) 표기법 (0) | 2018.06.04 |
스카이프 비즈니스 어카운트 데이터 플로우 with AI-HUB (0) | 2018.05.28 |