Post

네트워크 이론-NAT과 가상사설망

네트워크 이론-NAT과 가상사설망

시작하기 전

취업했다!!!
작은 회사이지만, 부족한 점에서 경력을 쌓을만한 곳이라 생각해 지원하였고, 작년 말 이래저래 사투 끝 붙어 현재 열심히 다니고 있다.

그래서인지, 회사에서 몇달간 교육받고 현재 실무 투입되고 있어 많이 바빠 글을 쓰지 못하고 있다. 실제로 교육받으면서 배운 기술들을 써보자 하였으나, 보안 사항에 걸릴것 같아..

어쨌든 이번에는 회사에서 배운 내용 중, 보안 사항에 걸리지 않는 네트워크에 대해 오랜만에 글을 써보자 한다.

또 사족으로 블로그를 만든 지 벌써 1주년인데 시간이 지날수록 글 리젠률이 떨어지고 있다… 분발해야겠다.

네트워크

컴퓨터 네트워크는 굉장히 복잡하여, 학부과정에서도 심화전공으로 나뉠 정도이다.

특히 데브옵스나 인프라를 다루는 직종이라면 네트워크는 굉장히 유용한 지식인데, 용어를 알아야 시스템 내부망의 구조를 꿰뚫 수 있고 어떻게 설계할 지를 알 수 있기 때문이다.

NAT 스위치

NAT 스위치는 네트워크 주소 변환(Network Address Translation)의 약자로, 외부에 연결된 IP를 내부에서만 쓰이는 IP로 변환해주는 시스템을 의미한다.

더 정확히 말하자면..

보통 한 집에는 인터넷을 추가 신청하지 않는 이상 IP가 한 개 할당된다(IP는 주소이니까).
하지만 우리는 그 IP로 여러 컴퓨터에, 휴대폰에, 심지어는 IoT 기기까지 연결해야 한다!
이 기기들은 독립된 IP가 필요한데, 인터넷 회사에서 준 하나의 IP로는 해결할 수 없으므로 결국 각자 IP를 가지는 독립된 내부 네트워크가 필요하다.

그리하여 그 내부 네트워크 내 IP들을 「한 개 IP」와 연결시켜주어 외부망 통신을 할 수 있게 해주는 수단이 바로 NAT인 것이다.

보통 이런 식으로 구성되어 있다. 어디서 많이 본 것 같은 구조이다?
맞다, 바로 공유기이다! 우리가 사용하는 공유기는 바로 이 NAT 스위치 역할을 해 주는 것이다(내부 네트워크에 주소를 분배해주는 역할과 함께 하여 라우터 라고 부른다. 정확히는 스위치와 라우터 둘다 비슷하게 보이겠지만 OSI 7계층이 다르다. 스위치는 2단계 데이타링크 계층, 라우터는 3단계 네트워크 계층. 즉 스위치는 라우터의 상위 개념이라 보면 된다.).

위 그림에서 123.456.78.9는 외부 IP, 000.xxx.0.1~30 은 내부 IP라고 한다.

외부IP와 내부IP

여기에서 외부 IP와 내부 IP라는 말이 나오는데,
외부 IP는 인터넷 공급자가 제공해주는 IP로 외부망, 즉 인터넷에 직접 연결된 IP(실제 주소)를 뜻한다.
즉 위에서 말한 인터넷 회사에서 집에 준 하나의 IP가 이에 속하는 것이며, 구x/네x버 등지에서 「내 IP」라고 검색하면 나오는 주소가 바로 외부 IP이다.

반면 내부 IP는 공유기(라우터) 등지로 생성해 얻는 내부 네트워크의 IP로 외부(인터넷)에는 당연히 드러나지 않는다.
각 기기들에게 할당되는 IP이기에 ipconfig(리눅스는 ip addr)로 쳐서 나오는 IP는 내부 IP이다.
이 내부 IP 혼자서는 당연히 인터넷에 접속할 수 없으므로 앞서 말한 NAT을 통해 외부 IP로 변환하여 인터넷으로 들어가는 것이다.

마찬가지 이유로 디x인x이x 같은 익명 게시판에서 글을 쓰면 나오는 IP도 이 외부 IP이다.
외부 IP는 인터넷 사업자들이 보통 편의를 위해 행정구역 별로 구분하기 때문에 이 IP를 전부 알면 할당된 집 주소까지도 알 수 있다.
그러므로 인터넷에 글을 쓸 때는 익명이라도 항상 주의하자!
(흔히 통신사 IP라고 하는, IP를 공유하는 무선망(LTE/NR)을 사용하는 까닭이기도 하다.)

가상 사설망

내부 네트워크를 구축해 놓으면 인터넷에 연결하지 않는 이상 외부 공격으로부터 안전하고(물론 USB 같은 물리적인 방법 외) 내부간 통신에도 편리하다. 그 덕에 많은 기업들과 기관은 많은 라우터와 스위치를 사용한 사내망(인트라넷)을 가지고 있다.

그렇다고 군이나 금융사 같이 정보유출에 매우 민감한 곳이 아니고서야 이 네트워크를 영영 격리시켜놓을 수는 없는 법이다. 예를 들면 외부에서 급한 일이 생겨 사내망에 원격으로 접속한다던가…
이럴 때를 대비해 가상 사설망이라는, 내부망에 들어갈 수 있는 편리한 기술이 존재한다.

가상 사설망은 보통 VPN 라우터라는 기계를 사용하여 수행한다. 인터넷에 연결된 내 기기가 내부망에 있는 사내 기기에 연결하기 위해, 둘 다 연결되어 있는 VPN 라우터에 (클라이언트 프로그램 등지로) 접속한다.
접속이 되면, 이제 VPN 라우터가 내부망과 내 기기를 연결해준다.

즉, 외부망과 내부망을 임시로 연결해주는 가상망을 만들어주기 때문에 「가상 사설망」이라 부르는 것이다.

엥? 그럼 우리가 흔히 아는 IP 세탁하는 VPN은 무엇인가?
이는 「프록시 서버」라고 하며, VPN과는 엄밀히 말해 다른 개념이다.

프록시 서버

프록시(proxy)는 영어로 대리LoL의 그것라는 뜻으로, 내 IP(물론 외부 IP)를 대신하여 보이는 역할을 수행한다. 프록시 서버는 인터넷과 기기 사이에서 이 역할을 해주는 중계 서버인 것이다. 위에서 말한 NAT의 외부 버전같은 셈이다!

원래는 네트워크 전송 속도 향상을 위해 고안된 기술이지만, 내 IP를 숨길 수 있다는 부가적인 점이 익명성의 대두로 인해 각광받아졌다.
‘딥 웹’에 들어갈 수 있는 것으로 유명한 Tor는 이를 굉장히 꼬아놓은 것이다.

VPN과 프록시

물론 VPN을 통해서도 IP를 우회할 수 있다.

VPN을 사용할 때의 특징으로, VPN과 연결하게 되면 그 때부터 내 기기는 VPN 내부 네트워크 내의 기기로 인식되어 기기와 VPN 사이의 통신이 전부 암호화되며, IP도 그 네트워크 내의 무작위 IP로 바뀌게 된다(이는 VPN 라우터 기기가 자동으로 라우팅 해준다).

따라서 VPN 네트워크를 다른 곳에 두거나 하는 경우, 해당 IP인 것처럼 행세할 수 있다는 것이다.
물론 라우터 내 VPN 접속 IP로그 등을 기록해 둔다면 모를까…

끝내며

네트워크는 이론을 아는 것이 매우 어렵다… 아무래도 실무로 익히기에는 너무 까다롭기도 하다.
OSI 7계층에 대해서도 더 공부해 봐야겠다.

This post is licensed under CC BY 4.0 by the author.