Aghustyn | |
| 2011-09-07 00:39 - Respuestas: 0 - Tema nº: 2820140
Tema general de conexión a base de datos.
El problema que tengo es el siguiente. Hay una PC que hace de servidor de Base de Datos (la base de datos es PostgreSQL, pero eso es lo de menos, ya que el principio se aplica a cualquier sistema de base de datos). La base de datos escucha a través del puerto 5432.
Primer caso:
En un mundo ideal, tendría el servidor conectado directamente a internet, sin ningún dispositivo de por medio (routers o lo que sea), es decir SERVIDOR-INTERNET-CLIENTE; basta con que las aplicaciones clientes se conecten a la IP publica (asignada por el del proveedor de internet), para que estén conectados a la Base de Datos de forma exitosa, ya que esa IP publica será la ip del servidor (asi de fácil). Ningún problema hasta ahí.
Segundo caso:
Existe un solo router entre la conexión directa a internet y el servidor de base de datos, es decir: SERVIDOR-ROUTER-INTERNET-CLIENTE, el problema de conexión se soluciona simplemente redirigiendo (en el router), el puerto 5432 (o el que fuere), a la IP de la PC servidor de BD, (ejemplo 192.168.1.110, ip fija en este caso). Entonces, las peticiones hechas desde una PC remota utilizando el puerto 5432, son redirigidas a la PC que esta en la IP 192.168.1.110 de nuestra red de area local (Nuestro servidor). Bien hasta ahí.
Tercer caso:
Nuestro servidor se encuentra conectado a un router; este router, no se conecta directamente a internet, sino que lo hace a traves de otro router; este último, si se conecta directamente a internet, en sintesis: SERVIDOR-ROUTER2-ROUTER1-INTERNET-CLIENTE; aquí ya no se soluciona con solo redireccionar el puerto 5432 del último router (ROUTER2, del que está enlazado el servidor de BD), por que las peticiones al puerto 5432 hechas por el cliente "rebotan" en el ROUTER1. La solución a esto es, redirigir en el ROUTER1, el puerto 5432 hacia la ip del "ROUTER2" y a su vez, redirigir el puerto 5432 en el ROUTER2 hacia la IP asignada al Servidor de BD, creando de esta manera un túnel a través del puerto mencionado.
No habría ningún problema hacer lo descrito en el tercer paso, salvo por un problema, ahí va:
Yo vivo en Argentina, en la capital de la provincia de Corrientes. Aquí, hay proveedores de internet como Arnet de Telecom u otros, que te dán IPs públicas directas (ya sea dinámica o fija); el problema es en el interior, donde no existen dichos proveedores; ya sea por estar muy alejados, por falta de infraestructura o lo que sea. En su lugar, se encuentran pequeñas empresas que, brindan acceso a internet, y no hay queja del servicio; el problema es el como lo distribuyen. Ellos compran un determinado ancho de banda a otra empresa (quizás de forma satelital), y lo distribuyen en la zona para asi brindar el acceso a internet a los pobladores (dividiendo el ancho de banda claro); y lo hacen empleando un "ROUTER"; aquí nos damos cuenta que este proveedor no nos dará una IP pública directa, sino que nos dará una IP de area local; la única IP pública ya le fue concedida al mismo proveedor; en otras palabras, todos los que estén conectados con este proveedor, tendrán la misma IP pública.
Bueno, una empresa de la zona, desea una conexión a internet; contrata a este proveedor, y este le tira un cable UTP (RJ45) o cablemodem, o lo q sea. Es probable que la empresa tenga varias computadoras; entonces para compartir la conexión, deberá poner un router de por medio. Entre esas PCs, se encuentra nuestro servidor de base de datos. Aqui tenemos el "Tercer caso"; solo que, el "ROUTER1", no está en nuestro poder, es decir no podemos redirigir el puerto deseado hacia la IP del router que usamos para dividir el ancho de banda contratado (el ROUTER2). Recuerden que el ROUTER1 esta en manos del proveedor de internet.
Un caso peor sería, si el proveedor de internet emplea mas de un router (vaya a saber por que, situaciones internas), el router que se instale en la empresa sería el número 3 o el 4... Imaginate pedirle al proveedor que redirija determinado puerto hacia mi empresa, quitando la posibilidad a otros usuarios de utilizar dichos puertos.
Aqui hablamos obviamente de túneles, pero intenté solucionar el problema con el OpenVPN (una red privada virtual), que como sabrán esta tecnología extiende una red de area local a traves de internet y hace sentir, al que esta conectado de forma remota, que está físicamente conectado a la red local, aun que se encuentre en la CHINA. El problema es que aparentemente, OpenVPN tambien requiere redirigir puertos hacia un servidior, o sea que estramos al mismo problema, el de abrir los puertos para la red privada. Queriendo solucionar un problema, nos metemos en otro. esta vez OpenVPN-ROUTER2-ROUTER1-INTERNET-CLIENTE conectados a un determiando puerto.
Una solución sería contratar internet satelital, pero el costo es muy elevado.
Ya habrán deducido mi pregunta no?... Tengo mal los conceptos? Estoy muy errado en mis conocimientos? estoy haciendo algo mal?
Muchísimas gracias. Espero haber explicado bien. Abrazos
| |
|
|