Microsoft MVP성태의 닷넷 이야기
개발 환경 구성: 82. Windows Virtual PC의 네트워크 유형 (3) [링크 복사], [링크+제목 복사],
조회: 24205
글쓴 사람
정성태 (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)
13843정성태12/13/20244391오류 유형: 938. Docker container 내에서 빌드 시 error MSB3021: Unable to copy file "..." to "...". Access to the path '...' is denied.
13842정성태12/12/20244534디버깅 기술: 205. Windbg - KPCR, KPRCB
13841정성태12/11/20244866오류 유형: 937. error MSB4044: The "ValidateValidArchitecture" task was not given a value for the required parameter "RemoteTarget"
13840정성태12/11/20244439오류 유형: 936. msbuild - Your project file doesn't list 'win' as a "RuntimeIdentifier"
13839정성태12/11/20244878오류 유형: 936. msbuild - error CS1617: Invalid option '12.0' for /langversion. Use '/langversion:?' to list supported values.
13838정성태12/4/20244606오류 유형: 935. Windbg - Breakpoint 0's offset expression evaluation failed.
13837정성태12/3/20245073디버깅 기술: 204. Windbg - 윈도우 핸들 테이블 (3) - Windows 10 이상인 경우
13836정성태12/3/20244628디버깅 기술: 203. Windbg - x64 가상 주소를 물리 주소로 변환 (페이지 크기가 2MB인 경우)
13835정성태12/2/20245071오류 유형: 934. Azure - rm: cannot remove '...': Directory not empty
13834정성태11/29/20245305Windows: 275. C# - CUI 애플리케이션과 Console 윈도우 (Windows 10 미만의 Classic Console 모드인 경우) [1]파일 다운로드1
13833정성태11/29/20244979개발 환경 구성: 737. Azure Web App에서 Scale-out으로 늘어난 리눅스 인스턴스에 SSH 접속하는 방법
13832정성태11/27/20244915Windows: 274. Windows 7부터 도입한 conhost.exe
13831정성태11/27/20244382Linux: 111. eBPF - BPF_MAP_TYPE_PERF_EVENT_ARRAY, BPF_MAP_TYPE_RINGBUF에 대한 다양한 용어들
13830정성태11/25/20245202개발 환경 구성: 736. 파이썬 웹 앱을 Azure App Service에 배포하기
13829정성태11/25/20245174스크립트: 67. 파이썬 - Windows 버전에서 함께 설치되는 py.exe
13828정성태11/25/20244450개발 환경 구성: 735. Azure - 압축 파일을 이용한 web app 배포 시 디렉터리 구분이 안 되는 문제파일 다운로드1
13827정성태11/25/20245105Windows: 273. Windows 환경의 파일 압축 방법 (tar, Compress-Archive)
13826정성태11/21/20245338닷넷: 2313. C# - (비밀번호 등의) Console로부터 입력받을 때 문자열 출력 숨기기(echo 끄기)파일 다운로드1
13825정성태11/21/20245672Linux: 110. eBPF / bpf2go - BPF_RINGBUF_OUTPUT / BPF_MAP_TYPE_RINGBUF 사용법
13824정성태11/20/20244751Linux: 109. eBPF / bpf2go - BPF_PERF_OUTPUT / BPF_MAP_TYPE_PERF_EVENT_ARRAY 사용법
13823정성태11/20/20245304개발 환경 구성: 734. Ubuntu에 docker, kubernetes (k3s) 설치
13822정성태11/20/20245172개발 환경 구성: 733. Windbg - VirtualBox VM의 커널 디버거 연결 시 COM 포트가 없는 경우
13821정성태11/18/20245096Linux: 108. Linux와 Windows의 프로세스/스레드 ID 관리 방식
13820정성태11/18/20245252VS.NET IDE: 195. Visual C++ - C# 프로젝트처럼 CopyToOutputDirectory 항목을 추가하는 방법
13819정성태11/15/20244490Linux: 107. eBPF - libbpf CO-RE의 CONFIG_DEBUG_INFO_BTF 빌드 여부에 대한 의존성
13818정성태11/15/20245302Windows: 272. Windows 11 24H2 - sudo 추가
1  2  3  [4]  5  6  7  8  9  10  11  12  13  14  15  ...