Accediendo a un recurso compartido de samba desde una LAN separada

Accediendo a un recurso compartido de samba desde una LAN separada

Tengo 2 LAN en casa:

  • Una LAN principal que se ejecuta detrás del módem de mi ISP (que actúa como un enrutador con una dirección IP de 192.168.0.1, al que me referiré como enrutador A). Adjunto a este enrutador hay una Raspberry Pi en 192.168.0.4.
  • Una LAN secundaria que se ejecuta detrás de un enrutador inalámbrico TP-LINK, conectada a mi módem (mi LAN principal) en 192.168.0.10 (por lo que la puerta de enlace predeterminada de este enrutador es 192.168.0.10), al que me referiré como enrutador B. la IP del enrutador La dirección en su LAN es 192.168.1.1. Adjunto a este enrutador hay un disco duro al que accedo a través de un recurso compartido de samba en la dirección 192.168.1.1. Aquí hay una descripción general de esta configuración:

Router A 192.168.0.1 | | - Raspberry Pi | Router B 192.168.0.10 to router A, | 192.168.1.1 to clients within | Samba server - 192.168.1.1

Estoy intentando acceder a mi recurso compartido de samba desde mi Raspberry Pi, pero como están en diferentes LAN, el Pi no puede ver mi recurso compartido de samba. Intenté reenviar puertos samba en el enrutador B (puertos 137 a 139 y puerto 445) y acceder al recurso compartido desde el Pi usando IP 192.168.0.10 (la dirección IP del enrutador B en la LAN del Pi), pero no funciona. Cuando conecto el Pi a la LAN del enrutador B (usando un dongle wifi), puedo acceder al recurso compartido de samba sin problemas en la IP 192.168.1.1, pero como están muy lejos, sigo perdiendo la conexión. ¿Cómo sugeriría que haga esto sin conectar físicamente el Pi al enrutador B?

Respuesta1

Usted tiene unenrutamientoproblema.

Considere esto: su RPI (192.168.0.x) no sabe nada sobre la existencia de otra LAN (192.168.1.x). ¿Cómo puede informarle que existe otra LAN justo al lado? Respuesta: usando unruta, que es una información muy específica que indica cómo se puede llegar a una subred/host en particular.

En su ejemplo, su LAN 192.168.1.x está detrás del host "enrutador B" (192.168.0.10). Para llegar a la LAN 192.168.1.x, los hosts conectados a la otra LAN (192.168.0.x) debían saber exactamente lo mismo. En otras palabras, tenía que decirle a su LAN 192.168.0.x que la otra LAN (192.168.1.x) se puede ver a través del enrutador 192.168.0.10.

Puede lograr esto usando el siguiente comando de enrutamiento de Linux: route add -net 192.168.1.0/24 gw 192.168.0.10. Teóricamente, este comando es necesario en cada host que reside en la LAN 192.168.0.x, algo algo molesto cuando se tienen varios (quizás varios) hosts. Sin embargo, existe otra solución: dejar que los distintos hosts 192.168.0.x no sepan nada de la otra LAN, pero informar al enrutador principal (enrutador A - 192.168.0.1) que dicha red existe. Sin embargo, por lo que leí, no puedes alterar la tabla de enrutamiento del enrutador A en ningún modo, por lo que solo puedes usar el primer método explicado anteriormente.

Una última solución, desaconsejada, que no implica modificación de enrutamiento es el método de reenvío de puertos. En este caso, básicamente le dice al enrutador B (192.168.0.10) que configure un oyente de samba "falso" y que redirija cada solicitud de samba al servidor de samba interno 192.168.1.1. ¿Por qué se desaconseja esto? Porque NAT puede aumentar inútilmente la complejidad de la red y porque requiere un procesamiento significativo por parte del enrutador B, lo que ralentiza sus conexiones.

Una última cosa: haciendo tu prueba/configuración,Utilice siempre la dirección IP de samba y no el nombre de su servidor.Esto se debe a que NETBEUI (que evolucionó a NETBIOS) no fue diseñado para funcionar entre diferentes LAN y esto afecta sus capacidades de resolución de nombres. Así que mantengamos las cosas simples aquí: use la dirección IP del servidor samba para probar las conexiones.

información relacionada