Microsoft MVP성태의 닷넷 이야기
개발 환경 구성: 83. Hyper-V의 네트워크 유형 (1) [링크 복사], [링크+제목 복사],
조회: 37910
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 
(연관된 글이 1개 있습니다.)
(시리즈 글이 14개 있습니다.)
개발 환경 구성: 83. Hyper-V의 네트워크 유형 (1)
; https://www.sysnet.pe.kr/2/0/910

개발 환경 구성: 84. Hyper-V의 네트워크 유형 (2)
; https://www.sysnet.pe.kr/2/0/915

개발 환경 구성: 87. Hyper-V의 네트워크 유형 (3)
; https://www.sysnet.pe.kr/2/0/918

Windows: 59. Hyper-V Internal 네트워크 VM의 인터넷 접속
; https://www.sysnet.pe.kr/2/0/1335

개발 환경 구성: 330. Hyper-V VM의 Internal Network를 Private 유형으로 만드는 방법
; https://www.sysnet.pe.kr/2/0/11299

Windows: 174. WSL 2의 네트워크 통신 방법
; https://www.sysnet.pe.kr/2/0/12347

개발 환경 구성: 517. Hyper-V Internal 네트워크에 NAT을 이용한 인터넷 연결 제공
; https://www.sysnet.pe.kr/2/0/12352

개발 환경 구성: 522. WSL 2 인스턴스와 호스트 측의 Hyper-V에 운영 중인 VM과 네트워크 연결을 하는 방법
; https://www.sysnet.pe.kr/2/0/12494

개발 환경 구성: 656. Internal Network 유형의 스위치로 공유한 Hyper-V의 VM과 호스트가 통신이 안 되는 경우
; https://www.sysnet.pe.kr/2/0/13199

개발 환경 구성: 660. WSL 2 내부로부터 호스트 측의 네트워크로 UDP 데이터가 1개의 패킷으로만 제한되는 문제
; https://www.sysnet.pe.kr/2/0/13230

개발 환경 구성: 665. WSL 2의 네트워크 통신 방법 - 두 번째 이야기
; https://www.sysnet.pe.kr/2/0/13256

개발 환경 구성: 670. WSL 2에서 호스팅 중인 TCP 서버를 외부에서 접근하는 방법
; https://www.sysnet.pe.kr/2/0/13280

개발 환경 구성: 712. Windows - WSL 2의 네트워크 통신 방법 - 세 번째 이야기 (같은 IP를 공유하는 WSL 2 인스턴스)
; https://www.sysnet.pe.kr/2/0/13647

개발 환경 구성: 714. WSL 2 인스턴스와 호스트 측의 Hyper-V에 운영 중인 VM과 네트워크 연결을 하는 방법 - 두 번째 이야기
; https://www.sysnet.pe.kr/2/0/13658




Hyper-V의 네트워크 유형 (1)

지난 이야기까지 해서 "Windows Virtual PC"에서 설정할 수 있는 네트워크 유형을 살펴보았는데요.

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

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

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

이번에는 Hyper-V에서의 네트워크 유형을 살펴보겠습니다. 역시나 이번에도 이와 관련해서 웹 검색을 해보니 다음과 같은 좋은 자료가 있군요. ^^

Hyper-V: What are the uses for different types of virtual networks?
; https://learn.microsoft.com/en-us/archive/blogs/jhoward/hyper-v-what-are-the-uses-for-different-types-of-virtual-networks

개인적으로, 위의 글에서 그림이 가장 탐납니다. ^^ 그리고 아래의 그림이 가장 간단하게 3개의 유형을 나타내주고 있습니다.

[출처: https://www.starwindsoftware.com/blog/hyper-v-networking-101-nics-and-switches#fancy-image-2]
hyper_v_network_type_diff_1.png




1. External

External 로 구성된 예를 보면, 아래와 같은데요.

hyper-v_virtual_network_1.png

여기서의 "External"유형은 "Windows Virtual PC 의 네트워크 유형 (1)" 글에서 설명했던 "Virtual Network"와 유사합니다.
뭐... 더 이상 설명이 필요없겠지요. ^^

[정리: 통신 가능 유형]

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


2. Internal

(VMWare의 VMnet1 어댑터 유형과 비슷하고, VMnet8 어댑터의 경우 Default Switch(Default Network) 동작 방식과 유사)
(VMNet1 Host-only == Internal, VMnet8 NAT == Default Switch(Default Network), VMnet0 Bridged == External)

Hyper-V의 "Internal"의 경우, "Windows Virtual PC"의 "Internal Network"와는 차이가 있습니다. 오히려, 다음에 설명하는 "Private" 유형이 "Internal Network"와 대응될 수 있습니다.

간단히 생각해서, "Internal" 유형을 "라우터"와의 연결이 끊긴 "스위치 허브"에 VM과 호스트가 같이 연결된 구조라고 보시면 되는데, 이 유형의 네트워크를 생성해 두면 호스트 측에도 "Internal"에 대응되는 가상 어댑터가 제공된다는 특징이 있습니다.

따라서, 외부로의 인터넷 연결은 안되지만 "Hyper-V 를 호스팅하는 PC"와의 통신은 가능합니다.

아래는 "Internal"로 설정된 VM의 IP 설정예입니다.

=== A VM ===
IP Address: 169.254.222.37
Subnet Mask: 255.255.0.0
Default Gateway: [empty]

=== Internal로 인해 생성된 호스트 PC의 어댑터 ===
IP Address: 169.254.139.48
Subnet Mask: 255.255.0.0
Default Gateway:

보시는 것처럼 동일한 B 클래스의 "169.254.0.0" 네트워크로 묶이게 됩니다.

[정리: 통신 가능 유형]

VM <-> VM
VM <-> HOST


3. Private

위에서 언급한 것처럼, 이 네트워크 유형이 "Windows Virtual PC"의 "Internal Network" 유형과 동일하다고 보시면 됩니다. Hyper-V 관리자에서 "Private Network"을 생성해도 "Hyper-V를 호스팅하는 PC" 측에는 아무런 가상 어댑터가 생성되지 않는 차이를 제외하고는 "Internal"과 같습니다.

할당받은 네트워크 주소를 보면,

=== B VM ===
IP Address: 169.254.235.193
Subnet Mask: 255.255.0.0
Default Gateway: [empty]

"Internal" 유형으로 설정된 VM에서처럼 B 클래스의 "169.254.0.0" 네트워크 주소를 할당받지만 Private과 Internal 간의 통신은 가능하지 않습니다. 어찌 보면 당연하겠지만, "Private Network"를 2개 생성하는 경우에도 그들간의 통신은 허용되지 않고, 다중 "Internal" 역시 "169.254.0.0" 네트워크만 같을 뿐 개별적으로 동작하게 됩니다. (아마도, 내부적으로는 VLAN 인덱스가 다르게 할당되어 관리되는 것 아닐까요?)

[정리: 통신 가능 유형]

VM <-> VM


4. Dedicated

이 유형은, 사실 저도 "Dedicated"라고 불려진다는 것을 "Hyper-V: What are the uses for different types of virtual networks?" 글을 보고 알았습니다.

위에서 설명한 "External", "Internal", "Private" 유형과는 달리 명시적으로 Hyper-V의 네트워크 설정에는 없습니다. 단지 "External" 유형의 변종인데요. 다음과 같이 네트워크 설정에서 "Allow management operating system to share this network adapter" 옵션을 해제하면 됩니다.

hyper-v_virtual_network_2.png

이렇게 되면, "External" 네트워크와 매핑되는 LAN 어댑터(위의 그림에서는 "Realtek PCIe GBE Family Controller")를 "Hyper-V 를 호스팅하는 운영체제"에서는 사용할 수가 없습니다. 현실적으로 볼 때, "External" 유형의 네트워크 하나 당 LAN 어댑터 하나만 매핑된다는 것을 고려해 보면 호스트 운영체제의 네트워크를 불능 상태로 만들 수는 없기 때문에 네트워크 카드가 2장 이상인 경우 "Dedicated" 네트워크 유형을 구성할 수 있습니다. 이 때문에 내부 VM들이 인터넷 연결이 가능하냐에 대해서는 해당 LAN 어댑터가 연결된 네트워크 망에 좌우됩니다.

그럼, Dedicated 유형을 사용할 만한 적절한 사례가 있을까요? 제가 하나 꼽아본다면, 여러 대의 서버에서 Hyper-V를 각각 호스팅하는 경우 거기에서 호스팅되고 있는 VM들을 별도의 네트워크 망으로 서로 묶고 싶다면 적절한 활용예가 될 수 있을 것입니다. (물론, 외부로부터의 접근이 허용될 수 있다면 External 유형으로 편하게 설정하는 것이 더 좋습니다.)

[정리: 통신 가능 유형]

VM <-> VM
VM <-> "Dedicated"로 할당된 LAN 어댑터가 참여하고 있던 네트워크의 다른 PC
VM <-> "Dedicated"로 할당된 다른 머신에서 호스팅되고 있는 Hyper-V의 VM





"Windows Virtual PC"에서 제공되는 네트워크 유형과 비교하면, "Shared Networking (NAT)" 유형이 빠졌고 Dedicated 유형이 추가된 정도입니다.

사실, 어찌 보면 "인터넷"이 되어야 하는 보통의 상황과 비교하면 오히려 "Shared Networking (NAT)" 유형이 Hyper-V에는 없기 때문에 선택의 폭이 넓지 않습니다. 이 때문에 아마도 대부분의 경우 "External" 유형으로만 사용하고 계실 것입니다.

여기까지 Hyper-V에서 제공되는 기본적인 네트워크 유형만 살펴보았고, 앞으로의 글에서는 "Windows Virtual PC" 연재에서 했던 것처럼, 다양한 네트워크 조합들을 "Hyper-V"에서도 응용하는 방법을 살펴보겠습니다.



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

[연관 글]






[최초 등록일: ]
[최종 수정일: 6/14/2024]

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

비밀번호

댓글 작성자
 




... 46  47  [48]  49  50  51  52  53  54  55  56  57  58  59  60  ...
NoWriterDateCnt.TitleFile(s)
12737정성태7/28/202115011오류 유형: 744. Azure Active Directory - The resource principal named api://...[client_id]... was not found in the tenant
12736정성태7/28/202115272오류 유형: 743. Active Azure Directory에서 "API permissions"의 권한 설정이 "Not granted for ..."로 나오는 문제
12735정성태7/27/202115174.NET Framework: 1081. C# - Azure AD 인증을 지원하는 데스크톱 애플리케이션 예제(Windows Forms) [2]파일 다운로드1
12734정성태7/26/202131992스크립트: 20. 특정 단어로 시작하거나/끝나는 문자열을 포함/제외하는 정규 표현식 - Look-around
12733정성태7/23/202119870.NET Framework: 1081. Self-Contained/SingleFile 유형의 .NET Core/5+ 실행 파일을 임베딩한다면? [1]파일 다운로드2
12732정성태7/23/202113311오류 유형: 742. SharePoint - The super user account utilized by the cache is not configured.
12731정성태7/23/202115362개발 환경 구성: 584. Add Internal URLs 화면에서 "Save" 버튼이 비활성화 된 경우
12730정성태7/23/202116784개발 환경 구성: 583. Visual Studio Code - Go 코드에서 입력을 받는 경우
12729정성태7/22/202115266.NET Framework: 1080. xUnit 단위 테스트에 메서드/클래스 수준의 문맥 제공 - Fixture
12728정성태7/22/202115292.NET Framework: 1079. MSTestv2 단위 테스트에 메서드/클래스/어셈블리 수준의 문맥 제공
12727정성태7/21/202116471.NET Framework: 1078. C# 단위 테스트 - MSTestv2/NUnit의 Assert.Inconclusive 사용법(?) [1]
12726정성태7/21/202116247VS.NET IDE: 169. 비주얼 스튜디오 - 단위 테스트 선택 시 MSTestv2 외의 xUnit, NUnit 사용법 [1]
12725정성태7/21/202114715오류 유형: 741. Failed to find the "go" binary in either GOROOT() or PATH
12724정성태7/21/202117606개발 환경 구성: 582. 윈도우 환경에서 Visual Studio Code + Go (Zip) 개발 환경 [1]
12723정성태7/21/202114515오류 유형: 740. SharePoint - Alternate access mappings have not been configured 경고
12722정성태7/20/202114270오류 유형: 739. MSVCR110.dll이 없어 exe 실행이 안 되는 경우
12721정성태7/20/202115436오류 유형: 738. The trust relationship between this workstation and the primary domain failed. - 세 번째 이야기
12720정성태7/19/202114686Linux: 43. .NET Core/5+ 응용 프로그램의 Ubuntu (Debian) 패키지 준비
12719정성태7/19/202113904오류 유형: 737. SharePoint 설치 시 "0x800710D8 The object identifier does not represent a valid object." 오류 발생
12718정성태7/19/202113910개발 환경 구성: 581. Windows에서 WSL로 파일 복사 시 root 소유권으로 적용되는 문제파일 다운로드1
12717정성태7/18/202114106Windows: 195. robocopy에서 파일의 ADS(Alternate Data Stream) 정보 복사를 제외하는 방법
12716정성태7/17/202115237개발 환경 구성: 580. msbuild의 Exec Task에 robocopy를 사용하는 방법파일 다운로드1
12715정성태7/17/202122433오류 유형: 736. Windows - MySQL zip 파일 버전의 "mysqld --skip-grant-tables" 실행 시 비정상 종료 [1]
12714정성태7/16/202115797오류 유형: 735. VCRUNTIME140.dll, MSVCP140.dll, VCRUNTIME140.dll, VCRUNTIME140_1.dll이 없어 exe 실행이 안 되는 경우
12713정성태7/16/202117193.NET Framework: 1077. C# - 동기 방식이면서 비동기 규약을 따르게 만드는 Task.FromResult파일 다운로드1
12712정성태7/15/202116109개발 환경 구성: 579. Azure - 리눅스 호스팅의 Site Extension 제작 방법
... 46  47  [48]  49  50  51  52  53  54  55  56  57  58  59  60  ...