Me gustaría acceder a un servidor web tanto desde dentro como desde fuera de mi red doméstica. Entonces tengo mi firewall (pfSense) llamado como ejemplo.com . Desde mi red, puedo acceder a cada máquina por su nombre de host completamente resuelto ( servidor web.ejemplo.com , jenkins.example.com , nas.ejemplo.com etc.). Esto funciona muy bien en todas mis máquinas.
El problema surge cuando intento añadir un acceso externo, concretamente a mi servidor de gitlab. Tengo un dominio y uso un DNS dinámico para actualizarlo y que apunte siempre a mi dirección IP residencial. Luego he abierto el puerto 443 para que apunte a mi IP interna de gitlab y he añadido una entrada CNAME para gitlab.example.com para apuntar a ejemplo.com . Esto funciona como se esperaba, ahora puedo acceder a gitlab.example.com tanto de dentro como de fuera de mi red.
El problema es que OS X ahora tiene un problema para resolver la dirección IP correcta. gitlab ahora resuelve tanto a 192.168.1.XXX como a cualquiera que sea mi dirección IP externa. OS X elige inconsistentemente la IP equivocada para acceder. Cuando yo ping gitlab.example.com
, a veces veré mi IP interna, a veces mi externa. nslookup
siempre parece mostrar la IP interna, mientras que la función de búsqueda de la Utilidad de Red parece mostrar ambas IPs (76.xx.xxx.xxx, 192.168.1.xxx) o sólo la IP externa. Esto sólo parece ser un problema cuando se accede a mi servidor desde la línea de comandos a través de git
. La conexión se interrumpe porque no puede encontrar el servidor.
Usando Chrome, parece que siempre puedo acceder al cliente web, independientemente de la IP que se resuelva. Safari sólo puede acceder al servidor si se resuelve la IP interna. Cuando se utiliza la IP externa, Safari me notifica que no puede abrir la página "porque el servidor donde se encuentra esta página no responde". Puedo "forzar" al sistema operativo a olvidar la IP externa vaciando la caché de DNS ( sudo killall -HUP mDNSResponder
), que funciona durante unos minutos, pero luego vuelve a la IP externa.
No sé por qué se produce este problema. Lo ideal sería que OS X utilizara siempre la IP interna si tiene la opción. Pero incluso si está usando la IP externa, ¿por qué no podría acceder al servidor? ¿Mi ISP está bloqueando el tráfico de bucle invertido desde mi IP hasta mi IP?
La razón por la que estoy publicando esta pregunta aquí, es porque sólo OS X parece tener este problema, y puedo reproducirlo de forma fiable con múltiples Macs. Ni Linux ni Windows parecen tener este problema. Cada uno de ellos siempre resuelve la IP interna cuando está dentro de la red, y la IP externa fuera de la red. Esto es en múltiples máquinas también. No soy exactamente un experto en redes o DNS, así que cualquier ayuda sería apreciada. Es muy probable que tenga una configuración incorrecta en alguna parte, pero no tengo ni idea de por dónde empezar a buscar.