PDA

Ver la Versión Completa : Acceder a IP a tavés de Router


Sergio J.
24-11-2004, 11:04:50
Hola a la sala:

No se si tiene cabida esta consulta en este foro, resulta que tengo que acceder desde una máquina A a otra B a través del protocolo TCP/IP. La máquina B está en una red LAN que accede a internet a través de un router, cuya IP es fija. Tengo que utilizar dicha IP para acceder a la máquina B pero no sé como hacerlo ya que la aplicación a la que tengo que acceder no la va a encontrar en el router.

Gracias

marcoszorrilla
24-11-2004, 12:23:18
Sie entiendo bien la pregunta, lo que tienes que hacer, es compartir bien el disco duro completo o bien una sola carpeta, y luego puedes crear una unidad de Red y acceder a la misma.

Supongo que están creados las IP del tipo.

190.160.0.101
255.255.255.0


Un Saludo.

Sergio J.
24-11-2004, 12:53:29
Gracias por contestar...

Máquina A: protocolo TCP/IP --> dirección 192.168.0.X, puerta de enlace --> la asignada al router, accede a internet a través de Router ADSL cuya IP es fija por operador.

Máquina B: mismas características que A.

Desde una aplicación en A tengo que acceder al servidor de la aplicación en B a través del protocolo TCP/IP.

Aquí es donde me pierdo, porque si accedo a la IP del router puesto que es fija y la única que conozco, voy a tener probemas al ejecutar la aplicación en el cliente porque en la IP del router no se encuentra la aplicación servidora.

No sé si existirá una manera de acceder a la dirección 192.168.0.X de la máquina servidor pasando por la IP del router, una manera de direccionar o algo así.

Otra solución sería crear una VPN entre ambas oficinas. En este caso no sé si se puede crear fácilmente o tiene que ser el proveedor de internet quien tiene que hacerlo.

Un saludo

Sergio J.
24-11-2004, 12:57:06
Una cosa, no sé de qué tipo son las direcciones a que te refieres:

Supongo que están creados las IP del tipo.

190.160.0.101
255.255.255.0

marcoszorrilla
24-11-2004, 14:24:10
Esas son las direcciones IP de cada equipo y la submáscara de red.

Tendremos la puerta de enlace, la que te haya dado telefónica:
198.xxx.0.1 por ejemplo y luego las IP de cada equipo que nosotros le ponemos las que queramos con tal de que no estén repetidas, por ejemplo:
DIRECCIÓN IP :190.160.0.101
SUBMÁSCARA DE RED:255.255.255.0

Y para internet le habremos puesto la DNS, primaria y Secundaria que también te facilita telefónica.

Host:telefonica
Dominio:telefonica.net

por ejemplo.

Un Saludo.

__hector
24-11-2004, 14:26:20
Las maquinas deben estar en la misma red, si quieres acceder a una u otra utilizando ips como 192.168.0.x, ya que ese rango de ip (clase C) esta reservado para uso privado.

De ninguna forma, el ip publico que puede mostrar una u otra maquina puede estar ni en el rango de 10.x.x.x, ni 172.16.x.x a 172.31.x.x, ni tampoco 192.168

Si quieres saber las direcciones reales que pueden "verse" en internet de cada uno de los routers, puedes verlo en su configuracion, o visitando desde una y otra maquina sitios como www.whatismyipaddress.com que muestran la direccion ip del visitante (la "real")

marcoszorrilla
24-11-2004, 14:27:14
Lo que te estoy diciendo es para una LAN, como citas VPN, no será que lo quieres hacer es ejecutar una aplicación de otra máquina a través de INTERNET?

Un Saludo.

johncook
24-11-2004, 15:59:32
Hola.. Mirá, no se que es lo que intentan explicar en los post anteriores.
Por lo que conozco te puedo decir lo siguiente:
Si en una red se accede a internet a través de un router se pueden dar los siguientes casos:
1- Usando NAT Estática.
2- Usando Sobrecarga de NAT.

En el primer caso, cada máquina de tu LAN tiene asociado un puerto en el router. A través de este puerto el router gestiona las peticiones de tu maquina.
Por ej: la pc 192.168.1.xxx necesita conectarse a www.google.com. Entonces se genera una petición en el router, y éste con su Ip pública hace efectivo el pedido a google.
Por lo tanto google recibe el siguiente paquete IP.
Dirección Orígen = Dirección del Router.
Puerto Orígen = Puerto asignado por el router a la PC 192.168.1.xxx
Dirección Destino = google
Puerto Destino =80
Cuando google contesta, lo único que hace es devolver el paquete solicitado a la IP del router, con el puerto origen de la petición.
Cuando el paquete llega al router, éste se fija en el puerto y de ahí lo envía a la PC que tenga asociada a ese puerto.

Es decir que para mandarle paquetes a la máquina 192.168.0.xxx de tu red interna debés poner como dirección destino la Ip del router, utilizando además el puerto asociado a esa PC.

El segundo caso funciona de igual manera con la diferencia de que la asignación de puertos se hace de manera dinámica. Por lo tanto necesitas si o sí que la aplicación de la red interna, genere un pedido a la aplicación de la otra red desde la que intentas acceder, para que ésta pueda saber el puerto dinámico que le fue asociado a esa Pc.
Espero estar en lo correcto, y no causar mas confunción con lo que posteo.
Saludos

eduarcol
24-11-2004, 16:10:54
Segun lo que he entendido yo estoy en el mismo problema, debo conectarme a una red cuyo ip en internet es 200.xxx.xxx.xxx, luego el servidor donde esta la aplicacion tiene el 192.168.0.1, ahora mi duda es como hago para conectarme al servidor de manera remota utilizando el firebird si el router es el que tiene el ippublico y no el servidor :(

Sergio J.
24-11-2004, 18:25:46
Efectivamente, el acceso que quiero tener es a través de Internet, perdón por no aclarar tan importante punto, no sé como no he podido mencionar esto, lo digo por marcoszorrilla.

Por eso comento lo del router y demás. El caso es que no sé si podré utilizar el puerto junto con la dirección IP de destino al que menciona johncook. Imaginaos que estoy utilizando TSocketConnection (aplicación cliente en Delphi instalada en un PC de una ciudad) para acceder al servidor (aplicación servidor con TRemoteDataModule en Delphi instalada en PC de otra ciudad).

La comunicación entre ambas aplicaciones se realiza a través del protocolo TCP/IP y existe una propiedad en el componente TCocketConnection para la dirección IP del servidor y otra para el puerto del Borland Socket Server.

Creo que me pasa lo mismo que a eduarcol. A ver si alguno dá con la solución y lo ponemos claro porque creo que más de uno tiene el mismo problema de no saber cómo acceder a través del Router.

Un saludo

vic_ia
24-11-2004, 19:21:21
hola....

yo estoy en el mismo caso que eduarcol y Sergio J., aunque por cuestiones de tiempo lo he dejado un poco,... solo he hecho un par de intentos y en cada ocación se me ha pasmado la red... a mi me han sugerido que en el router redireccione el puerto al que llegan las peticiones (dependiendo del tipo de aplicación) a la dirección IP (LAN) de la maquina que se encuentra en la red... esto he checado funciona por ejemplo al utilizar el pc anyware, .... al igual que los mencionados espero alguien encuentre el modo...

nota : al redireccionar los puertos hay que "resetear" el router para que tome los cambios (en mi caso una de las ocaciones que se me pasmo la red fue por este motivo).

saludos...

Sergio J.
07-12-2004, 14:29:07
Tengo la sensación de estar más cerca de la solución a mi problema pero me falta lo más importante, que es llevarlo a la practica y solucionar lo de los puertos en el router.

1º No sé como hacer la petición de puerto sobre el router hacia la máquina x, tal y como menciona johncook cuando menciona...
Si en una red se accede a internet a través de un router se pueden dar los siguientes casos:
1- Usando NAT Estática.
2- Usando Sobrecarga de NAT.


2º En el caso de saber la IP y el puerto de acceso no sé si en la propiedad Address del TSocketConnection se puede añadir el puerto establecido por el router al PC servidor.

3º En tonces para qué sirve la propiedad Port? se supone que es para poner el puerto de escucha del Borland Socket Server (211) ¿No?.

Bueno, creía estar más cerca de la verdad pero es un espejismo.

Espero respuestas...

rolando_s
29-12-2004, 06:15:55
por lo que puedo apreciar:

tienen las ips internas (de las redes lan) fijas.
las ips externas (wang dianmicas) asignadas por el isp

eso complica la comunicacion tcp/ip pero existe una solucion.

un tercer equipo que tenga ip Publica fija que actue como sevidor de nombres

existen algunos servidores web que dan ese servicio
lo que nesesitan es saber la ip Publica del otro equipo y luego la apuntan

200.54.xxx.xxx:192.168.0.x

nota esta (200.54.xxx.xxx) cambia cada x tiempo depende de su isp o de apagados del router, modem Adsl.

para aberiguar tu ip desde internet http://www.cualesmiip.net/

existen otras alternativas una es solicitar al isp ips fijas aunque esto implica un costo adicional

espero les sea de utilidad

Sergio J.
29-12-2004, 10:52:37
Gracias por responder Rolando. La IP sí es fija puesto que es un requerimiento necesario. El problema es la de asignar en el cliente la IP del equipo servidor siendo la IP de este, dentro de la LAN, IP privada.
Osea, que la dirección que hay que poner en el cliente es la del Router (IP pública fija) seguida por dos puntos y la del Servidor (privada del estilo a 192.168.0.X). No lo he probado aún pero si es así lo veo demasiado fácil.

Gracias. Lo probaré en cuanto pueda.

Sergio J.
29-12-2004, 11:31:07
Pues no. Ese formato no lo puedo utilizar en el cliente puesto que debo especificar una dirección IP. El siguiente error es a causa de poner dicho formato 217.216.X.X:192.168.0.X en la propiedad Address de un componente TSocketConnection en un cliente...
Windows socket error: La dirección solicitada no es válida en este contexto (10049), on API 'connect'

Gracias por el intento. Seguiré investigando con vuestra ayuda.

Sergio

DarkByte
29-12-2004, 16:34:07
Se trata de redireccionar la entrada de un puerto al router hacia un ordenador determinado. (www.adslayuda.com para más información sobre tu modelo de router).

Si no se trata de un ordenador solo al que quieres coger recursos y todos están detrás de un router.. te aconsejos que te inventes un protocolo. Te doy la idea:

- Ordenador externo quiere acceder a un recurxo del ordenador X.
- Se conecta al puerto 5335 (por decir uno) del router... que le redirige la petición a un ordenador en la red que se encarga de trabajar las peticiones.
- X se ha conectado con el servidor de peticiones.
- X envía el ordenador al que quiere conectarse.
- El servidor de peticiones hace de "proxy" hacia ese ordenador, con lo que envía todo lo que digas a X.. y te devuelve su respuesta.
- Una vez finalizada la conexión, se liberan todas las conexiones.

Esto es lo único que se me ocurre.. recuerdo que una vez hice algo parecido... veré si tengo el código por aquí...

Si quieres apoyarte en algo: hay primero un servidor y cliente FTP... y luego haces algunos cambios para adaptarlos a esta idea...

Espero haberte ayudado.

rolando_s
29-12-2004, 18:26:46
si tienes ip publica fija

solo tienes que abilitar nat (Network adress translator) en el moden o router
eso segun el modelo que tengas instalado se realisa de diferrente forma

pero los pasos son simples: entras al router o modem adsl (si tienes los dos entras y trasladas en los dos) ablitas nat con ip externa 0.0.0.0 interna la de la maquina y un puerto segun tu nesecidad y apuntas a la ip publica desde el cliente.
Nota: tu isp tiene que ruotear tu puerto como abierto en su serber.

G.L.

Sergio J.
29-12-2004, 18:39:25
Efectivamente, había oído algo así por diferentes puntos. Sin remedio tengo que modificar el router en la red donde se encuentra el servidor para indicar la dirección y puerto que deseo abrir desde el cliente externo.

No lo he hecho nunca, pero supongo que hasta que consiga lo que quiero tendré que tropezar un par de veces.

Gracias.

Sergio

rolando_s
29-12-2004, 18:51:39
por la marca lo buscas existe mucha informcion en los manuales de las fabricas

y ya abri 4 modelos diferentes
son todos parecidos

madman
30-12-2004, 08:21:51
http://www.clubdelphi.com/foros/showthread.php?t=148&highlight=real
:D

DarkByte
30-12-2004, 11:49:52
pero los pasos son simples: entras al router o modem adsl (si tienes los dos entras y trasladas en los dos) ablitas nat con ip externa 0.0.0.0 interna la de la maquina y un puerto segun tu nesecidad y apuntas a la ip publica desde el cliente.
Ese consejo me parece bastante peligroso. Hacer un programa que cambie la configuración de un router ajeno (ya sea vía telnet, vía http o cualquier otro protocolo) es inestable, inseguro e improbable.

Para cambiar la configuración de los routers clientes, la aplicación debería conocer el protocolo de los diferentes routers que se puede encontrar, e incluso sabiendo el protocolo, lo más probable es que sea una persona con decencia en la seguridad y no tenga el router para que se pueda ver y administrar desde el exterior. Y si así fuese, un simple sniffer o herramienta parecida podría sacar la contraseña del router y todo lo que quisiese... No me parece buena idea cambiar la configuración del router con cada conexión.

Además.. ¿imaginas que un cliente de la misma aplicación intenta conectarse a un server dentro de la LAN estando conectado otro cliente en un pc de la misma?.

Desde mi punto de vista, lo mejor es dejar al router aparte, únicamente tocando su configuración (las tablas NAT) para que redirija todas las conexiones en un puerto a UN (1) determinado ordenador.. y que sea este quien distribuya las conexiones (sirva de gateway hacia ellas) que el cliente intenta hacer.

Nota: tu isp tiene que ruotear tu puerto como abierto en su serber.
¿Y que tiene que ver el I.S.P con el serber? El que redirige los puertos es el router... es en él en el que hay que abrirlos...

Hasta pronto

Sergio J.
30-12-2004, 12:54:01
Voy a hacer de abogado del diablo y a romper una lanza a favor de rolando_s a pesar de sus faltas de ortografía (pienso que no domina mucho el español).

No creo que se refiriese a modificar la configuración del router a través de una aplicación ajena al mismo, sino con la aplicación que traiga el router para ese fin. Por lo menos es lo que he interpretado yo. Claro que como no tengo esperiencia en router, a saber.

El caso es que no he tenido todavía oportunidad de conectar a un equipo de la LAN a través del router desde fuera.

A seguir...