La situación

La situación

La situación

Raspbian Stretch está conectado de forma inalámbrica a una subred privada 10.0.0.0/16 a través de wlan0 (modelo RT5370). Sin más modificaciones, Raspbian Stretch tiene acceso a Internet y el DNS está funcionando. PD: No tengo acceso físico al enrutador que se conecta a Internet, solo inalámbrico.

Agregué otra NIC RT5370 como wlan1 y la configuré como punto de acceso inalámbrico usando hostapd.

Como no conozco el rango de direcciones del servidor DHCP del enrutador, no quiero agregar una dirección estática a wlan0.

He configurado una dirección IPv4 estática en wlan1 192.168.0.1/28 (16 direcciones de host) y configuro dnsmasq para que sea el servidor DHCP para esta red.

El problema

En realidad, debería ser bastante simple.

Raspbian Stretch puede 1) acceder a Internet o 2) actuar como WAP para conectar clientes. El problema es que ambas funciones no funcionarán al mismo tiempo.

He visto guías en las que la conexión a Internet se establece mediante cobre en lugar de ondas de radio, pero no veo por qué hay alguna diferencia si la interfaz conectada a Internet es inalámbrica en lugar de cableada. De todos modos...

Lo que he probado

Al reiniciar de nuevo, puedo hacer ping a google.com y 8.8.8.8 correctamente.

Puedo ver tanto wlan0 como wlan1 después de verificar ifconfigy parecen estar bien configurados.

Aquí está el resultado de route.

Kernel IP routing table
Destination Gateway     Genbask         Flags Metric Ref Use Iface
default     10.0.0.36   0.0.0.0         UG    303    0     0 wlan0
default     192.168.0.1 0.0.0.0         UG    304    0     0 wlan1
10.0.0.0    0.0.0.0     255.255.0.0     U     303    0     0 wlan0
192.168.0.0 0.0.0.0     255.255.255.240 U     303    0     0 wlan1

No sé por qué parece que hay dos puertas de enlace predeterminadas aquí cuando una única ruta predeterminada parece más apropiada, pero Internet funciona, así que continúo...

Después de comprobar que Raspbian Stretch tiene acceso a Internet, intento:

root@computer:/# hostapd /etc/hostapd/hostapd.conf

Y consigue esto:

Configuration file: /etc/hostapd/hostapd.conf
nl80211: Could not configure driver mode
nl80211: deinit ifname=wlan1 disabled_11b_rates=0
nl80211: driver initialization failed.
wlan1: interface state UNINITIALIZED->DISABLED
wlan1: AP-DISABLED
hostapd_free_hapd_data: Interface wlan1 wasn't started

Ahora, curiosamente, después de que lo haga:

root@computer:/# killall wpa_supplicant
root@computer:/# hostapd /etc/hostapd/hostapd.conf &

Entiendo esto:

Configuration file: /etc/hostapd/hostapd.conf
Using interface wlan1 with hwaddress aa:bb:cc:11:22:33 and ssid "myssid"
wlan1: interface state UNINITIALIZED->ENABLED
wlan1: AP-ENABLED

Esto me permite conectar con éxito las máquinas cliente a myssid a través de wlan1, pero ahora no puedo hacer ping a google.com o 8.8.8.8 y noté que wlan0 no se muestra en ifconfig y mi tabla de enrutamiento se ve así ahora:

Kernel IP routing table
Destination Gateway     Genbask         Flags Metric Ref Use Iface
192.168.0.0 0.0.0.0     255.255.255.240 U     303    0     0 wlan1

Para recuperar wlan0 hago:

root@computer:/# service dhcpcd restart
root@computer:/# sysctl daemon-reload

Ahora wlan0 y wlan1 aparecen en ifconfig, Raspbian Stretch puede hacer ping a google.com y 8.8.8.8, pero los clientes conectados a wlan1 no tienen acceso a Internet.

En este punto mi tabla de enrutamiento se ve así:

Kernel IP routing table
Destination Gateway     Genbask         Flags Metric Ref Use Iface
default     10.0.0.36   0.0.0.0         UG    303    0     0 wlan0
10.0.0.0    0.0.0.0     255.255.0.0     U     303    0     0 wlan0
192.168.0.0 0.0.0.0     255.255.255.240 U     304    0     0 wlan1

Si tan solo pudiera permitir el acceso a Internet a los clientes wlan1, todo esto podría terminar :)

Respuesta1

Debido a que no hay una ruta desde el enrutador de la puerta de enlace de Internet a la red conectada a wlan1 (192.168.0.0/28), terminé simplemente configurando NAT dinámica con sobrecarga de PAT entre wlan0 y wlan1.

iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE

¡Misión cumplida!

Si tuviera acceso al enrutador de la puerta de enlace de Internet, probablemente podría agregar una ruta estática desde la dirección wlan0 de Raspbian Stretch a la red 192.168.0.0/28, pero 1) no tengo acceso a ese enrutador y 2) también tendría para configurar: a) una reserva DHCP en el servidor DHCP (al que tampoco tengo acceso) ob) una dirección IP estática en wlan0 de Raspbian Stretch, si quisiera evitar realizar cambios cuando expire la facilidad de dhcp de wlan0. Entonces una ruta estática no funcionará en este caso.

De todos modos, este es el primer enrutador/firewall que he visto o escuchado que funciona.NOutilizar una conexión por cable a la WANOla LAN.

La gente podría usar esto en una red WiFi abierta y gratuita en lugar de usar una VPN o un proxy SOCKS (si sabes lo suficiente sobre iptables para asegurar tu conexión).

información relacionada