Virtual Machine's DNS(2)
Local DNS 구현
이전 포스트 VM’s DNS(1)의 내용을 포함하고 있습니다.
해당 포스트는 VM(Virtual Machine)의 기본 인터넷설정, 포트포워딩에 대한 자세한 설명은 생략되어 있습니다.
Oracle VM VirtualBox, centos7, Oracle Database 23c Free Developer를 사용하였습니다.
NAT 환경
NAT 환경에서의 VM의 통신은 Host 컴퓨터로부터의 진입이 필수 불가결이기 때문에, VM간의 통신은 포트포워딩에 불과하며, Host 컴퓨터가 사용하는 라우터의 IP를 DNS에 등록하여 접근하는 방식을 사용해야 하며, 라우터의 IP를 사용하는 방식에서 두가지로 나뉘게 된다.
DNS 정식 등록
첫 번째 방식은 외부에서 설정하는 방법으로 무료로 dynamic DNS를 지원해주는 Duck DNS를 사용하여 간단하게 인터넷에 Host 컴퓨터가 사용중인 라우터를 공개했으며 다음과 같다.
해당 사이트에 로그인한 후 자신의 Host 컴퓨터가 사용하는 라우터의 IP를 자신이 지정한 domain 이름으로 설정할 수 있게 해주며 타 이용자와의 중복을 방지하여 설정할 수 있게 해준다.
기본적인 매커니즘은 내가 작성한 domain을 접속을 위해서 사용하게 되면 작성한 IP로 리다이렉트 해주는 느낌이다.
물론 domain을 이용한 VM으로의 접속이 이루어지는 포트포워딩을 적용하기 위해서는 Host 컴퓨터가 이용하는 라우터에서 Host 컴퓨터로의 포트포워딩 설정 또한 해주어야한다.
이후 VirtualBox를 이용해 centos7을 이용한 linux와 Oracle DataBase Developer를 이용한 linux를 생성한다.
centos7의 네트워크 설정과 포트포워딩 설정을 다음과 같게 한다.
centos7의 포트포워딩, ssh 접속 포트는 외부 22, 내부 22로 설정해준다.
oracle db의 포트포워딩, ssh 접속 포트는 외부 8083, 내부 22로 설정해준다.
centos7 -> oracle db로의 통신의 모습
라우터 외부포트 8081 port > 내부포트 Host 8083 port > VM oracle DB 22 port
oracle db -> centos7로의 통신의 모습
라우터 외부포트 22 port > 내부포트 Host 22 port > VM centos7 22 port
Local한 DNS 운영에 만족하는 접근 방식은 아니지만 VM간의 통신이 성공적으로 이루어졌다.
Hosts 파일 설정
두 번째 방식은 hosts 파일에 직접 라우터의 IP 주소를 써주는 방식이다.
vi /etc/hosts
명령어를 이용해 다음과 같이 수정해준다. Hosts 파일을 수정하기 위해서는 당연히 관리자 권한을 필요로 한다.
수정해준 이후 앞선 확인과 같이 ssh 접속으로 확인해보면 모두 통신이 잘 되는 것으로 보인다.
NAT network 환경
앞서 설정했던 VM의 네트워크 설정을 다음과 같이 수정한다.
NAT network 환경에서는 NAT 환경의 Hosts 파일 설정과 같이 Hosts 파일에 원하는 IP값을 domain으로 써넣어주면 된다.
다음과 같이 Hosts 파일에 서로의 IP와 사용할 domain을 입력해준다.
이후 해당 domain을 이용해 ssh 접속을 해보면 성공적으로 접속되는 것을 확인할 수 있다.
NAT 방식과 다른 점은 Host 컴퓨터의 외부 포트를 이용해 접속하는 것이 아니기 때문에 VM에서 ssh포트를 설정한 22번 포트를 사용해서 접속해야 한다는 점이다.
Bridge network 환경
각 VM의 네트워크 설정을 다음과 같이 브릿지로 설정해준다.
이후 구현은 앞선 Hosts파일을 열어서 각 VM의 IP에 해당하는 값과 사용할 domain을 이전과 같이 써넣어주면 DNS를 사용할 수 있다.
Host-Only Adapter 환경
bridge network의 내용과 동일하기에 생략한다.
Tool
CentOS7-x86-64-2009.iso
Oracle VM VirtualBox 7.0.12-r159484
duckdns.org