TL;DR доступен внизу
Я пытался найти способ заставить два ноутбука (оба под управлением Ubuntu) передавать основные сообщения туда и обратно без необходимости их подключения через беспроводную сеть, либо через точку доступа или ad-hoc. Я хочу еще раз повторить здесь, что создание сетей ad-hoc не то, что я ищу, я видел здесь много похожих вопросов с этим ответом.
Я думаю, что я спрашиваю: как мне этого добиться? Все, что мне действительно нужно, это чтобы один компьютер мог отправить пакет, а затем другой мог бы его забрать через какой-нибудь анализатор пакетов.
В настоящее время: у меня есть оба ноутбука в режиме мониторинга (через интерфейс mon0, созданный из airmon-ng от aircrack-ng), чтобы они могли обнюхивать близлежащий трафик (с помощью Wireshark, tcpdump, образца кода libpcap от tcpcump.org, открытия необработанного сокета и просто распечатав все пакеты.Я пробовал каждый только потому, что думал, что можно сделать что-то по-другому/что-то упустить). У меня также есть очень простая программа, которая состоит в открытии необработанного сокета для отправки созданных кадров Ethernet в эфир, но я не могу заставить свои две машины видеть пакеты друг друга. Сниффер, работающий на каждой машине, может видеть только пакеты, исходящие от этой машины (в дополнение к близлежащим маякам/трафику управления от Wi-Fi в этом районе).
Некоторые вещи, на которые следует обратить внимание, которые могут быть важны:
- пакеты, которые я отправляю, отображаются в Wireshark (только на отправляющей машине) как искаженные пакеты 802.11 (вероятно, потому, что я пока просто заполняю их ненужными данными). У меня сложилось впечатление, что мой другой ноутбук также увидит их как искаженные пакеты, но ничего не получает.
- сокеты, которые я использую, взяты из вызова сокета (PF_PACKET, SOCK_RAW, ETH_P_ALL). Необработанные сокеты — это то, о чем я только недавно узнал, поэтому я мог неправильно понять, как они работают, но у меня сложилось впечатление, что я могу создать пакет уровня 2 вручную и отправить прямо по проводу / воздуху.
Если вам интересно, почему я хочу сделать что-то подобное, это отчасти любопытство, отчасти исследование проекта, над которым я работаю. Я хочу упростить/автоматизировать процесс настройки сети ad-hoc, и здесь я пытаюсь сделать небольшой обмен ноутбуками, чтобы выяснить особенности сети ad-hoc, которую они собираются создать, и затем создайте / присоединитесь к этой сети автоматически, вместо того, чтобы один человек явно настраивал сеть ИЛИ чтобы оба человека заранее определяли имя и т. д. сети, и оба компьютера постоянно пытались подключиться к этому конкретному.
Меня больше интересует, правильно ли я выполняю этот процесс, а не работает ли мой код или нет, если кто-то думает, что я публикую свой (очень простой, взятый из другого поста в Stack Overflow) необработанный код сокета, поможет, Я могу.
Изменить: я более чем счастлив опубликовать полный набор кода с инструкциями, если я смогу заставить это работать. Я не смог найти много полезной информации по этой теме в Интернете, и я хотел бы разместить ее для будущих людей, пытающихся сделать то же самое.
TL;DR Я хочу отправить пакет с одного ноутбука и забрать его на другом через какой-то анализатор пакетов. Сеть Wi-Fi или специальная сеть не задействованы. Что-то похожее на подделку кадра маяка точки доступа (или аналогичного) с целью отправки небольших объемов данных.
Редактировать 2: После некоторых размышлений, возможно, я ищу какое-то сырое использование 802.11? Имея прямой контроль над Wi-Fi радио? Возможно ли такое?