2022. 3. 26. 02:30ㆍNetwork
이번시간에는 NAT에 대해서 작성해보겠습니다. 워낙 기초적인 내용이라 아실분들은 스킵하시고 저도 아직 초짜라서 공부중이므로 실수가 있어도 양해부탁드리겠습니다
- What is NAT
Network Address Translation[네트워크 주소 변환]은 컴퓨터 네트워킹에서 쓰이는 용어로서, IP 패킷의 TCP/UDP, 포트 숫자와 소스 및 목적지의 IP주소 등을 재기록하면서 라우터를 통해 네트워크 트래픽을 주고 받는 기술을 말합니다
-> 사설망에서 공인망, 공인망에서 사설망으로 통신하고 싶을때 IP를 변환해주는 역할
사설IP대역
위의 사설ip대역은 사설망에만 해당되면 어디든지 사용이가능합니다. 공유기가 할당해주는 사설망은 사설ip를 사용하지만 이 사설ip는 공인망에서는 사용이 불가능합니다. 따라서 NAT기능이 탑제된 라우터가 공인ip->사설ip, 사설ip->공인ip로 변경해 주는 역할을 하게 되어서 두망간의 통신이 가능하게 됩니다.
- Mechanism of NAT
사용자1[10.10.10.10/24]가 server[125.209.222.142:80]에 접근하려고 합니다
1. 사용자1[10.10.10.10/24] Gateway address Router address[10.10.10.1/24]에게 신호보내서 공유기에게 전달
2. 공유기가 NAT을 통해 공인ip주소[52.15.77.39]로 변환해서 server[125.209.222.142:80]에 전달
3. server[125.209.222.142:80]에서 사용자1이 요청한 정보를 공유기[52.15.77.39]에게 응답
4. 공유기가 NAT을 통해 사설ip주소[10.10.10.10/24]로 변환해 사용자1에게 응답
1. 사용자1이 웹서버에 접속하기 위해 NAT 장비(Gateway)에 패킷전달표
2. NAT 장비가 공인망의 웹서버에게 보내기 위해 사설출발지ip->공인출발지ip로 변경
3. 웹서버 사용자1이 보낸 요청처리하고 응답 -> 출발지, 목적지 변경
4. 응답받은 NAT장비가 과거 사용자가 보낸요청의 응답기억 -> 목적지공인ip를 목적지사설ip로 변경후 사용자1에게 응답
- PAT[Port Address Translation]
1개의 공인ip와 다수 사설 ip를 매핑합니다 [=1개 공인 IP에 port를 구분하여 사설 PC를 구분]
사용자1과 사용자가 2가 출발포트가 동일하다면 출발할때에는 문제가 없지만 서버에서 응답하여 다시 돌아올때에는 문제발생[돌아오는 포트번호가 사용자1과 사용자2가 동일해서 구분못함]
해결 : PAT을 사용하면 출발지 Port를 임의로 변경. 사용자1포트를 10000로바꾸고 사용자2포트를 20000으로 바꾼다면
공인ip는 하나지만 사용자마다 포트가 다르므로 구문가능함
- Kinds of NAT
1. Static NAT
공인ip주소와 사설ip주소 1:1 매칭 -> 공인ip주소의 절약효과는 없음, 포트포워딩으로 사용되기도 함
2. Dynamic NAT
- 내부 다수의 호스트들이 외부로 패킷을 전송할 경우에 정해놓은 범위내의 ip주소로 변환하고자 할때 사용됨[=공인ip주소 1개에 사설ip주소 여러개가 매칭]
- 공인ip가 사설ip보다 적을때 사용고 사설 IP 주소는 여러개의 공인 IP 주소중 사용되지 않는 주소와 맵핑되어 사용됨
cf)ip pool : ip들이 들어있는 그룹, ip주소를 어디서부터 어디까지 정해놓고 그 부분을 예를들어 pool1로 지정가능함
[192.168.0.1 - 102.168.0.5 : pool1]
3. PAT
- 1개의 공인ip와 다수 사설 ip를 매핑합니다 [=1개 공인 IP에 port를 구분하여 사설 PC를 구분]
- 모든 통신에서는 ip주소와 port번호 있음
- Why we using NAT
1. 하나의 공인IP로 여러 사설 IP를 사용가능해서 주소 절약
2. 라우터 안쪽에 있는 사설ip를 모르기때문에 최종목적지로의 공격어려움 -> 내부 네트워크, 호스트 보호가능함
reference check : https://aws-hyoh.tistory.com/145
'Network' 카테고리의 다른 글
IPv4 header (0) | 2022.04.04 |
---|---|
Proxy (0) | 2022.03.27 |
Portforwarding (0) | 2022.03.26 |
overhead (0) | 2022.03.08 |
payload (0) | 2022.03.08 |