Рейтинг:0

Как в AWS ENI моего прокси-сервера squid может стать черной дырой в моей таблице маршрутов, если экземпляр EC2 все еще существует?

флаг zw

введите описание изображения здесь

Гуглил как сумасшедший, ответа не нашел. У нас есть три зоны доступности/подсети, так как мы находимся в Огайо. Но эта диаграмма достаточно близка, чтобы объяснить проблему.

Мы настроили прокси-серверы squid для фильтрации исходящего трафика от одного из наших сервисов.

  1. В каждой зоне доступности серверы приложений находятся в частной подсети.
  2. Тогда есть прокси в каждом публичный подсеть для этой AZ.
  3. Таблица маршрутов для частной подсети указывает 0.0.0.0 на ENI прокси-сервера в соответствующей общедоступной подсети.

Со временем исходящий трафик из каждой подсети умер. Нам потребовалось немного времени, чтобы понять, что пошло не так, поэтому, когда каждая подсеть умирала, мы удаляли экземпляры в этой подсети из ALB для службы и продолжали работать с заковылявшей службой, пока мы исследовали. Вчера умерла третья подсеть, и мы решили «направить» прокси-серверы непосредственно на шлюз NAT для каждой подсети. Когда мы добрались до таблицы маршрутизации, мы заметили, что ENI каждого прокси-сервера указан как черная дыра.

Мы проверили

  1. Журналы экземпляра прокси
  2. время распределения ENI и
  3. Журналы Cloudtrail

... в поисках каких-либо указаний на то, почему ENI стали недействительными, нарушив наши маршруты по умолчанию. Вообще ничего полезного.

  1. Экземпляры работают уже более трех недель
  2. Отметка времени выделения ENI совпадает со временем создания экземпляра.
  3. Журналы загрузки не показывают никаких перезагрузок
  4. Cloudtrail не показывает никаких изменений ENI/экземпляров.

Мы в тупике. Как наша таблица маршрутов может «внезапно» содержать несуществующий маршрут к ENI?

флаг cn
Если прокси-сервер находится в той же подсети, в которой маршрут для 0/0 ведет к прокси-серверу, разве это не круговой маршрут? Разве вы не хотите, чтобы прокси был в одной подсети, а сервис в другой?
флаг zw
@ shearn89 спасибо за ответ. Мне нужно обновить описание. Серверы приложений находятся в частной подсети, без доступа в Интернет. Прокси находятся в общедоступной подсети со шлюзом NAT. Маршрут частной подсети имеет 0.0.0.0 > ENI прокси-сервера в соответствующей общедоступной подсети (та же зона доступности). Публичный маршрут подсети, 0.0.0.0 > шлюз nat. Загвоздка здесь в том, что без каких-либо объяснений частная подсеть RTB внезапно показала маршрут 0.0.0.0 как черную дыру.
Tim avatar
флаг gp
Tim
@Taylor, если вы хотите обновить свой вопрос, отредактируйте его, а не комментируйте. Вероятно, вам следует нарисовать диаграмму, чтобы помочь людям понять вашу настройку/сценарий, и в идеале разбить стену текста на абзацы для удобства чтения.
Tim avatar
флаг gp
Tim
Вы можете рассмотреть возможность использования сетевого брандмауэра AWS вместо прокси-серверов squid. Это, вероятно, намного дороже, но, вероятно, намного надежнее. https://aws.amazon.com/blogs/networking-and-content-delivery/deployment-models-for-aws-network-firewall/ Интересно, превратились ли ваши ENI в маршруты черной дыры, потому что экземпляр отклонял трафик или что-то вроде того
флаг cn
В общедоступной подсети не может быть NAT GW, а также маршрут по умолчанию, указывающий на этот GW, например, где NAT GW общается? Общедоступной подсети нужен маршрут по умолчанию к шлюзу Интернета, а затем вы можете отдельно направить прокси-серверы к шлюзу NAT через определенную таблицу.
флаг zw
@Tim, согласно вашим предложениям, немного меньше стены текста и заимствованной диаграммы, которая достаточно близка, чтобы проиллюстрировать суть.
Tim avatar
флаг gp
Tim
Я предлагаю вам получить поддержку AWS на месяц и поговорить с ними. С вашего разрешения служба поддержки AWS может заглянуть прямо в вашу учетную запись, чтобы помочь вам решить эту довольно необычную проблему. Я подозреваю, что ответ будет в журналах CloudTrail, но найти что-либо в CloudTrail может быть сложно.

Ответить или комментировать

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