Eu entendi! Apenas precisávamos de alguns pequenos ajustes de ponto de partida , que parece traduzir uma direção, mas não a outra. O preenchimento na outra direção fez com que ele "clicasse".
Aparentemente, você não pode usar o DHCP por meio desse tipo de ponte por motivos que ainda não entendo completamente (dispositivo com fio em uma rede WiFi), mas se você está bem com endereços estáticos para a ponte e para o dispositivo , funciona. Aqui está como eu fiz:
Adicione isso em /etc/network/interfaces
:
auto eth0
auto lo wlan0
iface lo inet loopback
# We're going to play router on this interface, so set that address
iface eth0 inet static
address 192.168.3.1
netmask 255.255.255.0
# Setup WiFi and take a static address, so we know the context
allow-hotplug wlan0
iface wlan0 inet static
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
address 192.168.2.5
netmask 255.255.255.0
gateway 192.168.2.1
# Take a second address, so we can bridge it to the single device at 192.168.3.x
iface wlan0 inet static
address 192.168.2.6
Adicione isso em /etc/rc.local
:
# Match settings in /etc/network/interfaces
IP_THIS="192.168.2.6"
IP_OTHR="192.168.3.6"
# Actual work
echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A PREROUTING -d $IP_OTHR -i eth0 -j DNAT --to-destination $IP_THIS
iptables -t nat -A PREROUTING -d $IP_THIS -i wlan0 -j DNAT --to-destination $IP_OTHR
iptables -t nat -A POSTROUTING -s $IP_THIS -j SNAT --to-source $IP_OTHR
iptables -t nat -A POSTROUTING -s $IP_OTHR -j SNAT --to-source $IP_THIS
Certifique-se de que /etc/wpa_supplicant/wpa_supplicant.conf
inclua isto:
network={
ssid="MyNetwork"
psk="MyPassword"
key_mgmt=WPA-PSK
}
Poderia estar lá já, se você já estiver conectado através de um utilitário gráfico, mas tenha certeza de qualquer maneira. Modifique conforme necessário para sua rede.
Defina o dispositivo em ponte como estático:
address: 192.168.3.6
netmask: 255.255.255.0
gateway: 192.168.3.1
e seus alvos, se houver, na rede 192.168.2.x
como se estivessem diretamente nessa rede.
Parece estranho comunicar-se com algo fora de sua própria sub-rede, mas quando a ponte faz a sua tradução ( iptables
), ela fica correta.
Da mesma forma, configure qualquer coisa na rede principal para usar o segundo endereço da ponte, não o endereço real, para falar com o dispositivo em ponte.
Use um cabo cruzado para conectar o dispositivo à ponte e, depois de reinicializar a ponte, ela deve "funcionar". (ou pelo menos para mim)
A estrutura resultante é:
Router:
addr: 192.168.2.1
ssid: MyNetwork
pass: MyPassword
auth: WPA2
dhcp: 100+
Target for Bridged Device
addr: 192.168.2.2
Bridge
addr: 192.168.2.5 (WiFi primary - used for the Bridge Machine itself)
addr: 192.168.2.6 (WiFi secondary - forwards to Bridged Device)
addr: 192.168.3.1 (Wired - "plays router" for Bridged Device)
Bridged Device
addr: 192.168.3.6
É claro que você pode alterar esses endereços conforme necessário, mas certifique-se de mantê-los todos em ordem.