Microsoft MVP성태의 닷넷 이야기
Windows: 71. ad-hoc 보다 더 편리한 "가상 Wifi" 를 이용한 인터넷 공유 [링크 복사], [링크+제목 복사],
조회: 41847
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 

ad-hoc 보다 더 편리한 "가상 Wifi" 를 이용한 인터넷 공유

Windows 7부터 재미있는 기능이 소개되었는데요. ^^

Windows 7 adds native Virtual WiFi technology from Microsoft Research 
; http://www.istartedsomething.com/20090516/windows-7-native-virtual-wifi-technology-microsoft-research/

바로 "Virtual WiFi" 입니다.

이해를 돕기 위해 기존의 AD-HOC 과 비교해 볼까요? ad-hoc 네트워크를 구성해 인터넷 공유를 하려는 경우 반드시 2개의 네트워크 카드가 필요했습니다. 대개 노트북으로 인터넷 공유를 사용하곤 하는데요. 그럴 때는 인터넷 가능한 회선을 유선 네트워크 카드에 연결하고, 무선 네트워크 어댑터를 ad-hoc 네트워크로 사용했었습니다.

유선 NIC: 인터넷 연결 및 공유 설정
무선 NIC: AD-HOC 네트워크 구성

보시는 바와 같이 이런 ad-hoc 네트워크 구성으로 사용된 '무선 NIC'은 다른 목적으로 사용하는 것이 불가능합니다. 즉, 인터넷 가능한 유선이 없다거나, 아예 무선 NIC 하나만 장착된 컴퓨터에서는 인터넷 공유를 할 수 없습니다.

이런 단점이 "윈도우 7"부터 추가된 "가상 와이파이" 기능을 이용하면 자연스럽게 해결됩니다. "Windows 7 adds native Virtual WiFi technology from Microsoft Research" 문서에 보이는 것처럼 VWifi는 기존 무선 NIC을 가상화시켜 추가적인 무선 어댑터를 구성할 수 있도록 해줍니다.

따라서, 유선 NIC 카드 필요없이 노트북에 무선 NIC 하나만 장착되었다고 해도 (ad-hoc 이 아닌) "인터넷 공유가 되는 무선 네트워크"를 구성할 수 있습니다.

원래의 무선 NIC: 인터넷 연결 및 공유 설정
추가된 가상 무선 NIC: (AD-HOC 과 유사한) 무선 WIFI Access Point 로 동작

간단하게 정리하면, 윈도우 7에서 "가상 WiFi"를 설정한다는 것은 여러분들의 노트북에 "무선 액세스 포인트 기기"가 내장되는 것과 같다고 보시면 됩니다.

오~~~ 멋지지 않나요? ^^ (앞으로는 "ad-hoc 네트워크 설정하는 방법"을 검색하지 마시고 "가상 WiFi 설정하는 방법"을 검색하세요.)

이를 활용하면, 무선 랜카드 밖에 장착되지 않은 소형 태블릿을 - 예를 들어, 윈도우 8이 장착된 "서피스 프로(Surface Pro)" 같은 경우에도 Access Point 기기로써 동작시킬 수 있게 됩니다. (아쉽게도 서피스 프로에 들어간 무선 랜 카드가 "Hosted network supported" 기능이 있는지는 확인 못했습니다. ^^) 뭐랄까, 윈도우 7/8이 장착된 타블렛은 "좀 더 무거운 Olleh 에그"인 셈이군요.




그런데, 가상 WIFI가 구성되려면 3가지 조건이 맞아야 합니다.

  1. 윈도우 7 이상의 운영체제
  2. 가상 WIFI를 지원하는 무선 네트워크 카드
  3. 가상 WIFI를 지원하는 무선 네트워크 카드 디바이스 드라이버

현재 여러분들의 시스템에 가상 WIFI가 가능한지 테스트하는 가장 간단한 방법은 명령행에서 다음과 같이 입력해 보는 것입니다.

D:\Windows\system32>netsh wlan show drivers

Interface name: Wireless Network Connection

    Driver                    : Intel(R) WiFi Link 5300 AGN
    Vendor                    : Intel Corporation
    Provider                  : Microsoft
    Date                      : 2009-03-26
    Version                   : 12.4.1.4
    INF file                  : D:\Windows\INF\netw5v64.inf
    Files                     : 1 total
                                D:\Windows\system32\DRIVERS\netw5v64.sys
    Type                      : Native Wi-Fi Driver
    Radio types supported     : 802.11a 802.11b 802.11g
    FIPS 140-2 mode supported : Yes
    Hosted network supported  : No
    Authentication and cipher supported in infrastructure mode:
                                Open            None
                                ...[생략]...
                                Open            Vendor defined
    Authentication and cipher supported in ad-hoc mode:
                                Open            None
                                ...[생략]...
                                WPA2-Personal   CCMP

위에서 "Hosted network supported" 값이 "No" 면 지원하지 않는 것이고, "Yes"면 지원하는 것입니다. 현재 제가 사용하는 "삼성 센스 NT700Z5C-S88 크로노스" 노트북은 "Yes"로 나오고 예전에 사용한 "Dell Studio 1557" 은 "No"로 나옵니다.

그런데, "No"로 나왔다고 해서 아쉬워하지 않아도 됩니다. ^^ 간혹 디바이스 드라이버가 구형이라서 그런 걸 수도 있는데요. 실제로 "Dell Studio 1557" 노트북에 장착된 "Intel(R) WiFi Link 5300 AGN" 무선 랜 카드는 "Virtual WiFi"를 지원하는 모델입니다. 따라서 인텔 사이트에 방문해서 최신 버전으로 드라이버를 업그레이드 하면,

Intel® PROSet/Wireless Software and Drivers for Windows 7*
; https://downloadcenter.intel.com/SearchResult.aspx?lang=eng&ProductFamily=Wireless+Networking&ProductLine=Intel%c2%ae+Centrino%c2%ae+Wi-Fi+Products&ProductProduct=Intel%c2%ae+WiFi+Link+5300+and+Intel%c2%ae+WiFi+Link+5100+products

다음과 같이 다시 "Hosted network supported" 값이 "Yes"로 바뀝니다.

D:\Windows\system32>netsh wlan show drivers

Interface name: Wireless Network Connection

    Driver                    : Intel(R) WiFi Link 5300 AGN
    Vendor                    : Intel Corporation
    Provider                  : Intel
    Date                      : 2012-01-22
    Version                   : 14.3.2.1
    INF file                  : D:\Windows\INF\oem4.inf
    Files                     : 4 total
                                D:\Windows\system32\DRIVERS\NETwNs64.sys
                                ...[생략]...
    Type                      : Native Wi-Fi Driver
    Radio types supported     : 802.11a 802.11b 802.11g
    FIPS 140-2 mode supported : Yes
    Hosted network supported  : Yes
    Authentication and cipher supported in infrastructure mode:
                                Open            None
                                ...[생략]...
                                Open            Vendor defined
    Authentication and cipher supported in ad-hoc mode:
                                ...[생략]...
                                WPA2-Personal   CCMP
    ...[생략]...

자, 이제 준비가 다 되었으니 그럼 "가상 WiFi"를 이용해 실제로 인터넷 공유를 해볼까요? ^^

우선, 명령행으로 다음과 같이 가상 어댑터를 생성하고, ad-hoc에서 했던 것처럼 "인터넷 공유" 기능을 켜는 방법이 있습니다.

netsh wlan set hostednetwork mode=allow ssid=myaccess key=12345678
netsh wlan start hostednetwork

물론, 이런 복잡함 없이 간단하게 프로그램을 이용하는 방법이 더 선호되긴 합니다. ^^ 그래서, 다음의 "Virtual Router" 프로그램을 다운로드 받고,

Virtual Router - Wifi Hot Spot for Windows 8, Windows 7 and 2008 R2
; http://virtualrouter.codeplex.com/

실행해서 '무선 와이파이'기기로써 동작할 수 있도록 "SSID", 암호와 함께 "인터넷 공유(ICS: Internet Connection Sharing)"를 해줄 어댑터를 지정해 준 후 "Start Virtual Router" 버튼을 누르면 다음과 같이 동작하게 됩니다.

win7_virtual-wifi_1.png

그림에서 보면, "Interl(R) WiFi Link 5300 AGN" 어댑터에 연결된 "Wireless Network Connection"이 그대로 보존되면서 인터넷 공유 기능이 켜져 있습니다. 그리고, 새롭게 "Microsoft Virtual WiFi Mniport Adapter" 라는 가상 장치가 생성되고 그것을 통해 가상 WiFi 기능이 제공되는데 이런 일련의 설정들이 "Virtual Router" 프로그램을 이용해 한번에 끝납니다.

이후, 아이패드를 비롯해 다른 무선 모바일 기기에서 "ap8" 이름을 가진 SSID를 연결하면 인터넷을 사용할 수 있습니다. ^^




이제 약간의 문제를 살펴볼까요? ^^ "Virtual Router"를 설정한 후 재부팅했을 때 "The hosted network couldn't be started. The group or resource is not in the correct state to perform the requested operation" 와 같은 메시지를 받으면서 서비스가 안된다면 다음의 Hotfix를 다운로드해서 설치하면 됩니다.

Applications that use Virtual WiFi technology do not work after you restart a computer that is running Windows 7 or Windows Server 2008 R2
; http://support.microsoft.com/kb/2496820

마지막으로, 사소한 문제인데 "Intel® PROSet/Wireless Software and Drivers for Windows 7*" 프로그램을 설치하다가 다음과 같은 오류 메시지가 나오는 경우가 있습니다.

bsutilcs has stopped working

Problem signature:
  Problem Event Name:   CLR20r3
  Problem Signature 01: bsutil.exe
  Problem Signature 02: 1.0.0.0
  Problem Signature 03: 50fda370
  Problem Signature 04: mscorlib
  Problem Signature 05: 4.0.0.0
  Problem Signature 06: 4ba22001
  Problem Signature 07: 3dac
  Problem Signature 08: 106
  Problem Signature 09: System.IO.FileNotFoundException
  OS Version:   6.1.7601.2.1.0.274.10
  Locale ID:    1042
  Additional Information 1: b3d9
  Additional Information 2: b3d947ccf0c0d4073730b38907c17cb6
  Additional Information 3: 022b
  Additional Information 4: 022b764586d5f6cdc6e99a0fdefa3f08

Read our privacy statement online:
  http://go.microsoft.com/fwlink/?linkid=104288&clcid=0x0409

If the online privacy statement is not available, please read our privacy statement offline:
  D:\Windows\system32\en-US\erofflps.txt

저도 이유는 알 수 없지만... ^^ 걱정하지 마시고 그냥 진행하셔도 정상적으로 최신 NIC 드라이버가 설치됩니다. (엄밀히, 이유를 알 수 없다기 보다는 굳이 알아낼 필요가 없으므로 넘어간 것입니다. ^^)




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







[최초 등록일: ]
[최종 수정일: 4/15/2013]

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

비밀번호

댓글 작성자
 



2013-05-03 02시01분
[박일용] 좋은 정보 고맙습니다.
[guest]
2015-01-06 01시07분
Managed Wifi API
; http://managedwifi.codeplex.com/SourceControl/changeset/view/41381

How can I make WiFi passwords per-user rather than per-system?
; https://devblogs.microsoft.com/oldnewthing/20230606-00/?p=108298

Over The Air: Exploiting Broadcom’s Wi-Fi Stack (Part 1)
; https://googleprojectzero.blogspot.com/2017/04/over-air-exploiting-broadcoms-wi-fi_4.html?m=1

Over The Air: Exploiting Broadcom’s Wi-Fi Stack (Part 2)
; https://googleprojectzero.blogspot.com/2017/04/over-air-exploiting-broadcoms-wi-fi_11.html

Over The Air - Vol. 2, Pt. 1: Exploiting The Wi-Fi Stack on Apple Devices
; https://googleprojectzero.blogspot.com/2017/09/over-air-vol-2-pt-1-exploiting-wi-fi.html

Over The Air - Vol. 2, Pt. 2: Exploiting The Wi-Fi Stack on Apple Devices
; https://googleprojectzero.blogspot.com/2017/10/over-air-vol-2-pt-2-exploiting-wi-fi.html

Over The Air - Vol. 2, Pt. 3: Exploiting The Wi-Fi Stack on Apple Devices
; https://googleprojectzero.blogspot.com/2017/10/over-air-vol-2-pt-3-exploiting-wi-fi.html
정성태

... 46  47  48  49  [50]  51  52  53  54  55  56  57  58  59  60  ...
NoWriterDateCnt.TitleFile(s)
12690정성태6/28/202116664Java: 23. Azure - 자바(Java)로 만드는 Web App Service - Tomcat 호스팅
12689정성태6/25/202118357오류 유형: 730. Windows Forms 디자이너 - The class Form1 can be designed, but is not the first class in the file. [1]
12688정성태6/24/202117678.NET Framework: 1073. C# - JSON 역/직렬화 시 리플렉션 손실을 없애는 JsonSrcGen [2]파일 다운로드1
12687정성태6/22/202115010오류 유형: 729. Invalid data: Invalid artifact, java se app service only supports .jar artifact
12686정성태6/21/202116969Java: 22. Azure - 자바(Java)로 만드는 Web App Service - Java SE (Embedded Web Server) 호스팅
12685정성태6/21/202118185Java: 21. Azure Web App Service에 배포된 Java 프로세스의 메모리 및 힙(Heap) 덤프 뜨는 방법
12684정성태6/19/202116537오류 유형: 728. Visual Studio 2022부터 DTE.get_Properties 속성 접근 시 System.MissingMethodException 예외 발생
12683정성태6/18/202117857VS.NET IDE: 166. Visual Studio 2022 - Windows Forms 프로젝트의 x86 DLL 컨트롤이 Designer에서 오류가 발생하는 문제 [1]파일 다운로드1
12682정성태6/18/202114390VS.NET IDE: 165. Visual Studio 2022를 위한 Extension 마이그레이션
12681정성태6/18/202114682오류 유형: 727. .NET 2.0 ~ 3.5 + x64 환경에서 System.EnterpriseServices 참조 시 CS8012 경고
12680정성태6/18/202116743오류 유형: 726. python2.7.exe 실행 시 0xc000007b 오류
12679정성태6/18/202116867COM 개체 관련: 23. CoInitializeSecurity의 전역 설정을 재정의하는 CoSetProxyBlanket 함수 사용법파일 다운로드1
12678정성태6/17/202115375.NET Framework: 1072. C# - CoCreateInstance 관련 Inteop 오류 정리파일 다운로드1
12677정성태6/17/202118158VC++: 144. 역공학을 통한 lxssmanager.dll의 ILxssSession 사용법 분석파일 다운로드1
12676정성태6/16/202117321VC++: 143. ionescu007/lxss github repo에 공개된 lxssmanager.dll의 CLSID_LxssUserSession/IID_ILxssSession 사용법파일 다운로드1
12675정성태6/16/202115219Java: 20. maven package 명령어 결과물로 (war가 아닌) jar 생성 방법
12674정성태6/15/202116452VC++: 142. DEFINE_GUID 사용법
12673정성태6/15/202117082Java: 19. IntelliJ - 자바(Java)로 만드는 Web App을 Tomcat에서 실행하는 방법
12672정성태6/15/202118684오류 유형: 725. IntelliJ에서 Java webapp 실행 시 "Address localhost:1099 is already in use" 오류
12671정성태6/15/202127380오류 유형: 724. Tomcat 실행 시 Failed to initialize connector [Connector[HTTP/1.1-8080]] 오류
12670정성태6/13/202117358.NET Framework: 1071. DLL Surrogate를 이용한 Out-of-process COM 개체에서의 CoInitializeSecurity 문제파일 다운로드1
12669정성태6/11/202117534.NET Framework: 1070. 사용자 정의 GetHashCode 메서드 구현은 C# 9.0의 record 또는 리팩터링에 맡기세요.
12668정성태6/11/202120041.NET Framework: 1069. C# - DLL Surrogate를 이용한 Out-of-process COM 개체 제작파일 다운로드2
12667정성태6/10/202117845.NET Framework: 1068. COM+ 서버 응용 프로그램을 이용해 CoInitializeSecurity 제약 해결파일 다운로드1
12666정성태6/10/202115477.NET Framework: 1067. 별도 DLL에 포함된 타입을 STAThread Main 메서드에서 사용하는 경우 CoInitializeSecurity 자동 호출파일 다운로드1
12665정성태6/9/202117542.NET Framework: 1066. Wslhub.Sdk 사용으로 알아보는 CoInitializeSecurity 사용 제약파일 다운로드1
... 46  47  48  49  [50]  51  52  53  54  55  56  57  58  59  60  ...