네트워크
NAT(Network Address Translation)
tioon
2023. 7. 22. 17:07
NAT이란?
-사설 IP주소와 공인 IP주소간의 변환을 수행하는 기술입니다. NAT은 라우터에서 일어나며, 라우터 내부망에서는 사설IP를 사용, 외부에서는 공인IP를 사용하기 때문에 사설 네트워크 내부에서 외부와 통신이 일어날때 공인 IP주소로 바꿔 통신을할 수 있게 해주는 기술입니다.NAT을 이용해 인터넷 접속의 보안을 강화할 수 있고, IP주소 부족문제를 해결할 수 있습니다.
NAT 특징
- IP주소 변환
-NAT을 이용해 사설IP를 공인 IP로 변환하거나, 공인IP를 사설IP로 변환시킬 수 있습니다.
-보통 사설 네트워크 내부의 여러 디바이스들이 하나의 공인IP주소를 공유합니다. - 네트워크 보안 향상
-NAT을 사용해 내부 네트워크 사설IP주소를 외부에 감춰 보안을 향상시킵니다.
-외부에서 내부 네트워크에 직접 접근하는 것을 어렵게 만듭니다. - 포트번호 활용
-공인IP의 포트번호를 활용하여 공인IP내부에서 외부에서 내부의 사설IP를 구분할 수 있게 만듭니다.
-사설IP마다 다른 포트번호를 부여해 외부의 입력이 해당 사설IP에게 들어올 수 있게 합니다.
NAT 변환과정
- 공인 IP, 사설 IP 주소 변환
-패킷을 보낼땐, 사설IP를 공인IP로 변환을하고, 패킷을 받을땐, 공인IP를 사설IP로 변환을 합니다.
이때, 각각IP정보는 NAT테이블에 저장되어 있으며, 테이블 정보를 기반으로 IP주소를 변환합니다. - 포트변환
-공인IP하나에 여러개 사설IP를 쓰고 있는경우 사설IP를 구분하기 위해 포트번호로 구분합니다.
이를 이용해 포트포워딩을 구현할 수 있습니다.
각각의 사설 IP를 가진 네트워크들이 다른 포트번호를 부여 받습니다. - 패킷전달
-IP주소 변환과 포트변환이 다 일어났을경우 이제 라우팅을 통해 목적지로 패킷전달을 합니다. - 응답처리
-목적지에 패킷이 전달된후 그에맞는 처리를하고 다시 응답을 보내옵니다. 응답패킷이 올때에도 같은 과정을 거쳐서 들어오게됩니다.
NAT 방식
- Static NAT (1:1NAT)
-공인IP주소와 사설IP주소가 1:1로 매칭이 되는 방식입니다.
-공인IP주소 절약효과는 없으며, 공인IP를 여러개 보유하고 있어야합니다.
-외부에서 사설IP주소로 직접 들어올 수 있습니다.
사설 IP 주소 | 공인 IP주소 |
192.168.1.1 | 10.17.48.5 |
192.168.1.2 | 112.44.113.1 |
192.168.1.3 | 12.45.79.26 |
- Dynamic NAT (N:N NAT)
-공인IP주소 1개에 여러개의 사설 IP 주소가 매칭이 되는 방식입니다.
-공인IP주소 절약효과가 있으며, 공인IP한개만 보유해도 여러개의 사설IP를 사용할 수 있습니다.
-포트번호가 매번 바뀌기에 외부에서 사설IP주소로 직접 들어올 수 없습니다.
-보통 PAT방식을 사용하여 사설IP에 공인IP의 Port번호를 유동적으로 매핑하여 사설IP를 구분합니다.
사설 IP 주소 | 사설 포트 | 공인 IP 주소 | 공인 포트 |
192.168.1.1 | 1000 | 10.17.48.5 | 5001 |
192.168.1.2 | 1000 | 10.17.48.5 | 5002 |
192.168.1.3 | 1000 | 10.17.48.5 | 5003 |
포트 포워딩
-인터넷에서 한 네트워크에서 다른 외부 로컬네트워크에 있는 장치를 접근할 수 있게하는 기술입니다. 위에서 설명한 Dynamic NAT과 비슷한 기술입니다. 다만, Dynamic NAT은 포트번호가 유동적으로 변하기 때문에 외부에서 내부로 패킷을 보내도 어디로 보내야할지 모르기에 보낼 수가 없습니다. 하지만 포트포워딩은 사설 포트와 공인포트를 고정시키기때문에 외부에서도 알맞은 포트로 패킷을보내기만하면, 내부에 패킷을 보낼 수 있습니다.
사설 IP 주소 | 사설 포트 | 공인 IP 주소 | 공인포트 |
192.168.0.1 | 4523 | 101.89.111.44 | 2277 |
위와같은 포트 포워딩이 되어 있다고 가정하면, 외부에서 해당 네트워크의 공인IP주소(101.89.111.44)의 2277포트번호에 패킷을 보내게되면, 내부 네트워크로 들어와 포트포워딩된 사설 네트워크의 사설포트 4523번으로 패킷이 들어가게됩니다.
이로 인해, 외부에서도 내부 네트워크에도 식별하여 패킷을 보낼 수 있습니다.
위와 같이 외부에서 Port 2277번호로 패킷이 들어오면 바로 Port4523번으로 들어올 수 있습니다.