Проблемы с Эластичной Подсистемой балансировки нагрузки EC2 DNS и маршрутизация

Это похоже на AD. В LDAP-AD, фактическом местоположении пользователя в доменных вопросах. Например, возьмите, 'качается', кто живет в определенной Организационной Единице. Его LDAP 'домой':

CN=bobs,OU=Employees,DC=domain,DC=com

Если Вы хотите найти, 'качается' в Сотрудниках:

Base:   OU=Employees,DC=domain,dc=com
Filter: (cn="bobs")

или если Вы хотите найти, что названный Пользователь 'качается'

Filter: (&(objectClass=User)(cn="Bobs"))

Или если Вы просто хотите найти, "качается" везде, где heck он находится в AD:

Base:   DC=domain,DC=com
Filter: (&(objectClass=User)(cn="Bobs"))

Одна вещь, которая делает LDAP, фильтрует трудно для понимания, то, что они используют префиксную нотацию. Вы видите его в действии в сложном фильтре выше, где амперсанд предшествует обоим из своих операторов. Это может сделать для некоторых очень сложно выглядящих операторов.


Что касается AD а именно, существует несколько атрибутов, которые можно использовать для поиска пользователей. "CN" может быть или именем учетной записи или 'Отображаемым именем' на пользователе. 'samAccountName' является первыми 16 символами (я думаю) имени пользователя, если Ваши имена пользователей никогда не получают это долго, это - хороший выбор для фильтрации.

19
задан 15 January 2013 в 03:30
3 ответа

Я нашел этот вопрос, когда искал в Google, как диагностировать Amazon Elastic Load Balancers (ELB), и я хочу ответить на него для всех, кто, как и я, столкнулся с этой проблемой без особого руководства.

ELB Properties

ELBs обладают некоторыми интересными свойствами. Например:

  • ELB состоят из 1 или более узлов
  • Эти узлы публикуются как записи A для имени ELB
  • Эти узлы могут выйти из строя или быть отключены, а соединения не будут не закрываться изящно
  • Часто требуются хорошие отношения со службой поддержки Amazon ($$$), чтобы кто-то разобрался с проблемами ELB

ПРИМЕЧАНИЕ. Еще одно интересное свойство, но немного менее подходящее, - это то, что ELB не предназначены для обработки внезапные всплески трафика. Обычно им требуется 15 минут интенсивного трафика, прежде чем они будут масштабироваться, или их можно предварительно подогреть по запросу через тикет поддержки

Устранение неполадок ELB (вручную)

Обновление: AWS с тех пор переместил все ELB для использования Маршрут 53 для DNS. Кроме того, все ELB теперь имеют запись all. $ Elb_name , которая возвращает полный список узлов для ELB. Например, если ваше имя ELB - elb-123456789.us-east-1.elb.amazonaws.com , то вы получите полный список узлов, выполнив что-то вроде dig all.elb -123456789.us-east-1.elb.amazonaws.com . Для узлов IPv6 также работает all.ipv6. $ Elb_name . Кроме того, Route 53 может возвращать до 4 КБ данных, все еще используя UDP, поэтому использование флага + tcp может не потребоваться.

Зная это, вы можете устранить неполадки самостоятельно. Сначала разрешите имя ELB в список узлов (как записи A):

$ dig @ns-942.amazon.com +tcp elb-123456789.us-east-1.elb.amazonaws.com ANY

Флаг tcp предлагается, поскольку ваш ELB может иметь слишком много записей, чтобы поместиться в один пакет UDP. Мне также сказали, но лично не подтвердили, что Amazon будет отображать только до 6 узлов , если вы не выполните ЛЮБОЙ запрос. Выполнение этой команды даст вам результат, который выглядит примерно так (обрезано для краткости):

;; ANSWER SECTION:
elb-123456789.us-east-1.elb.amazonaws.com. 60 IN SOA ns-942.amazon.com. root.amazon.com. 1376719867 3600 900 7776000 60
elb-123456789.us-east-1.elb.amazonaws.com. 600 IN NS ns-942.amazon.com.
elb-123456789.us-east-1.elb.amazonaws.com. 60 IN A 54.243.63.96
elb-123456789.us-east-1.elb.amazonaws.com. 60 IN A 23.21.73.53

Теперь для каждой из A записей используйте, например, curl , чтобы проверить соединение с ELB. Конечно, вы также хотите изолировать свой тест только от ELB без подключения к вашим бэкэндам. И последнее свойство и малоизвестный факт о ELB:

  • Максимальный размер метода запроса (команды), который может быть отправлен через ELB, составляет 127 символов . Если больше, ELB ответит сообщением HTTP 405 - метод запрещен .

Это означает, что мы можем воспользоваться этим поведением, чтобы проверить только то, что ELB отвечает:

$ curl -X $(python -c 'print "A" * 128') -i http://ip.of.individual.node
HTTP/1.1 405 METHOD_NOT_ALLOWED
Content-Length: 0
Connection: Close

Если вы видите HTTP / 1.1 405 METHOD_NOT_ALLOWED , значит, ELB отвечает успешно. Вы также можете настроить таймауты curl на приемлемые для вас значения.

Устранение неполадок ELB с использованием elbping

Конечно, выполнение этого может быть довольно утомительным, поэтому я создал инструмент для автоматизации этого, который называется elbping . Он доступен в виде рубинового камня, поэтому, если у вас есть rubygems, вы можете установить его, просто выполнив:

$ gem install elbping

Теперь вы можете запустить:

$ elbping -c 4 http://elb-123456789.us-east-1.elb.amazonaws.com
Response from 54.243.63.96: code=405 time=210 ms
Response from 23.21.73.53: code=405 time=189 ms
Response from 54.243.63.96: code=405 time=191 ms
Response from 23.21.73.53: code=405 time=188 ms
Response from 54.243.63.96: code=405 time=190 ms
Response from 23.21.73.53: code=405 time=192 ms
Response from 54.243.63.96: code=405 time=187 ms
Response from 23.21.73.53: code=405 time=189 ms
--- 54.243.63.96 statistics ---
4 requests, 4 responses, 0% loss
min/avg/max = 187/163/210 ms
--- 23.21.73.53 statistics ---
4 requests, 4 responses, 0% loss
min/avg/max = 188/189/192 ms
--- total statistics ---
8 requests, 8 responses, 0% loss
min/avg/max = 188/189/192 ms

Помните, если вы видите code = 405 , это означает, что ELB отвечает.

Дальнейшие действия

Какой бы метод вы ни выбрали, вы, по крайней мере, будете знать, отвечают ли узлы вашего ELB или нет. Вооружившись этими знаниями, вы можете либо сосредоточить свое внимание на устранении неполадок в других частях вашего стека, либо иметь возможность представить AWS довольно разумные аргументы в пользу того, что что-то не так.

Надеюсь, это поможет!

21
ответ дан 2 December 2019 в 20:18

The fix is actually simple: Use an A record rather than a CNAME in Route53.

In the AWS Management Console, choose "A record" and then move the radio button labeled "Alias" to "Yes." Then select your ELB from the dropdown menu.

7
ответ дан 2 December 2019 в 20:18

There are some potential solutions you could try in this AWS developers forum. https://forums.aws.amazon.com/message.jspa?messageID=387552.

For example:

potential fix #1

We had a similar problem when we moved to ELB, we resolved this by сокращение имени нашего ELB до одного символа. Даже имя из 2 символов для ELB вызывал случайные проблемы с разрешениями DNS сетевых решений.

DNS-имя вашего ELB должно быть примерно таким -> X. <9chars> .us-east-1.elb.amazonaws.com

потенциальное исправление №2

Я автор оригинала. Спасибо за все ответы. Мы могли уменьшите частоту возникновения проблем с DNS, установив TTL очень высокий (поэтому они будут кэшироваться не-сетевыми решениями серверов). Однако у нас все еще было достаточно проблем, когда мы просто не мог больше оставаться с Network Solutions. Мы думали о переезде в UltraDNS на основе хороших отчетов об услуге, но похоже Route 53 (который, похоже, использует UltraDNS под прикрытием) будет дешевле для нас. После перехода на Route 53 у нас больше нет DNS issues, and our ELB names can be nice and long too.

There were other things to try in that post but those seem to be the best leads.

0
ответ дан 2 December 2019 в 20:18

Теги

Похожие вопросы