
Configuré con éxito un USB wlan1
como AP a través de hostapd
, y isc-dhcpd
(solo escucha wlan1
la interfaz) en una Raspberry 4 (usando Raspbian). Independientemente de si wlan0
(el WIFI integrado) está conectado a un punto de acceso WAN, wlan1
los Clientes pueden hacer ping a esa wlan1
interfaz. El reenvío/enmascaramiento de IP funciona y, si wlan0
está conectado a WAN AP, wlan1
los clientes también tienen acceso a Internet. ¡Perfecto!
Pero en el momento en que lo conecto eth0
, wlan1
los clientes aún pueden conectarse a ese AP (Estado connected
), pero ya NO pueden hacer PING a esa wlan1
interfaz (y ya no pueden acceder a la WAN). ¡Eso es raro! El servidor DHCP envió las mismas IP válidas al cliente que antes, y la IP estática wlan1
también permanece igual ( eth0
y wlan1
tiene una IP estática). wlan1
se puede hacer ping localmente desde rapsberry (pero no desde un cliente externo).
Cuando lo desconecto eth0
, vuelve a funcionar.
¿Qué está pasando mal y por qué ya ni siquiera puedo hacer ping a esa interfaz?
El reenvío sysctl IPv4 está habilitado.
...
$ ip link
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
4: wlan1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
...
$ ip addr
...
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether e4:5f:01:84:db:34 brd ff:ff:ff:ff:ff:ff
inet 10.8.0.2/8 brd 10.255.255.255 scope global noprefixroute eth0
valid_lft forever preferred_lft forever
...
3: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
link/ether e4:5f:01:84:db:37 brd ff:ff:ff:ff:ff:ff
4: wlan1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether a0:f3:c1:23:2d:62 brd ff:ff:ff:ff:ff:ff
inet 10.8.5.1/8 brd 10.255.255.255 scope global noprefixroute wlan1
valid_lft forever preferred_lft forever
...
$nft list ruleset
...
table ip nat {
chain postrouting {
type nat hook postrouting priority srcnat; policy accept;
masquerade
}
}
...
$ cat /etc/hostapd/hostapd.conf
interface=wlan1
#If this fails, try rt1871xdrv a
#driver=nl80211
# Name of the new network: best use the hostname
ssid=xxx
# Pick a channel not already in use
channel=1
# Change to b for older devices?
hw_mode=g
macaddr_acl=0
auth_algs=3
# Disable this to insure the AP is visible:
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=xxx
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
#bridge=br0 # no bridge! We're using routing
country_code=JP
cat /etc/dhcpcd.conf
...
interface eth0
static ip_address=10.8.0.2/8
static routers=10.8.0.1
static domain_name_servers=127.0.0.1
interface wlan1
static ip_address=10.8.5.1/8
nohook wpa_supplicant
static domain_name_servers=127.0.0.1
interface wlan0
static domain_name_servers=127.0.0.1
cat /etc/dhcp/dhcpd.conf
...
authoritative;
subnet 10.8.5.0 netmask 255.255.255.0 {
range 10.8.5.201 10.8.5.250;
option broadcast-address 10.8.5.255;
option routers 10.8.5.1;
default-lease-time 600;
max-lease-time 7200;
option domain-name "local";
option domain-name-servers 10.8.5.1;
}
host ares {
hardware ethernet 04:ea:56:ae:58:03;
fixed-address 10.8.5.20;
}
$ ipconfig # on Windows 11 Client
...
Wireless LAN adapter Wi-Fi:
Connection-specific DNS Suffix . : local
Description . . . . . . . . . . . : Intel(R) Dual Band Wireless-AC 8265
Physical Address. . . . . . . . . : 04-EA-56-AE-58-03
DHCP Enabled. . . . . . . . . . . : Yes
Autoconfiguration Enabled . . . . : Yes
Link-local IPv6 Address . . . . . : fe80::9300:7ccf:3e03:eaf9%17(Preferred)
IPv4 Address. . . . . . . . . . . : 10.8.5.20(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Lease Obtained. . . . . . . . . . : Friday, 16 December 2022 22:56:38
Lease Expires . . . . . . . . . . : Friday, 16 December 2022 23:06:37
Default Gateway . . . . . . . . . : 10.8.5.1
DHCP Server . . . . . . . . . . . : 10.8.5.1
DHCPv6 IAID . . . . . . . . . . . : 168094294
DHCPv6 Client DUID. . . . . . . . : 00-01-00-01-26-1E-05-25-48-2A-E3-3A-C9-F0
DNS Servers . . . . . . . . . . . : 10.8.5.1
NetBIOS over Tcpip. . . . . . . . : Enabled
...
Respuesta1
Sus direcciones IP son:
- 10.8.0.2/8 para
wlan1
- 10.8.5.1/8 para
eth0
Esos estan en elmismosubred. 10.0.0.0/8 cubre todo, desde 10.0.0.0 hasta 10.255.255.255.
Sin embargo, en su alcance DHCP, la máscara de red de repente es /24.
La regla general es que si desea enviar tráfico dentro de una subred, necesita un conmutador (puente), mientras que necesita un enrutador para enviar tráfico entre subredes. Cuando su máquina recibe un paquete de uno de sus clientes conectados, que cree que 10.8.5.0/24 es una subred, no sabe qué hacer con él, ya que está dirigido a un host en la misma subred que el originador.
Probablemente desee que /24 esté definido en todas partes, así que reemplace la máscara de red por eth0
y wlan1
con /24, no /8.
En cuanto al comportamiento observado: las rutas tienen un peso. Las interfaces más rápidas flotan hacia la cima. Tu máquina cree wlan1
y eth0
ambas apuntan al mismo destino. Por lo tanto, envía el paquete a través delmejorinterfaz (el peso más bajo en la tabla de enrutamiento), que es la interfaz Ethernet cableada. Si se configuró correctamente con subredes separadas, funcionará bien.