Я работаю над проектом, где я хочу перенаправить трафик Ethernet через другой интерфейс. Настройка такова:Перенаправление трафика Ethernet через другой интерфейс
У меня есть компьютер с рабочим доступом в Интернет. У меня также есть плата MBED LPC1768, которую я могу подключить через USB с моим компьютером. Я могу загрузить двоичный файл на это устройство и запустить его. Например, я могу позволить ему действовать как клавиатура и отправлять нажатия клавиш на компьютер. Я также могу позволить устройству действовать как мышь и отправлять события мыши.
Теперь я хочу, чтобы устройство работало как интерфейс ethernet. Поскольку устройство подключено с помощью USB, я думал о протоколе ethernet-over-USB. Я выбрал для протокола USBCDC-ECM, который работает на Linux и OS X. При подключении устройства устройство правильно идентифицируется как интерфейс Ethernet. Более того, я запускаю DHCP-сервер на встроенном устройстве, поэтому компьютеру присваивается IP-адрес. Обратите внимание, что у устройства нет рабочего интернет-подключения к внешнему миру (на нем есть компьютер).
Таким образом, встроенное устройство может захватывать интернет-трафик с компьютера. Когда устройство получает пакет, я хочу проанализировать пакет, отправить его обратно на компьютер и перенаправить его через рабочий интерфейс.
Так, например, у меня есть ноутбук и рабочее соединение на интерфейсе wlan0
. Теперь я подключаю устройство. Он присваивается интерфейсу eth0
. eth0
- мой предпочтительный интерфейс на компьютере, поэтому весь трафик идет до eth0
. Я фиксирую этот трафик на устройстве, и теперь я хочу отправить трафик обратно на компьютер и перенаправить его на wlan0
(или любой другой рабочий интерфейс). Поэтому в основном я хочу создать устройство, которое захватывает данные и отправляет их обратно на компьютер, действуя как промежуточное USB-устройство для интернет-трафика.
Это можно сделать? Я предпочитаю не изменять настройки в ОС и не позволять устройству управлять им. Моя основная ОС - Ubuntu 14.04, поэтому я не забочусь о Windows или OS X на данный момент. Кроме того, есть ли альтернативы для этого? Возможно, USBCDC-ECM не лучший выбор для этого.
Любая помощь будет высоко оценена.
Этот вопрос очень широк. У вас есть какой-то конкретный вопрос о реальной проблеме программирования? Что вы пробовали? Вы пробовали форумы NXP? – Olaf
Если ему назначен адрес, то есть DHCP * клиент * не * сервер *. – Clifford
Хорошо, прочитав другие сообщения: вы хотите, чтобы плата сама подключалась к интернету через «другой интерфейс» (на самом деле LPC1768 имеет Ethernet MAC на чипе) или ПК для работы в качестве моста между плате и i -сеть? Для последнего: это на самом деле не вопрос программирования, а об администрировании. – Olaf