¿Es posible tener Wi-Fi y Ethernet conectados a la misma red?

¿Es posible tener Wi-Fi y Ethernet conectados a la misma red?

Estoy ejecutando Arch Linux (en una Raspberry Pi 3) e intenté conectar Ethernet y Wi-Fi a la misma red. routeme muestra lo siguiente:

$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         gateway         0.0.0.0         UG    1024   0        0 eth0
default         gateway         0.0.0.0         UG    1024   0        0 wlan0
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 wlan0
gateway         0.0.0.0         255.255.255.255 UH    1024   0        0 eth0
gateway         0.0.0.0         255.255.255.255 UH    1024   0        0 wlan0

ip addrme muestra lo siguiente:

$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether b8:27:XX:XX:XX:XX brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.103/24 brd 192.168.1.255 scope global dynamic eth0
       valid_lft 85717sec preferred_lft 85717sec
    inet6 fe80::ba27:ebff:fee4:4f60/64 scope link
       valid_lft forever preferred_lft forever
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether b8:27:YY:YY:YY:YY brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.102/24 brd 192.168.1.255 scope global dynamic wlan0
       valid_lft 85727sec preferred_lft 85727sec
    inet6 fe80::ba27:ebff:feb1:1a35/64 scope link
       valid_lft forever preferred_lft forever

Ambas wlan0interfaces eth0pudieron obtener una dirección IP del enrutador.

Pero resulta que sólo una de estas interfaces funciona. No se puede hacer ping a la otra interfaz y no se puede conectar. Normalmente es Ethernet el que funciona, pero a veces es el Wi-Fi.

¿Lo que está sucediendo? ¿Qué puedo hacer para que esto funcione?

Respuesta1

Como descubrió, desde la perspectiva del enrutamiento, si bien es posible, no es ideal tener direcciones de la misma red en diferentes interfaces.

El enrutamiento espera una red diferente por interfaz y, en última instancia, una de ellas tendrá prioridad sobre la otra en el enrutamiento, ya que se superponen.

La solución recomendada para tener más de una interfaz conectada a la misma red es agregarlas en una interfaz puente.

La interfaz del puente será "propietaria" de la dirección IP y las interfaces reales reales se agrupan como una entidad única virtual en br0.

allow-hotplug eth0
iface eth0 inet manual

allow-hotplug wlan0
iface wlan0 inet manual

auto br0
iface br0 inet dhcp
    bridge_ports eth0 wlan0
    

Debian Linux: configurar interfaces de red como puente/conmutador de red

Respuesta2

Esto es más una adición que una solución completa. [Ya que no tengo suficientes "puntos de reputación" para comentar.]

Primero debes hacer que ambas interfaces funcionen de forma independiente. Luego, en lugar de realizar un puente, también puede equilibrar la carga de las conexiones salientes en ambas interfaces.

https://www.tldp.org/HOWTO/Adv-Routing-HOWTO/lartc.rpdb.multiple-links.html

Comencé con esto, dos dispositivos con ruta predeterminada a Internet configurada por el administrador de red:

❯ ip route
default via 192.168.0.1 dev eno1 proto dhcp metric 100 
default via 192.168.0.1 dev wlp4s0 proto dhcp metric 600 
169.254.0.0/16 dev wlp4s0 scope link metric 1000 
192.168.0.0/24 dev eno1 proto kernel scope link src 192.168.0.246 metric 100 
192.168.0.0/24 dev wlp4s0 proto kernel scope link src 192.168.0.213 metric 600 

Luego utilicé el comando, que se describe aquí en equilibrio de carga:

https://www.tldp.org/HOWTO/Adv-Routing-HOWTO/lartc.rpdb.multiple-links.html

❯ P1=192.168.0.1
❯ P2=192.168.0.1
❯ IF1=eno1
❯ IF2=wlp4s0
❯ ip route add default scope global nexthop via $P1 dev $IF1 weight 1 \     
            nexthop via $P2 dev $IF2 weight 1

¡Vola! Obtengo conexiones a través de ambos dispositivos.

❯ ip route                                                                  
default 
    nexthop via 192.168.0.1 dev eno1 weight 1 
    nexthop via 192.168.0.1 dev wlp4s0 weight 1 
default via 192.168.0.1 dev eno1 proto dhcp metric 100 
default via 192.168.0.1 dev wlp4s0 proto dhcp metric 600 
169.254.0.0/16 dev wlp4s0 scope link metric 1000 
192.168.0.0/24 dev eno1 proto kernel scope link src 192.168.0.246 metric 100 
192.168.0.0/24 dev wlp4s0 proto kernel scope link src 192.168.0.213 metric 600 

Eso podría dificultar la depuración si tengo problemas de conexión;)

Y todavía no sé cómo conservar la configuración entre reinicios, especialmente en combinación con el administrador de red.

información relacionada