Microsoft MVP성태의 닷넷 이야기
개발 환경 구성: 82. Windows Virtual PC의 네트워크 유형 (3) [링크 복사], [링크+제목 복사],
조회: 25653
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 
(연관된 글이 2개 있습니다.)
Windows Virtual PC의 네트워크 유형 (3)

아래의 내용에 이어서.

Windows Virtual PC의 네트워크 유형 (1)
; https://www.sysnet.pe.kr/2/0/906

Windows Virtual PC의 네트워크 유형 (2)
; https://www.sysnet.pe.kr/2/0/907

두 번째 글에서 언급했던, 호스트로부터의 통신이 불가능하다는 단점을 보완해보겠습니다. 사실, VPC를 사용할 때 호스트로부터 VPC에 접근할 일은 꽤 빈번하게 있습니다. 물론, "Shared Networking" 유형에서 "VPC -> 호스트"로의 접근이 가능했지만 직접 호스트에서 VPC로 접근하지 못하는 것은 때때로 일을 번거롭게 만드는 것만은 사실입니다.

호스트 네트워크를 어지럽히는(?) "Virtual Network" 옵션을 피하고 내부 VPC 간의 통신 및 호스트와의 통신을 지원하는 방법은 정말 없는 걸까요?

허긴 ^^ 진짜 없었다면, 이 글은 쓰지도 않았겠지요.




이 문제를 해결하기 위해서,
지난번과는 달리 "Internal Network + Shared Network"는 사용하지 않습니다. 오호... 그렇다면 어떻게? 해답은 의외로 간단합니다. ^^ 바로 루프백 어댑터와 인터넷 공유 기능을 함께 이용하는 것입니다.

일단 루프백 어댑터를 생성해야 하는데, 다음의 글을 참고해서 하나 만듭니다.

Windows 7에서 Loopback network adapter 설치하기
; https://www.sysnet.pe.kr/2/0/672

그런 다음, LAN 어댑터에 대해 "인터넷 공유 기능"을 다음과 같이 새로 생성된 루프백 어댑터에 대해서 지정해 줍니다.

how_to_use_loopback_adapter_for_vpc_1.png

이렇게 하면, 당연히 Loopback 어댑터에 걸린 네트워크는 외부망과 통신이 가능해지고,

다음으로, Loopback 어댑터의 인터넷 공유로 생성된 내부 네트워크를 사용할 VPC에 대해 VMCX 설정에서 다음과 같이 "Microsoft Loopback Adapter"를 지정해 줍니다.

how_to_use_loopback_adapter_for_vpc_2.png

이런 식으로 2대의 VPC에 설정해 주면 각각 다음과 같은 네트워크 구성을 확인할 수 있습니다. (물론, DHCP 기능이 활성화되어 자동으로 IP 할당이 가능합니다.)

=== A VPC ===
IP Address: 192.168.137.203
Subnet Mask : 255.255.255.0
Default Gateway: 192.168.137.1

=== B VPC ===
IP Address: 192.168.137.154
Subnet Mask : 255.255.255.0
Default Gateway: 192.168.137.1

원하는 데로, 이전의 "Internal Network + Shared Network" 조합과 비교해서 "VPC <-> 호스트" 통신이 가능해진다는 장점이 있습니다.

반면 한 가지 단점이 있는데, "유선" / "무선" NIC이 설치된 상황에서 "인터넷 공유 기능"이 하나의 어댑터에 대해서만 활성화되기 때문에 지난번에 예를 든 것처럼, 회사에서는 무선, 집에서는 유선을 쓰는 환경에서는 인터넷 공유 기능을 그 때마다 바꿔서 지정해 줘야 합니다. 하지만 "Virtual Network"와 비교해서 다른 점이 있다면, "Virtual Network" 설정은 유/무선 어댑터가 참여하는 네트워크가 달라지면 VPC들의 네트워크도 통째로 달라지는 반면, 이렇게 루프백 어댑터를 이용하게 되면 유/무선 어댑터가 어떤 것을 쓰느냐에 상관없이 동일하게 "192.168.137.0" 네트워크를 유지할 수 있습니다.

[정리: 가능한 접근 방식]
  • VPC <-> VPC
  • VPC <-> HOST
  • VPC -> HOST가 참여하고 있는 네트워크의 다른 PC
  • VPC -> 외부망 (예: 인터넷)


위의 조합으로도 "Virtual Network"와 비교해서 한 가지 아쉬운 점이 남는데요. 바로 다음의 통신이 불가능하다는 점입니다. (물론, "보안"이라는 측면에서 보면 장점일 수도 있습니다.)

  • VPC <- "HOST가 참여하고 있는 네트워크의 다른 PC"
  • VPC <- 외부망

사실, 위의 2가지는 결국 "외부망"에서 해당 VPC로 접근할 수 없다는 것으로 요약되는데요. 아쉽게도 클라이언트 운영체제 군(XP/Vista/7)에서는 "Routing and Remote Access" 서비스 중에서 "라우팅" 기능이 활성화되지 않는다는 제약 때문에 해결할 수가 없습니다. (아마도 라우팅 기능을 제공하는 3rd-party 제품을 사용한다면 해결이 되겠지만. 혹시나, 그 외의 자연스러운 방법을 알고 계신 분이 있다면 ^^ 공유 부탁드립니다.) 따라서, 위의 접근이 꼭 필요한 경우라면 어쩔 수 없이 "Virtual Network"를 선택해서 사용해야 합니다.

어쨌든, 이 정도면 선택 기준이 확실해졌지요!

외부망에서 VPC를 접근해야 할 필요가 있다면, "Virtual Network"를 선택하고,
그럴 필요가 없다면, "Loopback Network + Internet Connection Sharing"을 선택!



여기까지 해서, 제가 아는 수준에서의 "Windows Virtual PC"에서 구성해 볼 수 있는 일반적인 네트워크 유형은 모두 살펴본 것 같습니다. ^^



[이 토픽에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]

[연관 글]






[최초 등록일: ]
[최종 수정일: 6/27/2021]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 




... 91  92  93  94  95  96  97  98  [99]  100  101  102  103  104  105  ...
NoWriterDateCnt.TitleFile(s)
11492정성태4/13/201816021개발 환경 구성: 360. Azure Active Directory의 사용자 도메인 지정 방법
11491정성태4/13/201819189개발 환경 구성: 359. Azure 가상 머신에 Web Application을 배포하는 방법
11490정성태4/12/201818146.NET Framework: 739. .NET Framework 4.7.1의 새 기능 - Configuration builders [1]파일 다운로드1
11489정성태4/12/201815917오류 유형: 463. 윈도우 백업 오류 - a Volume Shadow Copy Service operation failed.
11488정성태4/12/201819636오류 유형: 462. Unhandled Exception in Managed Code Snap-in - FX:{811FD892-5EB4-4E73-A147-F1E079E36C4E}
11487정성태4/12/201817882디버깅 기술: 115. windbg - 닷넷 메모리 덤프에서 정적(static) 필드 값을 조사하는 방법
11486정성태4/11/201816980오류 유형: 461. Error MSB4064 The "ComputeOutputOnly" parameter is not supported by the "VsTsc" task
11485정성태4/11/201824935.NET Framework: 738. C# - Console 프로그램이 Ctrl+C 종료 시점을 감지하는 방법파일 다운로드1
11484정성태4/11/201826230.NET Framework: 737. C# - async를 Task 타입이 아닌 사용자 정의 타입에 적용하는 방법파일 다운로드1
11483정성태4/10/201829511개발 환경 구성: 358. "Let's Encrypt"에서 제공하는 무료 SSL 인증서를 IIS에 적용하는 방법 (2) [1]
11482정성태4/10/201821451VC++: 126. CUDA Core 수를 알아내는 방법
11481정성태4/10/201833709개발 환경 구성: 357. CUDA의 인덱싱 관련 용어 - blockIdx, threadIdx, blockDim, gridDim
11480정성태4/9/201823642.NET Framework: 736. C# - API를 사용해 Azure에 접근하는 방법 [2]파일 다운로드1
11479정성태4/9/201818497.NET Framework: 735. Azure - PowerShell로 Access control(IAM)에 새로운 계정 만드는 방법
11478정성태11/8/201921532디버깅 기술: 115. windbg - 덤프 파일로부터 PID와 환경변수 등의 정보를 구하는 방법 [1]
11477정성태4/8/201818637오류 유형: 460. windbg - sos 명령어 수행 시 c0000006 오류 발생
11476정성태4/8/201820078디버깅 기술: 114. windbg - !threads 출력 결과로부터 닷넷 관리 스레드(System.Threading.Thread) 객체를 구하는 방법
11475정성태3/28/201822702디버깅 기술: 113. windbg - Thread.Suspend 호출 시 응용 프로그램 hang 현상에 대한 덤프 분석
11474정성태3/27/201820951오류 유형: 459. xperf: error: TEST.Event: Invalid flags. (0x3ec).
11473정성태3/22/201825874.NET Framework: 734. C# - Thread.Suspend 호출 시 응용 프로그램 hang 현상파일 다운로드2
11472정성태3/22/201819506개발 환경 구성: 356. GTX 1070, GTX 960, GT 640M의 cudaGetDeviceProperties 출력 결과
11471정성태3/20/201822705VC++: 125. CUDA로 작성한 RGB2RGBA 성능 [1]파일 다운로드1
11470정성태3/20/201825481오류 유형: 458. Visual Studio - CUDA 프로젝트 빌드 시 오류 C1189, expression must have a constant value
11469정성태3/19/201818411오류 유형: 457. error MSB3103: Invalid Resx file. Could not load file or assembly 'System.Windows.Forms, ...' or one of its dependencies.
11468정성태3/19/201817693오류 유형: 456. 닷넷 응용 프로그램 실행 시 0x80131401 예외 발생
11467정성태3/19/201817453오류 유형: 455. Visual Studio Installer - 업데이트 실패
... 91  92  93  94  95  96  97  98  [99]  100  101  102  103  104  105  ...