최근 A 대역에 존재하는 WAS와 B 대역에 존재하는 데이터베이스에 대해 접근해 요청을 보내야 하는 일이 있었다.
WAS와 DB의 대역이 달라 직접적으로 접근을 할 수 없어, 같은 회사 분께 여쭈어 보니 “연계망을 타야 한다.”
라는 답변을 들었다.
연계망을 탄다는 것이 정확히 인지가 되지 않아, 이에 대해서 더 자세히 여쭈어보았다.
그러자 아래와 같은 답변을 들었다.
“서로 다른 두 망의 중계 서버를 거쳐 요청을 전달 시켜야 한다. ”
해당 글에서는 망연계에 대한 기본적인 개념과 예시를 통해 해당 개념을 공부 해보고자 한다.
망연계
란 서로 보안 수준이 다른 망 간 데이터 전송 방식을 제공하는기술
이다.
개발을 하다 보면 내부망
과 외부망
으로 망이 분리된 환경을 겪는 일이 많다.
내부망에서 대역이 다른 외부망으로 요청을 보내고자 하는 일이 종종 있는데, 이 때 서로 다른 망 간 요청을 보낼 수 있게 하는 기술이다.
이러한 망연계 시스템은 아래와 같은 주요 구성 요소
로 이루어져 있다.
망 연계 서버
중간 서버 역할
을 하며, 일반적으로 단방향 전송을 지원한다.게이트웨이
위의 구성 요소 중 망 연계 서버에는 IP를 등록 해야 하는 절차
가 있다.
각 망 연계 솔루션마다 절차 및 위 구성 요소는 상이 하기에 참고 정도로만 보면 된다.
위 절차를 글로만 보면 잘 이해가 안될 수도 있을 것이다.
내부망에서 외부망에 요청을 보내는 예시를 통해 더 자세히 알아보도록 하자.
요청 사항은 아래와 같다.
내부망 WAS 인스턴스
에서외부망에 있는 데이터베이스
에 요청을 보내고자 한다.
이 때 각 IP, PORT 정보는 아래와 같다고 하자.
[WAS]
IP : 30.16.2.15
PORT : 8080
[DB]
IP : 170.104.78.65
PORT : 30000
위와 같이 망이 다른 WAS와 DB가 있을 때 WAS 내부망에서 DB 외부망으로 요청을 보내고자 한다.
이 때 망연계가 필요하다.
망 연계 서버는 WAS에서 DB로 보내는 요청을 중계 해준다.
WAS 인스턴스에서 망 연계 서버에게 DB로 접근 하고 싶다고 요청한다.
실제로는 요청을 하고 싶어하는 Client가 망 연계 서버에 WAS 인스턴스를 등록 시키는 것이지만 설명의 편의성을 위해…
이 때 망연게 서버는 WAS 인스턴의 IP와 PORT를 저장한다.
그 후 WAS 인스턴스에게 같은 내부망 대역인 IP와 PORT를 공급한다.
WAS 인스턴스가 해당 IP:PORT로 요청을 보내면 망 연계 서버는 이를 DB 서버로 Forwarding 해준다.
이 때 PORT Forwarding 등의 기술을 사용하여 망 연계 서버는 WAS 인스턴스가 보낸 요청을 DB 인스턴스로 전달 시켜준다.
즉 쉽게 생각해서
망 연계 서버 내부에서 등록된 WAS 인스턴스의 IP와 PORT에서 30.16.2.10:30000으로 요청을 보내면 이를 핸들링 해서 170.104.78.65:30000 으로 요청을 보내는 것이다.
망연계 기술은 이러한 방법을 통해서 외부망과 내부망간 통신을 할 수 있게 한다.