Como encontro todos os IPs conhecidos de um determinado domínio no Linux?

2

Eu sou um desenvolvedor em um projeto que usa servidores amazon para testes. Estou mudando de usar FoxyProxy para roteamento com iptables porque é mais conveniente.

O problema que tive é que, ao executar a resolução de DNS, descubro que mais de um endereço é retornado com várias chamadas para resolver um determinado domínio.

Por exemplo:

$ host sample.domain.com
sample.domain.com has address 50.200.80.100
$ host sample.domain.com
sample.domain.com has address 50.200.80.101

Este é um grande contraste para o Google que:

$ host www.google.com
www.google.com has address 74.125.225.81
www.google.com has address 74.125.225.80
www.google.com has address 74.125.225.84
www.google.com has address 74.125.225.82
www.google.com has address 74.125.225.83
www.google.com has IPv6 address 2607:f8b0:4009:803::1012

Atualmente, estou resolvendo o host muitas vezes para criar uma lista de IPs e usá-lo para definir as rotas do iptable. Existe uma maneira melhor de fazer isso?

Observação: não tenho acesso para alterar nada sobre o servidor, portanto, qualquer solução sugerida terá que ser do lado do cliente.

    
por Tiris 02.12.2014 / 15:33

2 respostas

1

A maioria dos sites de alto tráfego tem vários servidores front-end que atendem ao tráfego. Principalmente, cada um desses endereços IP seria um balanceador de carga, atrás do qual haveria um número ainda maior de servidores.

Se você estiver interessado em obter o registro "A" de um domínio, use o comando dig , nslookup ou host . Se você estiver usando Linux , então o comando dig seria a maneira preferida de obtê-lo.

$ dig A google.com +short @8.8.8.8
74.125.236.167
74.125.236.160
74.125.236.169
74.125.236.168
74.125.236.161
74.125.236.162
74.125.236.164
74.125.236.163
74.125.236.165
74.125.236.174
74.125.236.166

O comando acima reúne todos os registro "A" (Endereço) do domínio google.com . Cada vez que você consultá-lo, você receberá o mesmo conjunto de endereços IP, mas em uma ordem diferente.

Não sei ao certo que tipo de regra iptables você usará, mas principalmente o registro "A" pertencerá à mesma rede, como 74.125.236.0/24 com base em meu dig saída.

    
por 04.12.2014 / 14:30
0

Infelizmente, não há maneira fácil de fazer isso.

Se você fosse capaz de fazer uma transferência de zona da zona google.com, poderia analisar todos os registros A e AAA. No entanto, o google não permite transferências de zona públicas e, mesmo que o fizessem, seus dados de DNS provavelmente mudam com frequência.

O Google publica seus intervalos de rede atuais em um registro TXT do DNS. link

$ nslookup -q=TXT _netblocks.google.com 8.8.8.8
$ nslookup -q=TXT _netblocks2.google.com 8.8.8.8

Você também pode usar o WhoIS do ARIN para procurar um endereço IP ou empresa. link

Tenha em mente que os blocos de rede podem ser registrados para ISPs e os subconjuntos podem ser dados para uma organização específica.

    
por 02.12.2014 / 19:15