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

비밀번호

댓글 작성자
 




... 76  77  78  79  80  81  82  83  84  85  86  87  [88]  89  90  ...
NoWriterDateCnt.TitleFile(s)
11736정성태10/12/201818519오류 유형: 492. Visual Studio 로딩 시 오류 - The 'Scc Display Information' package did not load correctly.
11735정성태10/12/201824282VS.NET IDE: 129. Visual Studio - 특정 문자(열)를 개행 문자로 바꾸는 방법
11734정성태10/10/201818619Linux: 4. Synology NAS(DS216+II)에 FTDI 장치 연결 후 C#(.NET Core)으로 DTR 제어파일 다운로드1
11733정성태10/10/201821377Linux: 3. Synology NAS(DS216+II)에서 FTDI 장치를 C/C++로 제어
11732정성태10/10/201821152디버깅 기술: 119. windbg 분석 사례 - 종료자(Finalizer)에서 예외가 발생한 경우 비정상 종료(Crash) 발생파일 다운로드1
11731정성태10/9/201820598개발 환경 구성: 409. C# - REST API를 이용해 Azure Kudu 서비스 이용 - 웹 앱 확장 처리파일 다운로드1
11730정성태10/9/201819870개발 환경 구성: 408. C# - REST API를 이용해 Azure Kudu 서비스 이용 - 파일 처리파일 다운로드1
11729정성태10/9/201822367Windows: 150. 윈도우에서 ARP Cache 목록 확인 및 삭제하는 방법
11728정성태10/9/201820183사물인터넷: 50. Audio Jack 커넥터의 IR 적외선 송신기 [1]
11727정성태10/8/201821414오류 유형: 491. Visual Studio의 리눅스 SSH 원격 연결 - "Connectivity Failure. Please make sure host name and port number are correct."
11726정성태10/7/201824082사물인터넷: 49. 라즈베리 파이를 이용해 원격 컴퓨터의 전원 스위치 제어파일 다운로드1
11724정성태10/5/201823832개발 환경 구성: 407. 유니코드와 한글 - "Hangul Compatibility Jamo"파일 다운로드1
11723정성태10/4/201817559개발 환경 구성: 406. "Docker for Windows" 컨테이너 내의 .NET Core 응용 프로그램에서 직렬 포트(Serial Port, COM Port) 사용 방법
11722정성태10/4/201821274.NET Framework: 798. C# - Hyper-V 가상 머신의 직렬 포트와 연결된 Named Pipe 간의 통신파일 다운로드1
11721정성태10/4/201821595.NET Framework: 797. Linux 환경의 .NET Core 응용 프로그램에서 직렬 포트(Serial Port, COM Port) 사용 방법파일 다운로드1
11720정성태10/4/201823181개발 환경 구성: 405. Hyper-V 가상 머신에서 직렬 포트(Serial Port, COM Port) 사용
11719정성태10/4/201823744.NET Framework: 796. C# - 인증서를 윈도우에 설치하는 방법
11718정성태10/4/201818913개발 환경 구성: 404. (opkg가 설치된) Synology NAS(DS216+II)에 cmake 설치
11717정성태10/3/201821522사물인터넷: 48. 넷두이노의 C# 네트워크 프로그램 [1]
11716정성태10/3/201822112사물인터넷: 47. Raspberry PI Zero (W)에 FTDI 장치 연결 후 C/C++로 DTR 제어파일 다운로드1
11715정성태10/3/201820855사물인터넷: 46. Raspberry PI Zero (W)에 docker 설치
11714정성태10/2/201820121사물인터넷: 45. Raspberry PI에 ping을 hostname으로 하는 방법
11713정성태10/2/201822515개발 환경 구성: 403. Synology NAS(DS216+II)에 docker 설치 후 .NET Core 2.1 응용 프로그램 실행하는 방법
11712정성태10/2/201827719.NET Framework: 795. C# - 폰트 목록을 한글이 아닌 영문으로 구하는 방법 [3]
11711정성태10/2/201823127오류 유형: 490. 윈도우 라이선스 키 입력 오류 0xc004f050, 0xc004e028
11710정성태10/2/201822052.NET Framework: 794. C# - 같은 모양, 다른 값의 한글 자음을 비교하는 호환 분해 [5]
... 76  77  78  79  80  81  82  83  84  85  86  87  [88]  89  90  ...