El punto de acceso USB wlan1 deja de funcionar cuando el cable eth0 está enchufado

El punto de acceso USB wlan1 deja de funcionar cuando el cable eth0 está enchufado

Configuré con éxito un USB wlan1como AP a través de hostapd, y isc-dhcpd(solo escucha wlan1la interfaz) en una Raspberry 4 (usando Raspbian). Independientemente de si wlan0(el WIFI integrado) está conectado a un punto de acceso WAN, wlan1los Clientes pueden hacer ping a esa wlan1interfaz. El reenvío/enmascaramiento de IP funciona y, si wlan0está conectado a WAN AP, wlan1los clientes también tienen acceso a Internet. ¡Perfecto!

Pero en el momento en que lo conecto eth0, wlan1los clientes aún pueden conectarse a ese AP (Estado connected), pero ya NO pueden hacer PING a esa wlan1interfaz (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 wlan1también permanece igual ( eth0y wlan1tiene una IP estática). wlan1se 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 parawlan1
  • 10.8.5.1/8 paraeth0

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 eth0y wlan1con /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 wlan1y eth0ambas 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.

información relacionada