Tengo estas dos topologias en el trabajo y las siguientes configuraciones:
IP LAN: 192.168.1.X
IP Router Zyxel1: 192.168.1.4
IP Router Zyxel2: 192.168.4.1
IP Router-Debian eth0: 192.168.1.36
IP Router-Debian eth1: 192.168.4.2
IP's estaticas y publicas de los router zyxel
En la topologia 1, des de casa, hago un escritorio remoto a un host de la LAN y me funciona (caso senzillo)
Pero el mismo caso en la topologia 2 no llega. Lo que quiero saber es como (se como se hace en el router) puedo mappear los puertos del router, para que a partir de hacer pings des de mi casa, sepa donde falla. Casi seguro que es en el Router-Debian, ya que este no hace NAT, cosa que si que hace el router Zyxel.
Esto tiene alguna solución? Ayuda por favor. Una vez tenga esto resuelto del ping a host internos de la LAN, ya podre desempeñar otras funciones.
#---------- # activar el reenvio de paquetes para permitir que # pasen por la maquina paquetes que no son para ella #---------- echo 1 > /proc/sys/net/ipv4/ip_forward
#---------- # reglas de iptables para que las dos subredes a las # que esta conectada la maquina debian se "vean" # 192.168.4.0/255.255.255.0 con 192.168.1.0/255.255.255.0 #---------- iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
y por ultimo ... el tema de conectar desde inet a un servicio de una maquina de dentro de la LAN ... con la topologia1 solo hay que "abrir" puertos en el router zyxel1 para que funcione PERO con la topologia2 hay doble NAT (primero en el router zyxel2 y luego en la maquina debian) y por ello tienes que "abrir" puertos primero en el zyxel2 y luego en la maquina con debian.
A las reglas anteriores deberias añadir reglas como las siguientes
#---------- # ejemplo #---------- iptables -t nat -A PREROUTING -i <interfaz de entrada> -p <protocolo> --dport <puerto> -j DNAT --to-ip <ip privada de la maquina a la que se va a acceder>:<puerto>
#---------- # ejemplos maquina interna con ip privada 192.168.1.123 #----------
|------------------[zyxel]----------- Internet
|eth1
LAN-----------[router-Debian]
eth0 |eth2
|------------------[zyxel]------------- Internet
Un router-linux con 3 interfaces ethernet (eth0, eth1 y eth2), donde la eth0 esta conectada con la LAN, la eth1 esta conectada a un router zyxel que da conexión a internet y eth2 a otro router zyxel tambie´ne a internet, este router-linux hace balanceo, QoS, proxy, etc...
Si tengo que configurar NAT en el router linux, este NAT se lo tengo que aplicar a cada una de las interficies?
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth2 -j MASQUERADE
seria asi? me refiero a lo de -o, cuando se refiere a output teniendo en cuenta la topologia. No seria -i para las interfaces eth1 y eth2?
Como dice ErNi_, tienes que enmascarar el tráfico que viene de la red local y va hacia el exterior (por el interfaz eth1 o eth2), así que sólo necesitarías las 2 reglas:
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth2 -j MASQUERADE
Hay una delicada línea entre pescar y hacer el imbécil a la orilla de un río.
Pero me ha surgido un pequeño problema, si en vez de tener uina sola salida a internet, tengo 2, y estoy haciendo balanceo, aplicando la forma que dices, no me va. Es decir, tengo esta topologia:
#---------- # activar el reenvio de paquetes para permitir que # pasen por la maquina paquetes que no son para ella #---------- echo 1 > /proc/sys/net/ipv4/ip_forward
#---------- # reglas de iptables para que las dos subredes a las # que esta conectada la maquina debian se "vean" # 192.168.4.0/255.255.255.0 con 192.168.1.0/255.255.255.0 #---------- iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
y por ultimo ... el tema de conectar desde inet a un servicio de una maquina de dentro de la LAN ... con la topologia1 solo hay que "abrir" puertos en el router zyxel1 para que funcione PERO con la topologia2 hay doble NAT (primero en el router zyxel2 y luego en la maquina debian) y por ello tienes que "abrir" puertos primero en el zyxel2 y luego en la maquina con debian.
A las reglas anteriores deberias añadir reglas como las siguientes
#---------- # ejemplo #---------- iptables -t nat -A PREROUTING -i <interfaz de entrada> -p <protocolo> --dport <puerto> -j DNAT --to-ip <ip privada de la maquina a la que se va a acceder>:<puerto>
#---------- # ejemplos maquina interna con ip privada 192.168.1.123 #----------
[quote="Anonymous"]agasdfasdfasdfaseawa reg[/quote]¿Y sabe alguien cómo hacer lo mismo pero sólo para una red?
es decir, si tengo un router con dos interfaces, una 192.X.X.X (eth1) , y una 10.X.X.X (eth0)
La que tiene acceso a Internet es la eth0
La idea es que tengo el
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Y funciona de pelos, pero lo que necesito ahora es que sólo lo que viene de la red 192 (eth1) salga enmascarado por la eth0 (a Internet)
pero los equipos que están conectados con IP 10.X.X.X, que utilicen cómo GW la eth0 del router, pero que no salgan enmascarados. Esto porque hay aplicaciones que necsitan acceder dierctamente a los equipos de la red 10.X.X.X y si los paquetes salen enmascarados, me fuerza a hacer redireccionamientos para cada equipo en la lan y es lo que pretendo evitar.