Microsoft MVP성태의 닷넷 이야기
Windows: 71. ad-hoc 보다 더 편리한 "가상 Wifi" 를 이용한 인터넷 공유 [링크 복사], [링크+제목 복사],
조회: 41835
글쓴 사람
정성태 (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)
12739정성태7/28/202115002오류 유형: 746. Azure Active Directory - IDW10106: The 'ClientId' option must be provided.
12738정성태7/28/202115944오류 유형: 745. Azure Active Directory - Client credential flows must have a scope value with /.default suffixed to the resource identifier (application ID URI).
12737정성태7/28/202115038오류 유형: 744. Azure Active Directory - The resource principal named api://...[client_id]... was not found in the tenant
12736정성태7/28/202115308오류 유형: 743. Active Azure Directory에서 "API permissions"의 권한 설정이 "Not granted for ..."로 나오는 문제
12735정성태7/27/202115175.NET Framework: 1081. C# - Azure AD 인증을 지원하는 데스크톱 애플리케이션 예제(Windows Forms) [2]파일 다운로드1
12734정성태7/26/202132000스크립트: 20. 특정 단어로 시작하거나/끝나는 문자열을 포함/제외하는 정규 표현식 - Look-around
12733정성태7/23/202119907.NET Framework: 1081. Self-Contained/SingleFile 유형의 .NET Core/5+ 실행 파일을 임베딩한다면? [1]파일 다운로드2
12732정성태7/23/202113343오류 유형: 742. SharePoint - The super user account utilized by the cache is not configured.
12731정성태7/23/202115374개발 환경 구성: 584. Add Internal URLs 화면에서 "Save" 버튼이 비활성화 된 경우
12730정성태7/23/202116812개발 환경 구성: 583. Visual Studio Code - Go 코드에서 입력을 받는 경우
12729정성태7/22/202115286.NET Framework: 1080. xUnit 단위 테스트에 메서드/클래스 수준의 문맥 제공 - Fixture
12728정성태7/22/202115310.NET Framework: 1079. MSTestv2 단위 테스트에 메서드/클래스/어셈블리 수준의 문맥 제공
12727정성태7/21/202116495.NET Framework: 1078. C# 단위 테스트 - MSTestv2/NUnit의 Assert.Inconclusive 사용법(?) [1]
12726정성태7/21/202116270VS.NET IDE: 169. 비주얼 스튜디오 - 단위 테스트 선택 시 MSTestv2 외의 xUnit, NUnit 사용법 [1]
12725정성태7/21/202114736오류 유형: 741. Failed to find the "go" binary in either GOROOT() or PATH
12724정성태7/21/202117647개발 환경 구성: 582. 윈도우 환경에서 Visual Studio Code + Go (Zip) 개발 환경 [1]
12723정성태7/21/202114532오류 유형: 740. SharePoint - Alternate access mappings have not been configured 경고
12722정성태7/20/202114305오류 유형: 739. MSVCR110.dll이 없어 exe 실행이 안 되는 경우
12721정성태7/20/202115452오류 유형: 738. The trust relationship between this workstation and the primary domain failed. - 세 번째 이야기
12720정성태7/19/202114731Linux: 43. .NET Core/5+ 응용 프로그램의 Ubuntu (Debian) 패키지 준비
12719정성태7/19/202113916오류 유형: 737. SharePoint 설치 시 "0x800710D8 The object identifier does not represent a valid object." 오류 발생
12718정성태7/19/202113927개발 환경 구성: 581. Windows에서 WSL로 파일 복사 시 root 소유권으로 적용되는 문제파일 다운로드1
12717정성태7/18/202114114Windows: 195. robocopy에서 파일의 ADS(Alternate Data Stream) 정보 복사를 제외하는 방법
12716정성태7/17/202115248개발 환경 구성: 580. msbuild의 Exec Task에 robocopy를 사용하는 방법파일 다운로드1
12715정성태7/17/202122439오류 유형: 736. Windows - MySQL zip 파일 버전의 "mysqld --skip-grant-tables" 실행 시 비정상 종료 [1]
12714정성태7/16/202115798오류 유형: 735. VCRUNTIME140.dll, MSVCP140.dll, VCRUNTIME140.dll, VCRUNTIME140_1.dll이 없어 exe 실행이 안 되는 경우
... 46  47  [48]  49  50  51  52  53  54  55  56  57  58  59  60  ...