Conecta WiFi y Ethernet simultáneamente
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.
¿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
¿Hay otros dispositivos inalámbricos conectados al enrutador de Internet?
Sí, hay muchos dispositivos (es la red de la empresa)
¿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)
ip rsalida: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é instalarloapt-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
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.