[Data Communication] Virtual Machine 에서의 네트워크 구성
도커 아키텍쳐에 대해서도 알아보아야겠지만, Virtual Box 등의 Virtual Machine 을 만들어 사용할 때 네트워크 구성방법은 다음과 같다.
- 내부 네트워크
- Bridge
- NAT
- NAT Network
용어
가상머신 = 게스트OS
호스트OS = 가상머신을 설치한 컴퓨터
내부 네트워크
내부 네트워크 연결 방식은 호스트 컴퓨터 내의 가상 머신들끼리만 통신할 수 있는 네트워크를 만들어 연결하는 방식이다.
따라서, 게스트 OS 는 외부와 통신할 수 없다.
Bridge
브릿지 방식은 호스트 OS 가 브릿지가 되어 가상 머신과 호스트 OS 가 연결된 라우터를 등위로 연결시키는 방식이다. 즉, 가상 머신은 라우터에 연결된 컴퓨터가 된다. 따라서, 외부와의 통신, 호스트 OS 와의 통신이 모두 가능하다.
NAT
NAT 연결 방식은 호스트 OS 가 게스트 OS 의 NAT 가 되어 네트워크를 구성하는 방식이다. NAT 와 NAT Network 은 구분하여야 하는데, NAT 방식으로 네트워크를 구성하면, Virtual Machine 하나마다 NAT 가 생기는 방식이다.
NAT 연결의 경우, 게스트 OS -> 호스트 OS 로의 통신은 기본적으로 제한된다. 불가능한 것이 아니라, Default 설정이 그렇다. 외부에서 게스트 OS 로의 통신은 포트 포워딩 설정을 통해 수행할 수 있다.
또한, NAT 연결의 경우 각각의 가상 머신이 독립된 LAN 을 이루게 되므로, 가상 머신간의 통신이 불가능하다.
NAT Network
NAT Network 방식은 NAT 방식과 유사하나, 하나의 NAT 를 여러 가상 머신이 공유한다는 점이 다르다. 공유기 한 대에 여러개 컴퓨터가 몰려있는 형태를 호스트 OS 안의 가상머신에 적용한 것과 유사하다.
NAT Network 도 NAT 연결과 마찬가지로 기본적으로 게스트 -> 호스트로의 통신은 불가능하지는 않지만 Default 로 제한된다.
하지만, NAT 방식과 달리 하나의 NAT 을 여러 가상머신이 공유하므로 가상 머신간 통신이 가능하다.
이상으로 Virtual Machine 을 생성할 때 네트워크를 구성하는 방법에 대해 알아보았다. 최근에는 도커를 사용할 일이 잦은데 도커에서는 Overlay 라는 네트워크를 보았는데, 이에 대해서는 추가로 정리해볼 계획이다.