2

Я разработчик проекта, который использует серверы Amazon для тестирования. Я переключаюсь с использования FoxyProxy на маршрутизацию с iptables потому что это более удобно.

Проблема, с которой я столкнулся, заключается в том, что при выполнении разрешения DNS обнаруживается, что более одного адреса возвращается с несколькими вызовами для разрешения данного домена.

Например:

$ 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

Это резко контрастирует с Google, который:

$ 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

В настоящее время я многократно разрешаю хост для создания списка IP-адресов и использую его для настройки iptable-маршрутов. Есть лучший способ сделать это?

Примечание: у меня нет доступа, чтобы что-либо изменить на сервере, поэтому любое предлагаемое решение должно быть на стороне клиента.

2 ответа2

1

Большинство сайтов с высоким трафиком имеют несколько интерфейсных серверов, обслуживающих трафик. В основном каждый из этих IP-адресов будет балансировщиком нагрузки, за которым будет еще больше серверов.

Если вы заинтересованы в получении записи "A" для домена, вы можете использовать команду dig , nslookup или host . Если вы используете Linux то команда dig будет предпочтительным способом ее получения.

$ 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

Приведенная выше команда собирает все записи "A" (адрес) домена google.com . Каждый раз, когда вы делаете запрос, вы получаете один и тот же набор IP-адресов, но в другом порядке.

Я не уверен, какое правило iptables вы собираетесь использовать, но в основном запись "A" будет принадлежать той же сети, что и 74.125.236.0/24 основываясь на моих выводах dig .

0

К сожалению, нет простого способа сделать это.

Если вы смогли выполнить передачу зоны google.com, вы могли бы проанализировать все записи A и AAA. Тем не менее, Google не разрешает передачу из публичной зоны, и даже если они сделали, их данные DNS, вероятно, часто меняется.

Google публикует их текущие диапазоны сети в записи DNS TXT. https://support.google.com/a/answer/60764?hl=en

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

Вы также можете использовать WhoIS ARIN для поиска IP-адреса или компании. http://whois.arin.net/rest/net/NET-74-125-0-0-1/pft

Имейте в виду, что сетевые блоки могут быть зарегистрированы для интернет-провайдеров, а подмножества могут быть переданы конкретной организации.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .