Como interceptar e manipular consultas DNS?

5

Não tenho certeza se escrevi a pergunta corretamente para ser honesto, mas basicamente o que eu quero fazer é:

Quando um usuário digita algo como Despesas na barra de URL de um navegador, quero que o navegador seja direcionado para um endereço da Web específico (muito parecido com o funcionamento dos atalhos do OpenDNS)

O endereço IP do endereço da web não será alterado entre os diferentes "atalhos" ... ou seja:

mycompany.com = 10.0.0.0

mycompany.com/expenses = 10.0.0.0

mycompany.com/tracker = 10.0.0.0

Quando um usuário digita despesas na barra de endereço do navegador e pressiona enter, desejo que o navegador direcione automaticamente para o endereço especificado acima.

Isso seria complicado de implementar? Espero ter colocado a minha pergunta de forma adequada: -)

Notas adicionais:

  • Estamos em um ambiente do Windows

  • Acredito que o servidor do Exchange esteja executando como o servidor DNS no escritório

por emtunc 15.01.2011 / 13:27

6 respostas

8

Que tal criar uma entrada de DNS para "expenses.mycompany.com" que envia para um servidor da Web com uma regra de redirecionamento de despesas.mycompany.com - > mycompany.com/expenses?

Desde que os clientes tenham um sufixo DNS de "minhaempresa.com", eles converterão "despesas" em despesas.minhaempresa.com e acessarão esse servidor da Web.

Isso significa algumas entradas de DNS extras e alguns hosts virtuais no servidor que não fazem nada além de redirecionar para as URLs "reais"?

    
por 15.01.2011 / 16:26
7

Embora não seja exatamente o que você procura, por que não usar um encurtador de URL em seus servidores internos? Em seguida, você pode configurar um host virtual no servidor que hospeda o encurtador de URL e fazer algo como:

http://go/expenses
http://go/tracker

O encurtador de URL irá reescrever isso para o seu URL interno necessário. Há um exemplo de um encurtador de URL .NET aqui .

A outra alternativa é que, como diz mfarver, você precisará configurar um registro DNS apontando para um host que leia as solicitações de cabeçalho do host e redirecione adequadamente. Isso precisaria ser feito por meio de uma regra de regravação de URL no IIS (ou apache se você quiser executá-lo no Windows) ou algum código para fazer todo o trabalho para você. Ambos fazem basicamente a mesma coisa que o encurtador de URL.

    
por 15.01.2011 / 17:11
3

Defina seu domínio de pesquisa de DNS para os clientes, por exemplo, company.com

Crie cnames para despesas, etc., que apontam para o servidor web

Publique cada URL de "destino" como seu próprio site no servidor da Web (por exemplo, webserver.company.com/expenses torna-se expenses.company.com ) e use o host cabeçalhos para direcionar navegadores ao acessar o servidor da Web (talvez seja necessário mexer nos cabeçalhos de host para determinar se você precisa adicionar apenas despesas ou expenses.company.com como cabeçalho do host)

Isso funciona ... envolve um pouco de correção e compromisso, mas funciona . Fazemos isso com alguns dos nossos serviços internos. Como Ben observa em seu comentário à boa resposta de Jon Angliss, às vezes você tem que aceitar um pouco de trabalho e compromisso.

    
por 15.01.2011 / 19:01
2

O DNS não sabe nada sobre URLs. Então, fazer isso com o dns é impossível. O que você pode fazer é configurar um servidor proxy que todos os clientes devem usar para acessar a web e você pode fazê-lo dessa maneira.

Ou apenas tenha um proxy www antes do seu servidor da Web que envia solicitações com base no seu para o IP correto

    
por 15.01.2011 / 15:30
0

Eu sempre fui confuso sobre isso mesmo. Então, aparentemente, você precisa de uma combinação de redirecionamentos HTTP CNAME e . DNS relaciona um nome DNS a um endereço IP no caso de um Um registro . Um CNAME é um alias para um Um registro . Considerando que o redirecionamento HTTP lida com URLs.

Alguém mais do que brighthub escreveu um howto para um atalho interno de url do helpdesk .

Em resumo, as etapas são:

  1. Configure um registro cname no seu servidor DNS para cada atalho desejado
  2. Configurar redirecionamentos HTTP para cada atalho desejado usando seu servidor da web (o IIS é usado no howto)
  3. Adicione o código de redirecionamento ao seu arquivo index.html

<meta http-equiv="Refresh" content="0;URL=http://www.mydomain.com/newpage.html"/>

    
por 15.01.2011 / 17:41
0

Você mencionou que este é um ambiente Windows, mas não nos diga em que os sites estão hospedados. Eu estou supondo que o Windows também, mas assumindo 2008 como você não afirma. Se você tiver o IIS instalado no servidor que hospeda "domain.com" e todas as subpastas, será necessário instalar o módulo URL Rewrite (os detalhes podem ser encontrados aqui ).

Uma vez instalado, você precisará criar entradas de DNS para "Despesas" e "rastreador". Estes podem ser registros CNAME / Alias apontando para a entrada domain.com. Uma vez criado, abra um prompt de cmd em uma máquina desktop e digite:

ipconfig /flushdns
ping expenses
ping domain.com

A resposta para ambas as declarações de ping deve ter o mesmo endereço IP. Depois que o DNS tiver sido confirmado, você precisará acessar o servidor da Web que hospeda domain.com e criar uma regra de reconfiguração do IIS semelhante a esta:

<rule name="Canonical Host Name" stopProcessing="true">
  <match url="(.*)" />
    <conditions>
      <add input="{HTTP_HOST}" pattern="^expenses$" />
    </conditions>
  <action type="Redirect" url="http://company.com/expenses" redirectType="Permanent" />
</rule>

Isso deve ser pelo menos suficiente para você começar. Repita para qualquer outro nome "rápido" que você queira usar.

    
por 15.01.2011 / 19:49