VPN을 통한 Virtualbox Guest OS


43

Windows 7 호스트의 VirtualBox에서 웹 서버를 실행하는 Oracle Linux 게스트가 있습니다. 세 가지 작업을 수행 할 수 있도록 네트워킹을 설정해야합니다.

  1. 호스트는 브라우저와 ssh를 통해 게스트에 연결할 수 있습니다
  2. 게스트는 호스트의 VPN을 통해 내부 네트워크의 다른 서버와 대화 할 수 있습니다
  3. 손님은 외부 인터넷에 연결할 수 있습니다

몇 가지 답변을 읽고 몇 가지 구성을 시도했으며 다음과 같은 결과가 발생합니다.

브리지

  1. 호스트가 손님에게 연락 할 수 없습니다
  2. 손님은 VPN을 통해 볼 수 없습니다
  3. 손님은 인터넷에 연결할 수 있습니다

NAT

  1. 호스트가 손님에게 연락 할 수 없습니다
  2. 손님은 VPN을 통해 볼 수 있습니다
  3. 손님이 인터넷에 접속할 수 없습니다

호스트 전용

세 가지 조건이 모두 실패합니다.

NAT- 네트워크

  1. 호스트가 손님에게 연락 할 수 없습니다
  2. 손님은 VPN을 통해 볼 수 있습니다
  3. 손님이 인터넷에 접속할 수 없습니다

또한 때로는 호스트가 VPN을 통해 연결되고 다른 경우에는 단순히 회사 네트워크에 직접 연결되는 경우도 있습니다. 직접 연결하면 브리지 된 어댑터가 세 가지 조건을 모두 만족시킵니다. VPN 또는 직접 연결 여부에 관계없이 3 가지 조건을 모두 만족하는 구성이 이상적입니다.


VPN 연결에는 일반적으로 자체 어댑터가 있으므로 먼저 VPN 어댑터 (VPN에 연결된 경우)에 연결해야합니다.
Ƭᴇcʜιᴇ007

나는 VPN 어댑터에 VM을 브릿지과 IP 주소하지 않습니다
ewok

이것이 layer2 어댑터인지 layer3 어댑터인지 말할 수 있습니까?
MariusMatutiae

@MariusMatutiae 죄송합니다. 무슨 뜻인지 잘 모르겠습니다.
ewok

어떤 종류의 VPN입니까?
MariusMatutiae

답변:


63

나는했다 정확한 I 자세하게 문제 및 솔루션을 설명 행복 해요, 그래서 같은 문제 및 해상도를 통해 보았다.

VPN을 포함하지 않고

VPN을 사용 하지 않고 요구 사항을 충족하기 위해 필요한 구성을 이해하는 것이 중요합니다 . 또한이 정보는 호스트 나 게스트 모두에서 소프트웨어 방화벽이 방해하지 않는다고 가정합니다.

VPN이 없으면 일반적으로 가상 시스템 구성에 두 개의 네트워크 어댑터를 만들어 해결합니다.

첫 번째 어댑터는 NATmode 로 설정해야 게스트가 호스트의 네트워크 인터페이스를 통해 네트워크 리소스 (인터넷 포함)에 액세스 할 수 있습니다.

어댑터 1 : NAT

두 번째 어댑터는로 설정해야하므로 Host-only호스트와 게스트 간의 양방향 통신이 가능합니다.

이 어댑터는 호스트 전용 어댑터를 구성하기 위해 VirtualBox의 글로벌 네트워킹 환경 설정을 수정해야하기 때문에 첫 번째 어댑터보다 설정이 약간 더 복잡합니다 (주 : 관리자 권한이 필요함).

VirtualBox에서로 이동하십시오 File -> Preferences -> Network. 클릭 Host-only Networks탭을하고 작은 클릭 +새 어댑터를 추가하는 아이콘을. VirtualBox의 권한을 상승하라는 메시지가 표시됩니다.

Adapter탭 작성 은 필수입니다. 다음과 같이 보일 것입니다 (어댑터는 무시하십시오 #2; 관련없는 것에 사용됩니다) :

네트워킹 기본 설정 1

DHCP서버 탭 의 값 은 선택 사항입니다. 게스트의 네트워킹 구성에서이 어댑터의 IP 주소를 하드 코딩하려는 경우 이러한 값이 필요하지 않습니다. 반면에 DHCP를 사용하려는 경우 값은 다음과 같습니다.

네트워킹 기본 설정 2

VirtualBox 구성과 관련된 마지막 단계는 VM의 네트워크 구성으로 돌아가서 방금 만든 호스트 전용 어댑터를 참조하는 두 번째 어댑터를 추가하는 것입니다.

어댑터 2 : 호스트 전용

이제 게스트 운영 체제에서이 두 네트워크 인터페이스를 사용하도록 네트워크를 구성해야합니다.

데비안 또는 우분투 GNU / 리눅스에서는 /etc/network/interfaces다음과 같이 수정 하는 것만 큼 ​​간단 합니다.

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet dhcp

# The secondary network interface
auto eth1
iface eth1 inet static
     address 192.168.56.101
     netmask 255.255.255.0

(순수한 사람이 /etc/network/interfaces.d대신 디렉토리 를 사용하는 것을 선호 할 수도 있지만,이 설명의 범위를 벗어납니다)

게스트의 네트워킹 서비스를 다시 시작하거나 전체 게스트 VM을 다시 시작하면 모든 것이 "작동"합니다.

이 시점에서 게스트 VM을 ping하고 192.168.56.101응답을받을 수 있어야합니다 (소프트웨어 방화벽이 방해가되지 않는 경우).

마찬가지로에서 호스트를 ping 할 수 있어야합니다 10.0.2.2. 이 IP 주소는 VirtualBox의 NAT 구현에 "하드 코딩 된"것으로 보이거나 적어도 분명하지 않은 구성 지시문을 통해 지정된 것으로 보이며 그 출처에 대한 정보는 거의 없습니다. 그러나 아아, "그냥 작동합니다".

이 구성이 주어지면 질문에 요약 된 세 가지 조건이 모두 충족됩니다.

입력 : VPN

그러나 여기에 문지름이 있습니다. VPN을 도입하면 성능 저하 문제가 발생합니다 (특정 VPN 및 해당 구성에 따라 다름).

최신 VPN은 분할 터널링 이 가능 하며, 위에서 언급 한 VirtualBox 구성이 세 가지 요구 사항에 따라 작동하는 데 필요합니다. (좋은) 보안상의 이유로 분할 터널링은 종종 비활성화되어 있으며 이는 귀하의 경우 (및 광산)의 문제입니다.

VPN에 연결하면 VPN 클라이언트 (내 경우에는 Cisco AnyConnect Secure Mobility Client, 3.1.02026)가 호스트 컴퓨터의 라우팅 테이블을 검사하고이를 기억 한 다음 일반적으로 중앙에서 가져온 값으로 포장합니다. 관리되는 위치 (예 : 로컬 관리자 권한이 있어도 설정을 무시할 수 없음)

command.exeWindows에서 다음 을 열어 라우팅 테이블을 직접 확인할 수 있습니다 .

C:\>route print

VPN에 연결하기 전에 라우팅 테이블에는이 VirtualBox 구성이 올바르게 작동 할 수있는 중요한 항목이 포함되어 있습니다. VPN에 연결하면 이러한 항목이 제거되어 호스트와 게스트 간의 통신이 차단됩니다.

(이 동작의 근본 원인과 관련이 없기 때문에 여기서 생략 한 다른 항목이 많이 있습니다.)

VPN에 연결하기 전에 :

     192.168.56.0    255.255.255.0         On-link      192.168.56.1    266
     192.168.56.1  255.255.255.255         On-link      192.168.56.1    266
   192.168.56.255  255.255.255.255         On-link      192.168.56.1    266
        224.0.0.0        240.0.0.0         On-link      192.168.56.1    266
  255.255.255.255  255.255.255.255         On-link      192.168.56.1    266

VPN에 연결 한 후 :

     192.168.56.1  255.255.255.255         On-link      192.168.56.1    266
        224.0.0.0        240.0.0.0         On-link      192.168.56.1    266
  255.255.255.255  255.255.255.255         On-link      192.168.56.1    266

VPN 클라이언트는 다음 줄을 제거합니다.

     192.168.56.0    255.255.255.0         On-link      192.168.56.1    266
   192.168.56.255  255.255.255.255         On-link      192.168.56.1    266

마지막 두 항목이 없으면 호스트와 게스트가 통신 할 수 없으며 이는 VPN 구성에서 분할 터널링이 비활성화 된 경우의 의도 된 동작입니다.

일반적으로이 두 명령은 해당 경로를 복원합니다.

C:\>route ADD 192.168.56.0 MASK 255.255.255.0 192.168.56.1 METRIC 266
C:\>route ADD 192.168.56.255 MASK 255.255.255.255 192.168.56.1 METRIC 266

그러나 VPN 클라이언트는 경계를 유지합니다. 라우팅 테이블을 수정하려는 시도를 차단합니다. 내 고객은 두 번째 항목은 허용하지만 첫 번째 항목은 허용하지 않는 것 같습니다. (그리고 그것은 정기적으로 둘 다 포장 될 수 있습니다. 나는 그것을 테스트하지 않았습니다.)

경우 특정 VPN 및 부수적 인 구성이 활성화 될 스플릿 터널링을 허용, 그것은 일반적으로 전환-에이 같은 :

Cisco VPN Client : LAN 리소스에 대한 액세스 허용

VPN에서 연결을 끊으면 올바르게 작동하는 VPN 클라이언트는 연결하기 전에 있던 라우팅 테이블을 복원합니다. VPN 클라이언트가이 작업을 안정적으로 수행하는 것 같습니다. VPN에 연결하거나 연결을 끊을 때 게스트 VM을 다시 시작할 필요가 없기 때문에 유리합니다. 이러한 경우 VM의 보조 어댑터는 재설정되지만 IP 주소를 자동으로 투명하게 다시 가져와 호스트와 게스트 간의 통신을 거의 즉시 복원합니다. 더 좋은 것은 호스트와 게스트 사이의 NFS 마운트 (CIFS 마운트를 사용하고 있음)는 VPN 연결 / 연결 끊기 작업을 통해 연결된 상태를 유지하는 것입니다.

VPN이 분할 터널링을 허용하는 경우는 드물지만, VPN을 활성화하는 것이 간단 할 수 있습니다.이 경우 "모든 것이 제대로 작동하는지"에 대한 의견을 듣고 싶습니다.


5
이 답변의 모든 노력 (이미지 및 모든)에 대해 대단히 감사합니다. 그것은 당신의 설명을 많이 도와주었습니다!
Edenshaw

잘 했어, 벤! 이를 통해 VPN 관련 문제를 이해하고 IT 사건 보고서에서 사건을 명확하게 설명 할 수있었습니다.
Mark Maglana

1
참고로, AnyConnect에서 "로컬 (LAN) 액세스 허용"기능에 액세스 할 수 있으며이 확인란을 선택해도 경로가 삭제 되지 않는 것을 확인할 수 있습니다 .
Lqueryvg

-1

게스트 리눅스 민트 머신에서 Windows 호스트 VPN을 사용하는 방법

설정에서 고정 포트 번호를 사용하도록 VPN을 설정하십시오.

vm 네트워크를 NAT로 설정

ip 10.0.2.2 (기본 virtualbox NAT 게이트웨이) 및 수동으로 VPN에 입력 한 포트에서 Linux 프록시 설정

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.