UCloud에 서버를 생성시 자동적으로 RVM이라는 것이 생성된다.
계정 내 VM들의 Gateway로 Source NAT, Firewall, Load Balacer, DNS 및 DHCP 서버 역할 수행
Router-VM의 특징
- 외부 네트워크 연동시 RVM 경유
- 모든 포트에 대해서 접속 차단(기본 기능)
- 한계정의 VM이 다른 계정의 VM 연동시에도 RVM 경유
- RVM은 공통으로 172.27.0.0/16을 가짐
Route-VM의 기능
- NAT Gateway : VM 외부 연동을 위한 Port Forwarding 기능
- Load Balancer : L4 Switch와 같은 소프트웨어 Load Balancer 기능
- DNS Server : 내부 1차 DNS 서버 역할
- DHCP Server : 고객 VM에 IP 할당
모든 VM은 RVM을 거쳐서 가야 한다. RVM의 성능 이슈가 가장 큰 문제가 된다.
RVM당 어느 정도의 VM을 할당 할지 부하 점검이 필요하다
============================================================
참고 : http://14.63.213.53/?p=553
============================================================
UCloud 에 서버를 생성하게 되면 RVM이라는 것이 자동적으로 생성된다.
이 RVM은 계정과 계정을 분리하는 gateway라고 이해하면 되겠다.
그렇다면 이 RVM이 하는 역할은 무엇이고 우리가 RVM으로 할 수 있는 것이 무엇인지 알아보도록 하자.
먼저 RVM(Router VM)도 하나의 가상머신이다. 내부적으로는 linux로 구현되어 있는 router라고 생각할수 있으나
우리가 일반적으로 사용하는 H/W router에서 하는 것과 같이 rip, ospf와 같은 동적 routing protocol을 지원하는
router는 아니며 단지 정적인 routing처리만이 가능한 S/W router라고 생각할 수 있다.
Router-VM의 역할을 한 번 정리해보자.
1) 한 계정내 VM들의 gateway
2) source NAT와 destination NAT의 NAT gateway
3) firewall
4) load balacer
5) dns server
6) dhcp server
이 역할들을 한꺼번에 제공하고 있는 것이 바로 router vm이다. 우리가 UCloud에 계정을 생성하고 Server를 생성하게되면
자동적으로 RVM이 하나 만들어지고 이 VM의 IP는 모든 계정에서 공통으로 172.27.0.1/16 ip를 갖게 된다.
VM 을 만들고 난 다음 아래와 같이 RVM으로 ping test 를 해보자
어떤가 ? 한번도 만든적이 없는 172.27.0.1 이라는 시스템으로 ping이 나오지 않는가 ? 만약 이 ping에 문제가 있다면
아마도 router vm에 문제가 있던가 아니면 자신의 VM의 네트웍설정에 무언가 문제가 있다는 뜻이다.
1) 한 계정내 VM들의 gateway
자신의 계정에서 만든 모든 VM들이 외부로 나가는 인터페이스 VM이 바로 RVM이다.
위와 같이 default gateway가 172.27.0.1 로 설정되어 있는 것을 확인 할 수 있다.
2) source NAT와 destination NAT의 NAT gateway
RVM이 내부VM들의 Gateway이면서 공인망으로 나가는 Gateway라면 외부를 바라보는 interface와 내부를 바라보는
interface 두개를 갖고 있는 것으로 생각할수있다. 또 실제로도 그렇다.
그렇다면 RVM은 내부네트웍(172.27.0.0/16) 과 외부네트웍(14.63.x.y)간에 address 변환을 해주는 logic이
있어야 한다는 뜻이된다. 바로 이 역할이 SNAT와 DNAT로써의 RVM의 역할이다.
SNAT로써 RVM은 이 VM의 내부 IP : 172.27.0.2 를 외부에서 IP : 14.63.213.53으로 알려지도록 하는 역할을 한다.
DNAT로써 RVM은 외부 IP : 14.63.213.53 를 내부 IP : 172.27.0.2로 포트포워딩하는 역할을 한다.
3) firewall
RVM은 기본적으로 모든 포트가 막혀있다. 우리가 포탈에서 특정포트를 오픈할때마다 해당 서비스포트와 VM이
서로 연결이 되고 나머지는 적어도 RVM에서는 차단된다. 이 지점에서 우리가 알수 있는 것은 만약 어떤 VM으로
가는 경로를 오픈했다면 그 VM과 다른 VM사이는 완전히 같은 네트웍안에서 오픈되어 있기 때문에 연동에
필요한 포트만을 오픈하고 나머지 포트는 모두 닫아두는 것이 보안상 안전하다는 것이다.
4) load balancer
RVM은 포탈에서 보는 바와 같이 부하분산의 역할도 수행한다. 이 부분에 대해서는 이 전 load balancer사용과
관련된 글을 참조하기 바란다. 이 RVM이 하는 부하분산 기능은 부가서비스로 제공하는 부하분산에 비해서는
성능이 떨어진다. 따라서 고성능의 부하분산이 필요하다면 부가서비스에서 제공하는 Load Balancer를 사용해야한다.
5) dns server
RVM은 또한 외부 DNS로 가는 로컬 DNS의 역할도 담당하고 있다. 각각의 VM에서 dns server를 조회해 보면
위와 같이 RVM의 IP (172.27.0.1) 가 DNS server로 설정되어 있는 것을 확인할 수 있다.
한가지 아쉬운점은 cname등의 설정이 불가능하다는 것이다. 예를들어 내 사이트가 abc.com 이고
이 도메인에 대한 IP를 14.63.213.53으로 상위도메인서버에 등록해 놓은 다음 내 VM중의 하나를 cname으로 설정해서
download.abc.com을 매핑하는 작업이 안된다는 것이다. 이런 경우를 사용하고자 한다면 또 다른 네임서버를
더 만들어서 처리를 하거나 공인 IP하나를 더 받고 상위도메인에 해당 IP/domain을 설정하는 식으로 작업을
해야한다.
6) dhcp server
각각의 VM에서 interface configuration file을 보면
이와 같이 dhcp client로 설정되어 있는 것을 볼수 있다. RVM 은 각각의 VM이 부팅될때 IP들을 할당해주고
gateway나 routing정보를 업데이트 한다. 그렇다고해서 이 IP가 매번 바뀐다는 뜻은 절대 아니다.
출처 - http://blog.daum.net/kth_cloud_plan/20
'Cloud > UCloud' 카테고리의 다른 글
cloud - KT uCloudbiz 로드 밸런싱 (0) | 2013.04.27 |
---|