Obtém o alcance da rede IP após o DNS reverso?

2

Para fins de análise, estou olhando para grandes conjuntos de endereços IP em arquivos de log do servidor. Estou tentando realizar pesquisas de DNS reverso para entender de onde o tráfego está vindo. que porcentagem de IPs resolve para corporações, escolas, governo, internacionais etc.

Apesar de um monte de otimizações , individualmente, o DNS reverso de cada endereço IP ainda parece ser bastante caro. Então -

existe alguma maneira de obter um intervalo inteiro de IPs de um DNS reverso?

Se sim, isso pode reduzir bastante o número de pesquisas reais de DNS reverso.

Exemplo (números ligeiramente ofuscados):

  • Arquivo de log contém uma solicitação de um IP 128.151.162.17
  • DNS reverso resolve para 11.142.152.128.in-addr.arpa 21599 IN PTR alamo.ceas.rochester.edu
  • (Então este é um visitante da Universidade de Rochester, rochester.edu)
  • Agora, seria seguro assumir que todos, pelo menos, todos os IPs de 128.151.162.* também serão resolvidos para rochester.edu?
  • E quanto a 128.151.*.* ? Existe uma maneira de obter o intervalo exato de IP?
por Max 10.06.2014 / 16:51

3 respostas

6

Is there any way to obtain an entire range of IPs from a reverse-DNS?

Não é verdade, não; Em casos extremamente raros, você pode fazer uma consulta de transferência de zona DNS para obter todos os registros na zona (o inteiro / 24, geralmente), mas há uma chance muito baixa de que o servidor de nomes que você está consultando responda a isso pedido. Espere uma consulta por endereço para o DNS reverso (desculpe!).

Now, would it be safe to assume that all at least all IPs from 128.151.162.* will also resolve to rochester.edu?

De um modo geral, provavelmente , como uma universidade é provável que eles sejam donos do / 24. No entanto, essa não é uma boa regra para aplicar como um caso geral; uma escola menor pode não ter um conjunto / 24, ou pode não tê-lo no DNS reverso.

O DNS inverso em si vai ser muito bem-sucedido - em muitos casos, serão apenas nomes gerados sob os nomes de host do ISP ou nenhum registro. Para dados melhores, vamos tornar as coisas ainda mais caras - você também deve olhar os dados do whois.

Por exemplo, aqui estão as informações do IP de Rochester - mostra o tamanho da alocação (o intervalo inteiro / 16, portanto, neste caso, que se aplica a 128.151.*.* ) e a organização para a qual ele está alocado.

A informação whois deve fornecer uma ótima fonte de informações para a informação que você deseja e tem a vantagem de poder ver a faixa que se aplica. A desvantagem é que, para alocações menores, um intervalo geralmente é exibido como pertencente ao ISP em vez do cliente final. Combinar whois e DNS reverso deve fornecer as melhores informações (e ser ridiculamente lento).

    
por 10.06.2014 / 17:15
2

Você geralmente pode obter informações sobre netblocks de whois (por exemplo, whois 128.151.162.17 refere-se a CIDR: 128.151.0.0/16 ), mas você provavelmente descobrirá que há alguma variação no formato das respostas obtidas, dependendo de qual registro está envolvido e também que servidores whois provavelmente limitarão o número de solicitações que você pode fazer. Observe também que os netblocks são normalmente aninhados com os menores dentro de maiores, e assim você pode obter informações sobre vários netblocks para um IP.

Um pacote de solicitação de DNS pode conter várias solicitações, o que pode acelerar as coisas se você precisar resolver muitas solicitações, mas as principais técnicas de que você precisa são paralelizar solicitações e armazenar respostas em cache.

    
por 10.06.2014 / 17:55
2

Recomendações gerais sobre esse tipo de algoritmo:

Geralmente, você encontrará os dados quase infinitamente armazenáveis em cache. Os dados são alterados tão raramente que você também pode fazer isso em lote e salvar os dados em um cache em disco usado por todos os seus códigos. O TTL nos dados pode ser de 1 hora, mas quando eu estava no projeto de mapeamento da internet, descobrimos que, no que diz respeito aos domínios que mudam, os dados ficaram estáveis por mais de um ano.

Se você estiver realizando muitas consultas ao DNS, limite a quantidade de mensagens enviadas para um determinado servidor DNS. Caso contrário, é na melhor das hipóteses rude e um ataque DoS na pior das hipóteses.

  • Se você puder gerar todas as consultas ao DNS que planeja fazer antecipadamente, elas se encaixarão na RAM ou no disco, gerarão a lista, randomizarão e, em seguida, farão as pesquisas em ordem aleatória.
  • Uma maneira preguiçosa de fazer isso, que não requer enumerar todas as consultas antecipadamente, é espalhar as consultas entre todos os blocos do CIDR. Ou seja, se você estiver fazendo 500 blocos CIDR, faça o endereço .1 em todos eles, depois o endereço .2 em todos eles, depois o endereço .3, etc. O resultado é que você coloca menos ênfase no indivíduo. Servidores DNS. (isso funciona particularmente bem se você estiver fazendo milhares de pesquisas em milhões de blocos CIDR)

Se você está fazendo as pesquisas "on demand", basta usar algum tipo de cache write-through e você deve estar bem.

    
por 13.06.2014 / 16:37