vm로 서로 다른 두 가상 머신을 만들 었을 때, 두 가상머신 끼리 통신할 수 있을까?
이번에는 두 가상머신끼리 통신하는것을 설정해보자.
그전에 NAT에 대해서 알아보자. 사전적 정의는 IP패킷의 TCP/UDP포트 숫자와 소스 및 목적지의 IP주소등을 재 기록하면서, 라우터를 통해 네트워크 트래픽을 주고 받는 기술을 말한다. 이때 공유기 안에서는 NAT table이라는 공간에 매 통신을 기록한다.
정의는 이렇고 쉽게 이해하면, 공인 IP는 한정되어있기 때문에, 사설 IP의 개념이 필요하게 되었고, 공인IP를 가지고 있는 공유기 , 기계를 통해서 사설IP를 할당해준 다음 사설 IP를 가지고 외부의 네트워크와 통신할 때 필요한 기술이다.
- ex) 공유기(공인IP) 와이파이(사설IP)에 접속해서 인터넷(공인IP)을 한다.
- 요약하면 여러 대의 호스트가 하나의 공인 IP주소를 사용하여 인터넷에 접속하기 위한 경우이다.
다만 단점은 사설IP의 개념 자체가 중복되는 IP가 엄청 많기 때문에, 외부에서 사설 IP로 접근할 수 없다.
=> 이를 보안하기 위해서 나온 개념이 Port Forwarding이다.
Port Forwarding): NAT기술의 응용 으로서, 패킷이 라우터나 방화벽과 같은 네트워크 장비를 가로지르는 동안 특정 ip주소와 포트 번호의 통신 요청을 특정 다른 IP와 포트번호로 넘겨주는 이 기법은 게이트웨이의 반대쪽에 위치한 사설 네트워크에 상주하는 호스트에 대한 서비스를 생성하기 위해 흔히 사용된다.
사설 IP의 단점은 IP를 알아볼 수 없기 때문에, 요청을 보내고 싶어도 보낼 수 없다는 단점이 있다. 따라서 클라이언트가 먼저 요청을 보내는데 이때 서버의 사설 IP로 직접 요청을 보내는 것이 아니라 공인 IP로 요청을 보낸다. 그리고 이 공유기의 포트 포워딩 설정을 하면 특정 포트로 들어온 요청을 다른 특정 사설 IP의 특정 포트로 전송한다.
이때 포트번호는 포트포워딩을 하는 사용자의 마음대로 설정할 수 있다.
두 VM이 연결 되는 것을 확인하기 위해선 당연히 2개의 VM이 필요하다. 사전에 복제해서 만들어 주자.
네트워크를 설정하기전 파일-환경설정-네트워크로 이동한 다음 네트워크 하나를 추가하자.
오른쪽 첫 번 째 버튼을 누르면 추가가 된다.
네트워크를 추가했다면, 이제 VM의 네트워크 설정을 변경할 차례인데,
vm에는 여러개의 네트워크 연결 방식이 있다. 보통 기본 설정은 NAT으로 되어있다.
VM 설정- 네트워크-어댑터1의 설정을 NAT네트워크로 바꿔 주자. 이때 이름은 바로 위에서 만들었던 VirtualBox의 네트워크로 설정된다(추가로 생성하면 선택도 가능)
다음과 같이 네트워크를 바꿨다면, 이제 두 VM의 전원을 켜보자.
ifconfig명령어를 입력해 ip를 확인해보면,
첫 번째 VM의 ip는 10.0.2.4이고,
두 번째 VM의 ip는 10.0.2.5이다.
이제 두 네트워크가 잘 연결이 되는지를 확인해 본다.
첫 번째 VM에서 두 번째 명령어로 ping 명령어를 쏴보자.역시 마찬가지로 2-1로 ping을 쏴주면
이로서 두 VM이 서로 연결되는 것을 확인할 수 있다.