iptable маршрутизация между интерфейсами RPi3, wlan0 и eth0. Как?

415
NMartin

Моя цель - заменить провод между моим компьютером и «устройством».

Я настроил RPi3 под управлением Raspbian Lite и установил dnsmasq и hostapd для запуска его в качестве беспроводной точки доступа. Теперь я хотел бы перенаправить трафик между интерфейсами wlan0 и eth0, чтобы программа и устройство думали, что между ними есть только провод.

Сложность в том, что устройство, подключенное к порту eth0, кажется проприетарным и предназначено для работы с компьютерной программой, которая устанавливает статический IP-адрес на стороне компьютера. при подключении к rpi он ничего не показывает с помощью arp -a.

Кажется, что iptables должен уметь делать то, что мне нужно, но я не уверен, как к этому подойти. Я пытался использовать brctl, но это, кажется, нарушает беспроводное соединение.

Мой компьютер настроен и подключен к hostapd / dnsmasq со статическим IP-адресом 192.168.90.125, и программа, кажется, связывается через порты 7001, 3598, 3599, 49544, 31415, 20098, 20101 по любому интерфейсу, который я указываю (на интерфейсах компьютеров ).

Мой файл / etc / network / interfaces выглядит следующим образом:

# Include files from /etc/network/interfaces.d: source-directory /etc/network/interfaces.d  auto lo iface lo inet loopback  allow-hotplug eth0 iface eth0 inet static address 11.0.0.1 netmask 255.255.255.0 network 11.0.0.0 broadcast 11.0.0.255  wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf # Added by rPi Access Point Setup allow-hotplug wlan0 iface wlan0 inet static address 192.168.90.1 netmask 255.255.255.0 network 192.168.90.0 broadcast 192.168.90.255 

Мой файл /etc/dnsmasq.conf выглядит так:

interface=wlan0 dhcp-range=192.168.90.50, 192.168.90.150 ,255.255.255.0, 1m addn-hosts=/etc/dnsmasq_static_hosts.conf 

Спасибо за любые мысли / помощь / предложения, которые вы можете предоставить.

0
Предполагая, что у вашего компьютера нет другого сетевого соединения и он получает все свои маршруты из вашего rpi / hostap, вам нужно добавить одно правило `iptables -A FORWARD -j ACCEPT` и убедиться, что` sysctl net.ipv4. ip_forward = 1`. Конфигурация сети устройства должна соответствовать сетевым настройкам в rpi eth0. Если у компьютера есть другие шлюзы, вам придется вручную добавлять маршруты к компьютеру или пытаться протолкнуть маршруты через dhcp, что является хитом и промахом. Если устройство не знает, как использовать шлюз, вам понадобится `iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE` Andrew Domaszek 7 лет назад 1
Вам действительно нужно использовать brctl (или эквивалентный) - вопрос, я думаю, почему это ломается? (Скорее всего, это проблема установки какого-то типа). Для этого вам, конечно, необходимо: (1) убедиться, что соответствующие модули ядра загружены / не загружены (1) создать мост, (2) добавить устройства Ethernet и WLAN к мосту и (3) убедитесь, что ничто не мешает - см. http://unix.stackexchange.com/questions/136918/why-does-my-firewall-iptables-interfere-in-my-bridge-brctl davidgo 7 лет назад 0
@AndrewDomaszek Я должен был упомянуть, что текущие политики по умолчанию для ввода, пересылки и вывода имеют значение «ПРИНЯТЬ», а sysctl net.ipv4.ip_forward = 1. Если я установлю порт Ethernet в той же подсети и по умолчанию, что и на стороне wlan0, он будет автоматически пересылать весь трафик через? NMartin 7 лет назад 0

0 ответов на вопрос

Похожие вопросы