티스토리 뷰

네트워크/팁

NAT, PAT

프링글 2008. 6. 22. 16:30
출처 : Let your soul take you where you long to be...

안녕하세요. 최종수 라고 합니다.
저는 네트웍크관련 분야에서 일을 하고 있으며,현재 Cisco CCNA/CCNP자격증과 Microsoft MCSE/MCDBA 자격을 취득했습니다.
여러분중에 공유기의 원리가 궁금하신분들이 있어서 간단한 사용 팁과, 원리에 대해 이야기 해보고자 합니다.

일반인들 입장에서 공유기는 그저 하나의 인터넷 회선을 나누어 주는 전기 스위치장치 정도로 아실 수 있지만, 공유기는 무척 다양하고, 복잡한 기능을 가진, 하나의 소형 컴퓨터와 같습니다. CPU가 있고 램이 있으면 HDD대신 플래쉬 롬을 사용합니다.
네트웍에 대해 공부하신분은 아시겠지만, 공유기란 NAT(network Address Translation)의 약자로, 쉽게 풀어 쓰면 네트웍크 주소변환기의 뜻입니다. IP공유기는 NAT기술에 서도 PAT(Port Address Translation)기능에 기반한 것입니다. 포트 포워딩이 PAT기능의 일부 입니다.
인터넷공유기능은 인터넷 IP통신의 근간을 이루는 라우터의 기능중에 하나 였습니다. 공인 IP주소의 낭비를 막고, 주로 VPN(가상 개인 사설망)을 사용 하는 소규모, 혹은 기업 사설 네트워크가, 인터넷 망과 연결하기 위한 기술 이었지요. 공유기는 하나의 라우터라고 생각 하시면 됩니다. 애니게이트 공유기에 보면 참 좋은 것이. 별로 쓰이지는 않지만, 라우팅 기능까지도 포함 하고 있다는 사실 입니다. 일반 개인가정에서는 쓰일 일이 없지만, 소규모 사무실에서 라우팅 기능은 무척 요긴한 것입니다. 수십,수백의 라우터가필요없죠 이제
NAT와 PAT의 원리에 대해 간단히 알아 봅시다.
NAT static mapping
공인 IP주소 변환 가상IP주소
211.203.246.45 <::> 192.168.1.100
211.203.246.46 <::> 192.168.1.101
인터넷에 돈을 주고 사야 되는 공인 IP, 우리가 집에서VDSL이나 ADSL을 사용할때 공인 IP를 받는 것은 다 아시죠? IP주소가 없으면 이 넓은 인터넷에서, 자신의 컴퓨터의 주소를 찾을 수가 없습니다. 그래서 인터넷에 연결된 모든 컴퓨터는 각각 하나씩의 IP 주소를 갖고 있으며, IP주소는 인터넷 기관에서 지역별로 관리하고 있습니다. 그런데, 가상 IP ,즉, 공인된 IP가 아닌, 개인이 인터넷과 연결하지 않고, 자체적인 IP 네트워크망을 만들때 사용하는 주소로 된 네트워크가 있습니다. 그런데, 이 네트워크망에 있는 컴퓨터중 한,두대는 인터넷과 연결되어야 합니다. 그럴려면 어떻게 해야 할까요?
네, NAT기능을 이용하면 됩니다. 그런데, NAT를 어디서 구현해야 할까요? 바로 인터넷과 내부네트워크를 연결해주는 네트워크장비 즉, 라우터(공유기)가 연결되어야 할 컴퓨터의 주소를 위의 표와 같이 가상주소로 변화 시켜줍니다. 즉, 주소를 변환해 주는 것이 공유기의 주도니 연할 입니다.

그렇다면 PAT(Port Address Translation)은 무엇일까요?
포트포워딩, 정확하게는 서로 다른 기술입니다만, 너무 햇갈리실꺼 같아서, 일단 기본원리는 비슷합니다. 자. 우리집을 봅시다. pc가 3대 입니다. 그런데 AdSL은 하나있습니나 사용합니다. 즉, 공인 IP는 하나 이지요. 그런데 3대의 pc가 모두 IP 주소가 필요로 합니다. 그럼 하나의 공인 IP에 3개의 가상 IP가 연결되어야 한다는 뜻인데, 어떻게 1대 다의 관계가 성립할 수 있을까요? 그것 바로 포트 번호를 이용하는 것입니다. IP주소 체계와 별도로, TCP포트 넘버라는 것이 있습니다. 이것은 우리집에 편지가 왓는데, 이편지가, 엄마껀지. 아빠 건지, 동생껀지 구분하기 위한 번호 쯤으로 생각 하시게 됩니다.
우리가 윈도우즈에서 바탕화면에 보시면 많은 프로그램이 떠 있습니다. 인터넷익스플로, 새롬데이터맨, 구루구루, 피드박스, 당나귀,winmx, msn메신저, 등등등, 그럼 이 모든 프로그램은 같은 IP 주소를 사용해서 랜카드를 통해 동시에 연결되어 있습니다. 그런데 만약, 이 많은 프로그램이 연결된 정보를 서로 구분해주지 않는 다면, 인터넷에서 연결했을때, 어떻게 될까요? 프로그램간에 서로 난리가 나겠죠? 데이터를 보내야 하는데 이게 메신저껀지? 당나귀껀지? 인터넷 익스플로러껀지 구분 할 수 가 없습니다. 그래서 포트PORT넘버라는 것을 각각 프로그램이 인터넷과 연결될때, 할당을 합니다. 보통은 포트번호가 지정되어 있는 경유가많습니다. 이를 wellknow port number라고 하는데 대표적인 것이 인터넷 80,8080포트 텔넷 21포트 등이 있지요. 이야기가 길어 졌는데, PAT는 이러한 포트 번호를 이용한 꽁수 입니다.
공인 IP (같은주소 포트는 다름) 가상 IP
211.203.246.45 :100 <::> 192.168.1.100
211.203.246.45 :200 <::> 192.168.1.101
211.203.246.45 :300 <::> 192.168.1.102

이런식으로 포트 번호를 추가해서 하나의 공인 IP에 여러개의 가상 IP가 사용되는 것입니다. 하지만 이것이 완벽하게 작동하는 것이 아닙니다. 공유기 쓰면 잘 안되는 프로그램이 있는 경우가 있지요?

목적지A 45 연결포트 201 출력포트101 --> <공유기> -> PC
목적지B 46 연결포트 302 출력포트101 -->101을 누구한테 보내지?

공유기를 거처서 2대의 컴퓨터가 목적지 A,와 B에 연결하다고 생각 합하면, 2대의 pc를 구분하기위해 서로 다른 포트 번호를 달고 갑니다. 45와 46 그런데 이 프로그램이 사용된느 출력포트는 고정 입니다 101, 그럼 101을 사용하는 데이터가 공유기에 들어왔을때? 101을 누구한테 보내야 할 지 모르게 되는 현상이 생기됩니다.
이런경우 그래서 포트 포워딩이 필요한것이며, 포트포워딩은
포트 번호 하나당 하나의 ip주소의 1대1 일 대응이 됩니다.
즉 포트포워딩이 지정된 pc만 해당하를 프로그램이 제대로 된는 것이지요. 구루구루나, 당나귀, 워크래프트에 보시면, 공유기 사용자들을 위해, 프로그램이 사용하는 포트번호를 바꿀수 있게 되어 있습니다. 하지만, 일부 메신저나, 스타크래프트 등은 프로그램이 사용하는 포트 번호가 고정되어 잇기 때문에, 한번에 하나의 pc만 사용 하게 되는 것입니다.
벌써, 공유기를 구연하기위해서, NAT,PAT,port forwarding기술과 서로 다른 네트웍이 연결되기 위래 Routing 기능이 사용 되는 것입니다.

그런데, 이러한 포트사용 구조 제가 위에는 간단히 설명드렸지만, 상당히 복잡한 구조를 사용하는 경우가 있습니다. 그런경유 단순한 포트 포워딩 매핑만으로 해결되지 않는 경우도 많을 뿐더러, 어떤 프로그램이 어떤 포트를 사용하는 지 일반 사용자는 잘 알 지 못하느 경우가 많지요. 그래서, 토정 인터넷 공유기가 좋다는 이유가 여기 있습니다. 국내에서 주로 사용하는 프로그램을 잘 알 고 있으므로, 그 프로그램들을 사용할 수 있도록 미리 최적화 되어 있고, 새로운 프로그램이 나왔을때, 빠른 패치를 통해 사용이 가능하게 해주는 것입니다.

세계최대의 통신장비 회사하면 시스코 입니다. 10대 IT기업중에 하나이기도 하구요. 이회사의 제품의 특징은, 비싸다, 속도가 떨어진다 입니다. 그런데, 비싸고, 속도도 떨어진 회사의 제품이 왜 세계 일위 일까요? 바로 안정성과, 다양한 기능때문입니다
시스코의 라우터는 지금 전세계 네트웍의 핵심망을 이루고 있습니다. 비록 이보다 퍼퍼먼스에서 뛰어난 노텔이나, 알카텔, 익스트림 등의 성능 좋은 장비가 있지만, 안정성, 다양한 기능성에서는 쫗아 오지를 못하기 때문이죠.
인터넷 공유기 역시 마찬가지 입니다. 제아무리 공유기의 cpu가 좋고 초반 패킷처리 숫자가 좋으면 뭐합니까? 안정적이으로 작동하고, 자신이 사용하는 인터넷 서비스를 지원 하지 못한다면, 아무 쓸모 없는 것 입니다. 그리고 설치하고, 설정하기 쉬어야 하구요.

저역시 네트워크 엔지니어 입니다만, 개발자는 아닙니다.
외국의 고가 장비, 그러나 안에 뜻어 보면 정말 아무것도 없습니다.
그런데도 모듈카드 하나에 수천만원이고, 장비하나에 수십억씩 합니다. 우리나라 보십시오, 엄청난 인터넷 인프라 알고보면, 다 미국에 통신장비회사 좋은일 시켜 준겁니다. 시스코,3com, Lucent, Alcatel, nortel등등...

이 네트웍망에 우리나라 제품은 거의 없다고 보시면 됩니다. 정말 안타깝기 그지 없습니다. 그래도 그나마, 우리 가정엔 XXXX가 있으니까, 위안을 삼습니다.
홈네트워크에서 시작해서, 후에 메트로에서 백본에 이르기 까지, 우리의 제품으로 우리의 인터넷망이 이루어 지는 날을 기대해 봅니다.


To the Extream Network, Network is enfinity
최종수 - gomaha -

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크