Conecta WiFi y Ethernet simultáneamente

Oct 05 2020

Estoy intentando conectar la frambuesa a ethernet y wifi al mismo tiempo, pero no funciona.

Infos de frambuesa:

Modelo : Pi Model 3B + V1.3

/etc/dhcpcd.conf :

# A sample configuration for dhcpcd. See dhcpcd.conf(5) for details.

# Allow users of this group to interact with dhcpcd via the control socket.
#controlgroup wheel

# Inform the DHCP server of our hostname for DDNS.
hostname

# Use the hardware address of the interface for the Client ID.
clientid
# or
# Use the same DUID + IAID as set in DHCPv6 for DHCPv4 ClientID as per RFC4361.
# Some non-RFC compliant DHCP servers do not reply with this set.
# In this case, comment out duid and enable clientid above.
#duid

# Persist interface configuration when dhcpcd exits.
persistent

# Rapid commit support.
# Safe to enable by default because it requires the equivalent option set
# on the server to actually work.
option rapid_commit

# A list of options to request from the DHCP server.
option domain_name_servers, domain_name, domain_search, host_name
option classless_static_routes
# Respect the network MTU. This is applied to DHCP routes.
option interface_mtu

# Most distributions have NTP support.
#option ntp_servers

# A ServerID is required by RFC2131.
require dhcp_server_identifier

# Generate SLAAC address using the Hardware Address of the interface
#slaac hwaddr
# OR generate Stable Private IPv6 Addresses based from the DUID
slaac private

# Example static IP configuration:

interface eth0
static ip_address=10.10.7.201/21
static routers=10.10.0.1
#static domain_name_servers=
#static domain_search=

/ etc / network / interfaces :

#iface default inet dhcp
# interfaces(5) file used by ifup(8) and ifdown(8)

# Please note that this file is written to be used with dhcpcd
# For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf'

# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d

/etc/wpa_supplicant/wpa_supplicant.conf :

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=it

network={
        ssid="xxxx"
        scan_ssid=1
        proto=RSN
        key_mgmt=WPA-PSK
        psk="xxxx"
        id_str="home"
        pairwise=CCMP TKIP
        group=CCMP TKIP
        priority=5
}

Descripción de la red

Necesito conectar ambos porque:

  • El wifi proporciona conectividad de red para ssh e internet (DHCP)
  • Ethernet se conecta a la red local y se comunica con un PLC (controlador lógico programable) (IP estática: 10.10.7.201)

En realidad, mi computadora portátil está conectada temporalmente a ambas redes porque el PLC necesita ser programado, por lo que he conectado todo a mi computadora portátil.

Como se pregunta en los comentarios:

La Raspberry está conectada de forma inalámbrica como enlace ascendente del cliente al enrutador de Internet. No proporciona un punto de acceso. En el lado de Ethernet, hay un dispositivo conectado a la Raspberry. La subred cableada es local y no tiene conexión a Internet. Puedo confirmar eso.

  1. ¿Hay más dispositivos en la subred cableada que utilizan un conmutador?

    En el interruptor están conectados:

    • Frambuesa como 10.10.7.201
    • PLC como 10.10.7.200
    • MyLaptop como 10.10.7.3
  2. ¿Hay otros dispositivos inalámbricos conectados al enrutador de Internet?

    Sí, hay muchos dispositivos (es la red de la empresa)

  3. ¿Deben los dispositivos conectados inalámbricos comunicarse con dispositivos conectados por cable?

    No, la Raspberry es el único dispositivo que debe acceder al dispositivo conectado por cable (PLC). Esencialmente tengo un servidor web Python flask en la frambuesa que actúa como interfaz entre el usuario que se conecta a la página web (usando la IP frambuesa inalámbrica) y el PLC (que está en la conexión por cable)

  4. ip r salida:

    default via 10.10.0.1 dev wlan0 proto dhcp src 10.10.4.195 metric 200 
    10.10.0.0/21 dev wlan0 proto dhcp scope link src 10.10.4.195 metric 200
    

Descripción del problema

El problema es que cuando conecto el cable Ethernet, la frambuesa es inaccesible en la red WiFi y no puede acceder a Internet desde ella, pero ambos parecen estar conectados ifconfig:

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.10.7.201  netmask 255.255.248.0  broadcast 10.10.7.255
        inet6 fe80::2fc5:49ad:9818:aaa0  prefixlen 64  scopeid 0x20<link>
        ether b8:27:eb:bf:5a:f8  txqueuelen 1000  (Ethernet)
        RX packets 5364  bytes 388068 (378.9 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 8582  bytes 501093 (489.3 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 3154  bytes 524871 (512.5 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 3154  bytes 524871 (512.5 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.10.4.195  netmask 255.255.248.0  broadcast 10.10.7.255
        inet6 fe80::f7bc:436f:a335:bff9  prefixlen 64  scopeid 0x20<link>
        ether b8:27:eb:ea:0f:ad  txqueuelen 1000  (Ethernet)
        RX packets 61566  bytes 10678751 (10.1 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 30  bytes 4374 (4.2 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Cuando desconecto el cable ethernet, se puede acceder a la frambuesa a través de la conexión wifi y puedo conectarme a ella mediante SSH.

Intentos

He buscado en google cómo configurar ambos simultáneamente y he encontrado este artículo , es muy antiguo, pero como puedes ver en el comentario debería funcionar.

NOTA :

  • /etc/network/interfacesen realidad no se usa en la nueva frambuesa, por lo que he editado el /etc/dhcpcd.conf.
  • /etc/default/ifplugdno existe, así que intenté instalarlo apt-get install ifplugdy cofigurar como en la respuesta, también agregué la línea /etc/rc.local.

Pregunta

¿Tiene algún consejo para mí sobre cómo puedo configurar correctamente ambas conexiones para que funcionen?

Intenté editar el /etc/dhcpcd.confarchivo para establecer la métrica:

interface eth0
static ip_address=10.10.7.201/21
metric 300
#static routers=10.10.0.1
#static domain_name_servers=
#static domain_search=

interface wlan0
metric 200

Ahora el WiFi es accesible pero no el cable ethernet, ¿tal vez me falta algún route addcomando para realizar?

Respuestas

4 Ingo Oct 05 2020 at 10:33

La configuración no debería ser un gran problema porque no hay requisitos de enrutamiento. La subred cableada está aislada de la subred inalámbrica. Así que puedes conectarte de forma inalámbrica al enrutador de Internet con wpa_supplicant como de costumbre. Las conexiones por cable deberían funcionar desde el primer momento cuando solo se utilicen direcciones IP estáticas y sin resolución de nombres. Para sentirse más cómodo, puede habilitar un servidor DHCP en la subred cableada y usar la resolución de nombres dDNS en el dominio DNS .local. Solo debe asegurarse de que la subred IP en la subred cableada sea diferente de las direcciones IP en la subred inalámbrica.

Puede encontrar un ejemplo en Cómo hacer que Raspberry Pi 4 sea un adaptador "WIFI" -> "Ethernet" pero que funciona como un enrutador que no necesitamos. Simplemente omita el enrutamiento y el DNS /etc/systemd/network/04-eth0.networkutilizando este archivo en su lugar:

rpi ~# cat > /etc/systemd/network/04-eth0.network <<EOF
[Match]
Name=eth0

[Network]
Address=192.168.4.1/24
LLMNR=no
MulticastDNS=yes
DHCPServer=yes
EOF

Si los dispositivos admiten mDNS (Multicast DNS), debería poder direccionar la RasPi desde la computadora portátil con ping raspberrypi.localy el PLC desde la RasPi con, por ejemplo ping plc.local. Asegúrese de no habilitar el enrutamiento / reenvío de IP en la computadora portátil y en la RasPi. Esto puede confundir la red con bucles de conexión.