티스토리 뷰

NAT(Network Address Translation)은 말 그대로 직역하자면 네트워크 주소 변환입니다. 이 네트워크 기술은 실생활에서 많이 쓰이며 우리 생활에 알게 모르게 우리가 많이 사용하고 있는 기술입니다. 가장 대표적인 예로 집이나 회사에서 많이 사용하는 iptime 같은 공유기가 대표적인 예라고 할 수 있습니다.


NAT는 내부 사설망을 구축하여 하나의 공인 IP로 여러 기기를 사용할 수 있게해 줍니다. 또한 내부 네트워크 망을 외부로 부터 분리 시키기 때문에 보안에 용이하다는 장점이 있습니다.


위의 그림은 간단한 내부 사설망을 구성해본것 입니다. 위와 같이 네트워크 구성도를 나타낸것을 토폴로지(Network topology)라 합니다. 위 토폴로지에서는 3대의 라우터(Router)(Internet 제외) 1대의 서버 5대의 PC로 구성 하였습니다. 그림에서 보이는 10.0.0.1이라는 IP주소를 가진 라우터는 인터넷과 직접 연결되어 있는 라우터입니다. 이 라우터가 내부 사설망과 연결되어 있는 포트(port)를 게이트 웨이(Gate way)라 하고 내부에 연결되어 있는 모든 device들은 Internet에 연결하기 위해 Gate way와 통신해야 합니다. 그림에 나와있는 10.0.0.1은 이 Gate way의 IP를 나타낸 것입니다. 하지만 이 Gate way의 IP는 내부에 연결된 device들과 통신하기 위해 사용하는 것으로 외부 인터넷 망으로 통신하기 위해서는 외부 인터넷 망과 연결된 포트가 필요하고 이 포트는 외부 인터넷 망과 통신함으로 공인 IP가 필요하게 됩니다. 그러므로 이 라우터는 하나의 기기이지만 공인 IP와 내부 사설IP를 동시에 가지므로 두 망과 통신할 수 있는 것입니다.


이제 내부 사설망을 살펴보도록 하겠습니다. 내부 사설망이란 Gate way와 연결된 네트워크 망입니다. 보통 이런 작은 네트워크 망을 세그먼트(Segment)라고 합니다. 이 내부 사설망 안에 있는 디바이스 들은 사설 IP를 갖게 되는데 사설 IP란 내부 사설망에서 사용하기위해 임의로 지정해주는 IP 입니다. 보통은 라우터의 설정에 따라 사설 IP를 자동으로 부여받게 되는데 수동으로 IP를 부여할수도 있습니다(IP가 충돌하지 않는 경우). 그럼 이제 내부 사설망에 있는 모든 디바이스 들이 사설 IP를 부여받고 서로 간의 통신을 할 때에는 이 사설 IP를 통해 통신을 하게 됩니다. 그러나 외부 인터넷 망과 통신하기 위해서는 사설 IP로 통신할 수 없습니다. 왜냐하면 사설 IP는 내부 사설망에서만 유효할뿐 외부 인터넷 망에서는 공인 IP를 사용해야 하므로 외부 인터넷 망에서 사용할 수 없기때문입니다.


간단한 예를 들어 NAT가 어떻게 동작하는지 알려드리겠습니다. 10.0.0.7의 사설 IP를 가진 PC가 외부 인터넷 망에 메일을 보내려 합니다. PC가 메일을 보내는 것은 우리가 일상에서 우편을 보내는 것과 비슷합니다. 우선 메일이 도착할 목적지 주소를 적습니다. 목적지가 외부 인터넷이라면 공인 IP가 되겠지요. 그리고 메일에 작성할 데이터들을 작성합니다. 그리고 마지막에 출발지 주소를 적습니다. 이때 출발지 주소는 사설 IP가 됩니다. 그리고 뒤에 더 붙는것이 MAC주소라는 것이 붙게 됩니다. MAC주소란 모든 네트워크 장치에 부여되는 일련번호로써 공장에서 만들때부터 기기에 부여되고 바꿀수 없는 고유 식별 번호입니다. 이렇게 메일을 다 작성한 PC는 자신에게 연결된 라우터인 10.0.0.2에게 메일을 보냅니다. 그러면 메일을 받은 10.0.0.2는 가장 먼저 목적지 주소를 보고 내부 사설망에 연결된 디비이스 중에 이 주소를 가진 디바이스를 찾습니다. 그리고 내부 사설망에서 목적지를 찾지못할 경우 이 목적지가 외부 인터넷 망에 있다고 판단하여 Gate way(10.0.0.1)를 찾아갑니다. Gate way를 가지고 있는 라우터는 이제 Gate way로 들어온 메일을 외부 인터넷 망에 보내줘야 하는데 출발지 주소가 여전히 사설 IP이므로 자신의 외부인터넷이 연결되어있는 포트가 가지고 있는 공인 IP를 출발지 주소로 바꿔준 후 인터넷에 보내게 됩니다. 이런 방법으로 메일을 송신했습니다. 그렇다면 답장도 받아야 겠지요.


메일을 송신할때 라우터는 출발지 주소를 자신이 가지고 있는 공인IP로 바꿔서 보냈습니다. 그러니 답장은 자신에게 오겠지요. 메일을 보낼때는 출발지에 자신의 주소를 적지만 메일을 받을때는 도착지에 자신의 주소가 적히게 됩니다. 즉 라우터는 목적지가 공인 IP로 적힌 메일을 받은 것입니다. 이제 해야할 일은 이 메일이 내부 사설망에 연결된 디바이스 중 누구에게 왔는지를 찾아야합니다. 그리고 그 디바이스가 가지고 있는 사설 IP로 목적지를 바꿔줘야 하는것인데 그때 사용하는 것이 바로 MAC주소 입니다. 목적지 주소에 적힌 MAC주소를 보고 이 메일이 누구에게 온것인지 판단하여 전달하는 것입니다. 제일 먼저 자신이 가지고 있는 MAC주소 목록에서 누구인지 찾고 그 목록에서 찾을 수 없다면 내부 사설망 안에 있는 라우터과 통신하여 해당 MAC주소에 맞는 사설 IP를 찾아내고 목적지 주소를 사설 IP로 바꿔준 후 전달하면 메일을 주고 받는 일이 끝나게 됩니다.


이러한 주소변환은 앞서 이야기 한 바와 같이 보안성을 가지게 됩니다. 메일을 보낼때 적은 PC의 IP주소는 10.0.0.7이지만 메일이 Gate way를 거쳐 외부 인터넷 망으로 나가면 공인 IP로 바뀌게 되고 외부에서 10.0.0.7이라는 IP주소를 찾아 접근하려 하면 그 주소를 찾을 수 없으므로 접근이 불가능해 진다는 점입니다. 또한, 하나의 공인 IP로 내부 사설망에 연결된 모든 디바이스 들이 외부 인터넷 망과 통신을 하여 IP를 좀 더 효율적으로 쓸 수 있다는 장점이 있겠지요.


이처럼 알게 모르게 우리가 많이 사용하고 있는 네트워크 기술들이 많이 있습니다. 자세하게 알고자 한다면 어려울 수 있지만 쉽고 간단하게 이해할 수 있다면 생활하는데에 도움이 될 수 있으니 몇가지는 알아두는것도 좋을것 입니다.


- by 테스커

댓글
댓글쓰기 폼