Microsoft MVP성태의 닷넷 이야기
개발 환경 구성: 82. Windows Virtual PC의 네트워크 유형 (3) [링크 복사], [링크+제목 복사],
조회: 18967
글쓴 사람
정성태 (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

비밀번호

댓글 작성자
 




1  2  3  4  5  6  [7]  8  9  10  11  12  13  14  15  ...
NoWriterDateCnt.TitleFile(s)
13459정성태11/26/20232365닷넷: 2171. .NET Core 3/5+ 기반의 COM Server를 기존의 regasm처럼 등록하는 방법파일 다운로드1
13458정성태11/26/20232372닷넷: 2170. .NET Core/5+ 기반의 COM Server를 tlb 파일을 생성하는 방법(tlbexp)
13457정성태11/25/20232300VS.NET IDE: 187. Visual Studio - 16.9 버전부터 추가된 "Display inline type hints" 옵션
13456정성태11/25/20232624닷넷: 2169. C# - OpenAI를 사용해 PDF 데이터를 대상으로 OpenAI 챗봇 작성 [1]파일 다운로드1
13455정성태11/25/20232508닷넷: 2168. C# - Azure.AI.OpenAI 패키지로 OpenAI 사용파일 다운로드1
13454정성태11/23/20232858닷넷: 2167. C# - Qdrant Vector DB를 이용한 Embedding 벡터 값 보관/조회 (Azure OpenAI) [1]파일 다운로드1
13453정성태11/23/20232342오류 유형: 879. docker desktop 설치 시 "Invalid JSON string. (Exception from HRESULT: 0x83750007)"
13452정성태11/22/20232447닷넷: 2166. C# - Azure OpenAI API를 이용해 사용자가 제공하는 정보를 대상으로 검색하는 방법파일 다운로드1
13451정성태11/21/20232578닷넷: 2165. C# - Azure OpenAI API를 이용해 ChatGPT처럼 동작하는 콘솔 응용 프로그램 제작파일 다운로드1
13450정성태11/21/20232384닷넷: 2164. C# - Octokit을 이용한 GitHub Issue 검색파일 다운로드1
13449정성태11/21/20232491개발 환경 구성: 688. Azure OpenAI 서비스 신청 방법
13448정성태11/20/20232785닷넷: 2163. .NET 8 - Dynamic PGO를 결합한 성능 향상파일 다운로드1
13447정성태11/16/20232657닷넷: 2162. ASP.NET Core 웹 사이트의 SSL 설정을 코드로 하는 방법
13446정성태11/16/20232608닷넷: 2161. .NET Conf 2023 - Day 1 Blazor 개요 정리
13445정성태11/15/20232925Linux: 62. 리눅스/WSL에서 CA 인증서를 저장하는 방법
13444정성태11/15/20232668닷넷: 2160. C# 12 - Experimental 특성 지원
13443정성태11/14/20232722개발 환경 구성: 687. OpenSSL로 생성한 사용자 인증서를 ASP.NET Core 웹 사이트에 적용하는 방법
13442정성태11/13/20232508개발 환경 구성: 686. 비주얼 스튜디오로 실행한 ASP.NET Core 사이트를 WSL 2 인스턴스에서 https로 접속하는 방법
13441정성태11/12/20232827닷넷: 2159. C# - ASP.NET Core 프로젝트에서 서버 Socket을 직접 생성하는 방법파일 다운로드1
13440정성태11/11/20232456Windows: 253. 소켓 Listen 시 방화벽의 Public/Private 제어 기능이 비활성화된 경우
13439정성태11/10/20233044닷넷: 2158. C# - 소켓 포트를 미리 시스템에 등록/예약해 사용하는 방법(Port Exclusion Ranges)파일 다운로드1
13438정성태11/9/20232614닷넷: 2157. C# - WinRT 기능을 이용해 윈도우에서 실행 중인 Media App 제어
13437정성태11/8/20232789닷넷: 2156. .NET 7 이상의 콘솔 프로그램을 (dockerfile 없이) 로컬 docker에 배포하는 방법
13436정성태11/7/20233005닷넷: 2155. C# - .NET 8 런타임부터 (Reflection 없이) 특성을 이용해 public이 아닌 멤버 호출 가능
13435정성태11/6/20232936닷넷: 2154. C# - 네이티브 자원을 포함한 관리 개체(예: 스레드)의 GC 정리
13434정성태11/1/20232722스크립트: 62. 파이썬 - class의 정적 함수를 동적으로 교체
1  2  3  4  5  6  [7]  8  9  10  11  12  13  14  15  ...