SOCK_PACKET 으로 원하는 무선랜프레임 송수신하는법
안녕하세요
리눅스에서 SOCK_PACKET 타입의 소켓을 만들어서
레이어2 프레임을 직접 조립하여 이것을 무선 NIC 를 이용하여 채널에 송신하려고 하는데요
요컨데 Probe Request 프레임을 전송하거나 하고싶은 것이죠
이런 경우는 TCP/IP 소켓을 만들어서 일반적으로 소켓프로그래밍 하는식으로는 할수없잔아요?
이런 작업을 하려면 어떻게 해야할까요?
무선랜 디바이스 드라이버를 직접 만들어야만 하나요?
인터넷에서 알아본 바로 그렇게 안해도 SOCK_PACKET 타입의 소켓만으로도
수신뿐만아니라 송신도 할수있는것을 보았는데...
방법에대한 자세한 사항을 공부하기 어렵네요
무엇보다 802.11 Wireless Lan 인터페이스를 이용해서 원하는 주파수에 송신하려합니다
일단 저는 리눅스에서 iwconfig 툴을 이용해서
랜카드를 원하는 주파수로 세팅시킨다음
ifconfig wlan0 up
의 명령으로 무선랜카드를 활성화 시킨다음
PACKET 타입 소켓을 만든뒤
이것을 wlan0 인터페이스와 바인딩 시킨뒤에
해당 소켓으로 이더넷헤더가 붙어있는 데이터를 직접
메모리상에 올려놓고 전송시키려고 해봤는데요(이더넷 헤더부분을 직접 만들고
컴퓨터에 해당 무선NIC 의 MAC 주소도 일치하게 프레임헤더에 넣었습니다.
수신지 맥주소부분은 FFFFFFFFFFFF 로 브로드캐스팅주소로 채웠구요...
그런데 이 전송시키려는 바이트스트림의 형식이 어떻든간에
무조건적으로 송신시킬수는 없을까요?? 즉 아예 새로운 무선랜 레이어2 프로토콜을
만들수도 있게요...)
바인딩함수도 잘 되는것같고 sendto 함수도 원하는 바이트만큼을
리턴하는것으로 보아 전송이 되는것처럼 보이지만
확인해보니 송신이 안일어나고있네요
ifconfig wlan0 로 확인해봐도 TX 부분에 전송한 데이터가 전혀 없는걸 알수있습니다
누가 이부분에 대해서 조언좀 해주실수 없나요?
즉 AP 와 연결되지 않은 Managed 모드의 무선랜카드를
프로그램으로 직접 제어해서 원하는 형태의 레이어2 프레임을
송신하고싶은 것입니다. 예를들어 윈도우즈 운영체제에서
네트워크 설정에서 AP 를 찾아주는 것처럼 레이어2 프레임을
직접만들어서 원하는대로 송수신하고 싶은것이죠
조언 부탁합니다
댓글 달기