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

... 16  17  18  19  20  21  22  23  24  25  26  27  28  29  [30]  ...
NoWriterDateCnt.TitleFile(s)
12895정성태12/31/20219558.NET Framework: 1126. C# - snagit처럼 화면 캡처를 연속으로 수행해 동영상 제작 [1]파일 다운로드1
12894정성태12/30/20217524.NET Framework: 1125. C# - DefaultObjectPool<T>의 IDisposable 개체에 대한 풀링 문제 [3]파일 다운로드1
12893정성태12/27/20219139.NET Framework: 1124. C# - .NET Platform Extension의 ObjectPool<T> 사용법 소개파일 다운로드1
12892정성태12/26/20217103기타: 83. unsigned 형의 이전 값이 최댓값을 넘어 0을 지난 경우, 값의 차이를 계산하는 방법
12891정성태12/23/20217029스크립트: 38. 파이썬 - uwsgi의 --master 옵션
12890정성태12/23/20217166VC++: 152. Golang - (문자가 아닌) 바이트 위치를 반환하는 strings.IndexRune 함수
12889정성태12/22/20219618.NET Framework: 1123. C# - (SharpDX + DXGI) 화면 캡처한 이미지를 빠르게 JPG로 변환하는 방법파일 다운로드1
12888정성태12/21/20217692.NET Framework: 1122. C# - ImageCodecInfo 사용 시 System.Drawing.Image와 System.Drawing.Bitmap에 따른 Save 성능 차이파일 다운로드1
12887정성태12/21/20219845오류 유형: 777. OpenCVSharp4를 사용한 프로그램 실행 시 "The type initializer for 'OpenCvSharp.Internal.NativeMethods' threw an exception." 예외 발생
12886정성태12/20/20217642스크립트: 37. 파이썬 - uwsgi의 --enable-threads 옵션 [2]
12885정성태12/20/20217900오류 유형: 776. uwsgi-plugin-python3 환경에서 MySQLdb 사용 환경
12884정성태12/20/20216935개발 환경 구성: 620. Windows 10+에서 WMI root/Microsoft/Windows/WindowsUpdate 네임스페이스 제거
12883정성태12/19/20217853오류 유형: 775. uwsgi-plugin-python3 환경에서 "ModuleNotFoundError: No module named 'django'" 오류 발생
12882정성태12/18/20216954개발 환경 구성: 619. Windows Server에서 WSL을 위한 리눅스 배포본을 설치하는 방법
12881정성태12/17/20217411개발 환경 구성: 618. WSL Ubuntu 20.04에서 파이썬을 위한 uwsgi 설치 방법 (2)
12880정성태12/16/20217282VS.NET IDE: 170. Visual Studio에서 .NET Core/5+ 역어셈블 소스코드 확인하는 방법
12879정성태12/16/202113555오류 유형: 774. Windows Server 2022 + docker desktop 설치 시 WSL 2로 선택한 경우 "Failed to deploy distro docker-desktop to ..." 오류 발생
12878정성태12/15/20218574개발 환경 구성: 617. 윈도우 WSL 환경에서 같은 종류의 리눅스를 다중으로 설치하는 방법
12877정성태12/15/20217239스크립트: 36. 파이썬 - pymysql 기본 예제 코드
12876정성태12/14/20217083개발 환경 구성: 616. Custom Sources를 이용한 Azure Monitor Metric 만들기
12875정성태12/13/20216726스크립트: 35. python - time.sleep(...) 호출 시 hang이 걸리는 듯한 문제
12874정성태12/13/20216740오류 유형: 773. shell script 실행 시 "$'\r': command not found" 오류
12873정성태12/12/20217891오류 유형: 772. 리눅스 - PATH에 등록했는데도 "command not found"가 나온다면?
12872정성태12/12/20217724개발 환경 구성: 615. GoLang과 Python 빌드가 모두 가능한 docker 이미지 만들기
12871정성태12/12/20217770오류 유형: 771. docker: Error response from daemon: OCI runtime create failed
12870정성태12/9/20216339개발 환경 구성: 614. 파이썬 - PyPI 패키지 만들기 (4) package_data 옵션
... 16  17  18  19  20  21  22  23  24  25  26  27  28  29  [30]  ...