Microsoft MVP성태의 닷넷 이야기
Windows: 71. ad-hoc 보다 더 편리한 "가상 Wifi" 를 이용한 인터넷 공유 [링크 복사], [링크+제목 복사],
조회: 41855
글쓴 사람
정성태 (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
정성태

... 151  152  153  154  155  156  [157]  158  159  160  161  162  163  164  165  ...
NoWriterDateCnt.TitleFile(s)
1124정성태9/17/201126405.NET Framework: 240. System.Collections.ArrayList가 .NET 4.5에서 지원이 안된다??? [2]
1123정성태9/17/201165173Windows: 53. 2가지 모드의 Internet Explorer 10과 ActiveX [6]
1122정성태9/16/201132907Windows: 52. 새롭게 지원되는 WinRT 응용 프로그램 [7]
1121정성태9/12/201127639Java: 5. WTP 내에서 서블릿을 실행하는 환경
1120정성태9/11/201127563.NET Framework: 239. IHttpHandler.IsReusable 속성 이야기파일 다운로드1
1119정성태9/11/201126669Java: 4. 이클립스에 WTP SDK가 설치되지 않는다면? [2]
1118정성태9/11/201138316Java: 3. 이클립스에서 서블릿 디버깅하는 방법 [4]
1117정성태9/9/201125601제니퍼 .NET: 17. 제니퍼 닷넷 적용 사례 (2) - 웹 애플리케이션 hang의 원인을 알려주다.
1116정성태9/8/201156655Java: 2. 자바에서 "Microsoft SQL Server JDBC Driver" 사용하는 방법
1115정성태9/4/201130156Java: 1. 닷넷 개발자가 처음 실습해 본 서블릿
1114정성태9/4/201134682Math: 2. "Zhang Suen 알고리즘(세선화, Thinning/Skeletonization)"의 C# 버전 [4]파일 다운로드1
1113정성태9/2/201134249개발 환경 구성: 129. Hyper-V에 CentOS 설치하기
1112정성태9/2/201151000Linux: 1. 리눅스 <-> 윈도우 원격 접속 프로그램 사용 [3]
1111정성태8/29/201125421제니퍼 .NET: 16. 적용 사례 (1) - DB Connection Pooling을 사용하지 않았을 때의 성능 저하를 알려주다. [1]
1110정성태8/26/201126766오류 유형: 136. RDP 접속이 불연속적으로 끊기는 문제
1109정성태8/26/201129652오류 유형: 135. 어느 순간 Active Directory 접속이 안되는 문제
1108정성태8/22/201131173오류 유형: 134. OLE/COM Object Viewer - DllRegisterServer in IVIEWERS.DLL failed. [1]
1107정성태8/21/201128967디버깅 기술: 43. Windows Form의 Load 이벤트에서 발생하는 예외가 Visual Studio에서 잡히지 않는 문제
1106정성태8/20/201127269웹: 26. FailedRequestTracing 설정으로 인한 iisexpress.exe 비정상 종료 문제
1105정성태8/19/201127191.NET Framework: 238. Web Site Model 프로젝트에서 Trace.WriteLine 출력이 dbgview.exe에서 확인이 안 되는 문제파일 다운로드1
1104정성태8/19/201127374웹: 25. WebDev보다 IIS Express가 더 나은 점 - 다중 가상 디렉터리 매핑 [1]
1103정성태8/19/201133280오류 유형: 133. WCF 포트 바인딩 실패 오류 - TCP error(10013) [1]
1102정성태8/19/201131004Math: 1. 방탈출3 - Room 10의 '중복가능한 조합' 문제를 위한 C# 프로그래밍 [2]파일 다운로드1
1101정성태8/19/201129672.NET Framework: 237. WCF AJAX 서비스와 JavaScript 간의 DateTime 연동 [1]파일 다운로드1
1100정성태8/17/201128780.NET Framework: 236. SqlDbType - DateTime, DateTime2, DateTimeOffset의 차이점파일 다운로드1
1099정성태8/15/201128200오류 유형: 132. 어느 순간 갑자기 접속이 안 되는 TFS 서버
... 151  152  153  154  155  156  [157]  158  159  160  161  162  163  164  165  ...