host to gateway, gateway to gateway 방식 vpn에 대한 질문입니다.
대표적인 오픈소스 vpn인 poptop이나 openvpn 구축 문서들을 보면 대부분이 서버에 직접 vpn 어플리케이션을 설치해서 사용하는 host to host vpn 구축 방식이 대부분이더군요.
host to gateway, gateway to gateway 방식에 대해 질문을 좀 하고자 합니다.
host to gateway 방식 하나만 물어봐서 답을 얻게 된다면 gateway to gateway 방식도 자연스레 이해갈 수 있을 것 같아서 host to gateway 방식만 여쭈어 보겠습니다.
host to gateway 요 방식이 대표적으로 구현된 사례가 vpn 기능이 탑재되어 있는 공유기인 걸로 알고 있습니다.
외부에서 공유기 vpn에 인증을 통과하여 접속하게 되면 외부 사용자와 공유기 간에 사설망이 뚫린다는 것까지는 이해가 가는데요.
문제는 공유기 바깥에서 vpn으로 접속한 사용자가 공유기 하단의 사설 네트워크와 같은 네트웍을 사용할 수 있게 된다는 구조가 어떻게 구현되는 것인지 궁금합니다.
분명 공유기 하단의 시스템들은 이미 별도의 사설망을 형성하고 있을 것이고 이는 공유기의 물리 인터페이스에서 할당받은 네트웍이겠죠.
그런데 공유기 외부에서 vpn으로 접근하게 되면 사용자와 공유기 간에는 가상의 인터페이스를 통해 연결되는 걸로 압니다.
이 가상의 네트웍이 공유기 하단의 물리 사설 네트웍과 직접 통신이 가능하게 되는 원리가 궁금합니다. 분명 서로 다른 네트웍일텐데 말이죠. 제가 잘못 생각하고 있는 건지 답변 부탁드립니다.
외부에서 어떻게
외부에서 어떻게 내부 사설로 연결할 수 있는지가 궁금하신 것 인가요?
일단 외부에서 공유기vpn에 접속이 되면 외부pc의 패킷은 외부pc에 정의되어있는 라우팅 테이블에 의해
가상 nic로 보낼건지, 아니면 일반 nic로 보낼건지를 결정 해겠죠.
그 정책에 의해 가상 nic로 패킷을 보내게 되면 이것이 vpn 프로그램으로 들어가서 vpn 프로그램은
그 원본 패킷을 암호화하고 그 위에 vpn 껍질(?)을 씌웁니다. ( 아마 이것을 encapsulation이라고 말했던 것 같습니다 )
그다음 캡슐화 된 패킷을 vpn서버로 보내면 vpn서버는 그 패킷을 받아 껍질을 벗기고 복호화 과정을 거칩니다. ( 이것은 decapsulation 이라고 했던것 같군요.. )
그럼 이제 원본 패킷이 나오게 되는데 이 패킷은 다시 vpn서버의 라우팅테이블에 의해 어떤 nic로 보낼 지 결정을 하고
그 nic로 보내게 됩니다.
즉, 패킷의 흐름을 그려보면
다시 내부 사설에서 외부pc에 접속하는것도 위와 비슷하구요.
이렇게 되서 외부에서도 내부 사설ip에 접속이 가능합니다.
답변이 되었는지 모르겠네요
답변
답변 감사합니다.
라우팅테이블로 조정하는 건 어느 정도 예상했네요.
그런데 제가 정말 궁금한 것은 이겁니다.
공유기에서 제공하는 VPN 기능에 의하면...
공유기 외부에서 VPN 연결을 시도하면 공유기와 사용자 간에 가상 사설망이 형성됩니다.
그런데 이 사설망이 공유기 내부의 물리 사설망과 동일하다는 것이죠.
여기서 궁금한 점이 발생합니다. 공유기 내부의 물리 사설망이 192.168.0.0/24를 사용한다고 가정하겠습니다.
이 경우 공유기 내부 게이트웨이 주소는 192.168.0.1 정도가 되겠죠. 물리 인터페이스에 물리는 하단의 시스템들은 192.168.0.2~254가 될 거고요.
그런데 외부에서 vpn 접속을 시도해서 내부 물리 사설망과 동일한 네트웍 주소를 쓰는 가상 사설망이 형성될 경우 공유기의 물리 사설 게이트웨이 주소 말고 vpn 서버 가상 인터페이스 주소는 어떻게 할당되느냐입니다.
사설 물리 인터페이스 주소인 192.168.0.1을 똑같이 쓸 수는 없지 않겠습니까?
공유기 세팅에서 VPN 서버용 인터페이스 할당이 가능한 걸로 아는데 사설 게이트웨이 주소와는 다른 걸 쓰는지요?
vpn 지원 공유기를 안써 봐서 모르겠네요.
아~ 질문을 잘못
아~ 질문을 잘못 이해했군요^^;
저도 그것으로 고민을 많이 했었는데요..
완벽한 동일 네트워크는 불가능 하다는게 제 생각입니다.
( 제가 생각지 못하는 다른 방법이 있을 수 도 있겠지만요..ㅠㅠ )
그 이유는 동일 네트워크로 묶이게 되면 바로 브로드캐스팅으로 arp 요청 패킷을 날려버리기 때문입니다.
그래서 VPN네트워크는 전혀 다른 대역을 주어 각 사설 노드마다 방화벽 정책을 변경 해 주거나,
/24대역을 /25대역 2개로 쪼갠 뒤 사설 노드들은 서브넷마스크를 24로 해준다거나,
DNAT으로 VPN네트워크와 사설 네트워크를 연결 해 주는 방식을 사용했습니다..
쩝.. 그리 좋은 답변은 아닌듯 싶네요..ㅠㅠ
댓글 달기