El problema

El problema

La entrada del blog "Un servicio 'tinyurl' para tu dominio" explica cómo configurar un servicio ShortName para su dominio usando Google Apps. Por ejemplo, si su dominio es example.comy usa Google Apps, puede configurarlo para que http://go.example.comsea el servicio ShortName personal de su empresa.

NOTA: No se trata de crear un servicio "tinyurl" para que lo utilice el mundo. Esto es para una empresa.

Es útil tener un servicio de nombres cortos que sólo sus usuarios puedan usar para que pueda crear enlaces a páginas internas. En lugar de decirle a la gente una URL larga y difícil, puedes decir: "El menú del almuerzo de hoy está enhttp://go.example.com/lunch". La publicación del blog documenta algunos de los beneficios de capacitar a las personas para que configuren sus propios enlaces. (Lo más importante: ¡no tienen que molestarse a USTED para configurar un nuevo enlace!)

El problema

El problema del sistema es que la URL todavía es bastante larga. La gente prefiere escribir "ir/almorzar" en su navegador web y que funcione. Lamentablemente, Google Apps no puede admitir esto debido a un aspecto técnico de cómo funciona el protocolo HTTP. El encabezado "Host:" en HTTP 1.1 enumera el dominio que el usuario escribió en su navegador web, no elFQDN. En otras palabras, cuando Google Apps recibe la solicitud HTTP de "http://ir/almuerzo" el servidor web recibe "go" como nombre de host. Dado que Google Apps proporciona este servicio para muchos dominios, no puede saber si desea go.example.como go.some-other-example.com.

Como resultado, los usuarios tienen que escribir "go.example.com/lunch" cada vez, lo cual es mucho más largo que "go/lunch".

La solución

Google podría solucionar esto utilizando cookies web o algún otro esquema. Ninguno de los cuales es particularmente limpio o fácil. Hasta que lo hagan, puedes resolver el problema configurando una máquina propia que acepte solicitudes como "ir" y las redirija.

El servidor acepta solicitudes HTTP para un sitio llamado "ir" y redirige la solicitud a go.example.com. Luego, crea los registros DNS correctos para que funcione y modifica sus configuraciones de DHCP para que sus computadoras portátiles/estaciones de trabajo hagan lo correcto.

El objetivo de este documento sobre fallas del servidor es explicar el proceso y luego brindar ejemplos de configuración para ayudarlo a hacer esto en su sitio. Como no tengo acceso ni conocimiento de todos los sistemas operativos del mundo, estoy haciendo de esto un "wiki comunitario" para que las personas puedan completar fragmentos de configuración a medida que lo hacen funcionar para ellos. He puesto 'TODO' en el área que necesita mejoras en particular.

Los detalles

En este ejemplo usaremos "ejemplo.com" como dominio.

Paso 1: configure el servicio Google Apps de la forma habitual.

Configure el servicio con go.example.comnormalidad. Pruébelo y asegúrese de que una URL como http://go.example.com/foofuncione. No continúe si esto no está completo. Sería como intentar reparar su automóvil antes de tener uno.

Paso 2: seleccione el nombre de host de su redirector

Si su servicio de nombre corto es go.example.com, lo ideal sería que el nombre de su redirector fuera go.example.com. Lamentablemente, la física impide que dos cuerpos estén en el mismo lugar al mismo tiempo y el DNS obedece las leyes de la física.

El truco consiste en hacer que el redirector tenga el mismo nombre de host que el servicio ShortName, pero en un dominio diferente. Por ejemplo, go.corp.example.com, go.ext.google.como go.this-is-different.example.com.

Las grandes empresas suelen tener un subdominio interno que no está expuesto al mundo exterior. Generalmente los hosts internos son INSIDEHOST.corp.google.com. Ahí es donde pones el redirector.

Algunas empresas asignan un subdominio que está lleno de CNAME que apuntan a servicios a los que se debe acceder tanto desde dentro como desde fuera de la empresa. De esa manera, hay un subdominio que debe colocarse en la ruta de búsqueda de DNS de las personas. (La gente de Unix puede pensar que esto es /usr/local/binun subdirectorio lleno de enlaces simbólicos) Tradicionalmente, este subdominio es ext.example.com. En ese subdominio hay CNAME como mail.ext.example.com, calendar.ext.example.com, vpn.ext.example.cometc.)

Advertencia: Agregar otro elemento más a su ruta de búsqueda de DNS es otra forma de hacer que sus computadoras funcionen más lentamente. Hacer una consulta DNS adicional CADA VEZ es lento y navegar por la web será notablemente más lento. Es mucho mejor agregar este redirector a un subdominio que ya se encuentra en la ruta de búsqueda DNS de su máquina, incluso si esto significa agregar un CNAME en múltiples subdominios. Por ejemplo, si sus máquinas internas y las máquinas conectadas a su VPN corp.example.comya están en su ruta de búsqueda, agregue el CNAME allí. Si desea que las máquinas externas que no están conectadas a VPN puedan acceder al redirector, puede resultar extraño codificar corp.example.comsu ruta de búsqueda si ese es el subdominio para las máquinas a las que nunca se accede desde el exterior. En ese caso, se puede agregar otro CNAME a un subdominio externo (como ext.example.com) para que apunte al redirector. Actualice la configuración del servidor web para que admita ambos.

Para este ejemplo, supongamos que ha seleccionado que el redirector será go.ext.example.com. La máquina se puede llamar como quieras, haremos toda la magia en DNS y la configuración del servidor web.

Paso 3: Planificación de su redirector

El servidor web que va a configurar puede estar en un servidor web existente o en uno nuevo creado exclusivamente para este propósito. La clave es que la máquina debe ser accesible desde cualquier lugar donde desee que funcione el servicio ShortName: dentro de la empresa, fuera de la empresa, cuando el usuario esté conectado a través de VPN. (Puede optar por evitar que esto funcione desde fuera de la empresa por razones de seguridad. También puede, por razones de seguridad, configurar una máquina en el interior y otra en el exterior).

Nota: No es necesario configurar un nuevo servidor web para esto. Puede agregar esto a un servidor web preexistente siempre que la configuración no exista.

Nota: Esto puede resultar bastante complicado. Es posible que desee concentrarse en hacer que esto funcione en el caso más simple y luego, una vez que esté funcionando y probado, hacerlo funcionar en otras situaciones. En particular, haga que funcione en este orden: 1. estaciones de trabajo/portátiles dentro de la empresa 2. LUEGO máquinas conectadas mediante VPN, luego máquinas fuera de la empresa (por ejemplo, en un cibercafé). 3. ENTONCES máquinas fuera de la red, sin la VPN activa 4. ENTONCES pruebe esto para otros sistemas operativos

En este ejemplo, asumiremos que hay un servidor web al que se puede acceder desde la misma dirección IP, ya sea que se encuentre dentro o fuera de la empresa.

En nuestro "ir".corporación.example.com", esto significa que "ir" está en un subdominio al que solo pueden acceder usuarios internos y requiere una VPN para usar el servicio ShortName. Dado que Google Apps generalmente está configurado para funcionar sin una VPN (porque todo el acceso es HTTPS), esto no es óptimo.

En nuestro "ir".extensión.ejemplo.com", esto significa que se puede acceder al subdominio tanto desde dentro como desde fuera de la empresa, y el Aregistro apunta a una dirección IP externa.

Paso 4: agregue registros DNS para su redirector

Estos son los registros DNS requeridos:

go.example.com.                IN CNAME ghs.google.com.
go.ext.example.com.            IN A 64.32.179.5
go-redirector.example.com  IN A 64.32.179.5

El primer registro DNS (go.example.com) ya debería existir como parte del Paso 1.

El segundo registro DNS (ir.extensión.example.com) es un Aregistro que apunta a la dirección IP del nuevo servidor web que está configurando.

El tercer registro DNS (go-redirector) es para ayudarle durante la depuración.

Paso 5: configurar el servidor web

Agregue la redirección al servidor web. (Esto supone que el servidor web ya está instalado y ejecutándose).

Aquí está el fragmento de configuración de Apache:

<VirtualHost *:80>
        ServerName go-redirector.example.com
        ServerAlias go, go.ext, go.ext.example
        RewriteEngine on
        RewriteRule ^(.*)$ http://go.example.com$1 [R=permanent]
</VirtualHost>

Cómo probar esto. http://go-redirector.example.comdebería funcionar en este punto.

No continúe hasta que esta prueba funcione. Pequeños pasos.

Paso 6: Configurar la ruta de búsqueda DNS del cliente

Ahora vamos a configurar las máquinas (cualquier cosa que ejecute un navegador web) para que la ruta de búsqueda de DNS incluya "ext.example.com".

En su servidor DHCP y servidor VPN envíe una ruta de búsqueda DNS que sea:

corp.ejemplo.com .

(el subdominio con el host de redireccionamiento, seguido de ".")

Alternativamente, puedes utilizar una ruta de búsqueda como:

corp.ejemplo.com ejemplo.com .

Sin embargo, eso agregará una búsqueda de DNS adicional para CADA maldita página web a la que accedamos. Dado que fallarán el 99% de las veces, eso sólo hará que la navegación web sea lenta.

En estaciones de trabajo y portátiles, debe asegurarse de que el subdominio esté incluido en su ruta de búsqueda de DNS. De esa forma, cuando el usuario escriba "ir", el software lo encontrará en el dominio.

Queremos configurar la ruta de búsqueda de la máquina para incluir este subdominio en todas las formas en que se pueda configurar la ruta de búsqueda:

Originalmente, la ruta de búsqueda de DNS no se podía configurar mediante DHCP. Esta es una característica recién agregada y no todos los clientes DHCP la admiten. Incluso los clientes DHCP que sí lo admiten deben modificarse porque cuando una computadora portátil está (por ejemplo) en un cibercafé, está hablando con un servidor DHCP que usted no controla. Cuando una computadora portátil usa una VPN, el software del cliente VPN en realidad no usa DHCP, pero generalmente hay alguna forma de que el servidor VPN transmita la configuración que normalmente se obtendría de un servidor DHCP.

Por lo tanto, desea configurar la ruta de búsqueda DNS en todos estos lugares:

  • El servidor DHCP debe enviar las opciones de ruta de búsqueda DNS
  • Las máquinas configuradas estáticamente deben tener configurada su ruta de búsqueda DNS
  • Los clientes que usan DHCP deben configurarse para anteponer el corp.example.comdominio a su ruta de búsqueda si el servidor DHCP aún no lo incluye.

A continuación encontrará instrucciones sobre cómo hacer esto en varios servidores DHCP y sistemas operativos.

Configuración de servidores DHCP para incluir una ruta de búsqueda DNS:

  1. Instrucciones DHCP de Windows

HACER

  1. Instrucciones DHCP de ISC

Si la ruta de búsqueda es solo el dominio en el que debería estar la máquina, entonces:

option domain-name "corp.example.com";

Si los clientes admiten RFC 3397 para proporcionar una ruta de búsqueda, entonces puede hacer esto, pero es incómodo ya que no hay soporte nativo para un tipo de datos que es una secuencia de hosts DNS, cada uno codificado como etiquetas con prefijo de longitud como en DNS. No hay forma de escribir los valores de una opción definida como una matriz de registros, donde el registro contiene una matriz de otro registro, por lo que debe usar una cadena de datos para codificar cosas manualmente.

option dns-search-domains code 119 = string;
option dns-search-domains concat(
    encode-int(4,1), "corp", encode-int(7,1), "example", encode-int(3,1), "com", encode-int(0,1),
    encode-int(7,1), "example", encode-int(3,1), "com", encode-int(0,1)
    );

que debería (no probado) generar una lista de búsqueda de dos elementos.

  1. instrucciones DHCP dnsmasq

HACER

Configuración de máquinas configuradas estáticamente:

  1. ventanas

HACER

  1. Linux/Unix

Edite /etc/resolv.confy asegúrese de que (1) el "dominio corp.example.com" sea la primera línea, (2) agregue/edite la línea "búsqueda" para incluir el corp.example.comdominio, (3) agregue una línea "opciones ndotes:2" a reduzca la carga en sus servidores DNS.

domain corp.example.com
search corp.example.com exmaple.com
options ndots:2

Configurar clientes DHCP para que funcionen en otros servidores DHCP

TODO para completar para Windows, Linux, etc.

Paso 7: ¡Prueba, prueba, prueba!

Ahora los usuarios deberían poder especificar:

http://go/foo http://go.ejemplo/foo http://go.example.com/foo

De hecho, como prueba de confianza, querrás probar esas URL en todas las situaciones:

( each OS you support ) * ( internal LAN / at an Internet cafe / while on the VPN )

Paso 8: Otros consejos

Y por último, un pequeño consejo: incluso si hubiera hecho un trabajo perfecto con esto, aún corre el riesgo de que un http://go/fooenlace no funcione cuando una persona intenta escribirlo en una computadora que no configuró para forzar la búsqueda de DNS. ruta para incluir su dominio. Por lo tanto, debería publicar enlaces utilizando la URL completa: http://go.example.com/foo; y tómese el tiempo para educar al departamento de relaciones públicas de su empresa y a otros para que siempre lo especifiquen de esa manera.

O al menos codificarlos en HTML para que "ir" sea visible en el texto del enlace, pero el HREF real vaya al FQDN:

<a href="http://go.example.com/lunch">go/lunch</a>

Enseñar a la gente del departamento de relaciones públicas a hacer esto puede resultar difícil. Quizás quieras decirles que tienen que usar la versión larga ( go.example.com) en todo lo que escriban porque la versión corta "ir/almorzar" sólo funciona por accidente.

Paso 8: HTTPS

TODO: Descubra cómo hacerlo con HTTPS (las certificaciones serán muy difíciles, si no imposibles, de lograr correctamente).

Respuesta1

Esta pregunta debe marcarse como "respondida" de una forma u otra. De esta manera, elhttps://serverfault.com/unansweredLa URL seguirá siendo correcta. Por favor (publice y) acepte una "respuesta" a esta pregunta. ¡Gracias!

Mi "respuesta" sería que crear (o instalar) un servicio de acortamiento de enlaces es muy fácil y, en lugar de pasar por todos los obstáculos anteriores, simplemente configure un acortador de enlaces local en un servidor web que responda "ya". ejemplo.com" y asegúrese de que su DNS responda la búsqueda de ejemplo.com. De esa manera, no filtrará las URL internas al mundo. (Posiblemente me estoy perdiendo el punto).

Alternativas:

  • Para una empresa o grupo de trabajo muy pequeño, pregunte a todos cuáles son sus marcadores favoritos y busque un espacio para colocarlos en la página principal de la intranet.

  • Alternativamente, implemente la Intranet para su pequeña empresa o grupo como un wiki, con una lista útil de enlaces compartidos para ayudar a las personas a llegar a donde probablemente quieran ir.

Saludos, -danny

información relacionada