Рейтинг:0

AWS Site-to-Site VPN с BGP — как маршруты объявляются через BGP?

флаг jp

Я настроил избыточный межсайтовый VPN между AWS и GCP с 2 VPN-подключениями, 4 туннелями и динамической маршрутизацией BGP. Все работает, все хорошо, серверы по обеим сторонам туннеля могут достучаться друг до друга.

Я сделал это с помощью Terraform, и если на стороне GCP я настроил рекламу всех подсетей:

  name = "gcp-to-aws-маршрутизатор"
  проект = google_project.aws_gcp_test.project_id
  регион = var.gcp_region
  сеть = google_compute_network.gcp_aws_vpc.name
  бгп {
    asn = var.gcp_bgp_asn
    реклама_режим = "ПОЛЬЗОВАТЕЛЬСКИЙ"
    рекламируемые_группы = ["ALL_SUBNETS"]
  }

затем в AWS я не делал ничего конкретного для объявления маршрутов, я только включил распространение маршрута в таблице маршрутизации, где находится мой сервер. Я явно не добавлял никаких маршрутов и не объявлял подсети, используемые моими серверами по обе стороны туннеля. Я включил распространение маршрутизации только на стороне AWS.

ресурс "aws_vpn_gateway_route_propagation" "это" {
  vpn_gateway_id = aws_vpn_gateway.aws_vpg.id
  route_table_id = aws_route.internet_gw_route.route_table_id
   
}

Здесь

в документации указано, что:

Вы можете включить распространение маршрута для своей таблицы маршрутов, чтобы автоматически распространять ваши сетевые маршруты в таблицу для вас. Ни слова об объявлении локальных маршрутов в BGP.

Я не могу понять, как маршруты из AWS попадают на сторону GCP? Как это работает? :)

Большое спасибо!

John Hanley avatar
флаг cn
Распространение маршрутов — одна из основных причин, по которой был разработан протокол BGP. Я ожидаю, что маршруты AWS будут перенаправлены на сторону GCP и наоборот, без каких-либо специальных действий. Только когда у вас есть **индивидуальные/лучшие** маршруты, вам нужно рекламировать их. Для распространения маршрутов требуется время, иногда много минут. Реклама может ускорить этот процесс.
Dmitry avatar
флаг jp
Спасибо, Джон, но как AWS решит, какие маршруты добавить в BGP? Все маршруты доступны в VPC, в котором создан Виртуальный шлюз или есть какой-то другой механизм?
John Hanley avatar
флаг cn
По большей части BGP позаботится обо всем за вас. Выбор маршрута, переадресация и реклама могут быть сложными. Таким образом, BGP принимает решения о маршрутизации на основе путей, определенных правилами или сетевыми политиками, установленными сетевыми администраторами. Каждый маршрутизатор поддерживает таблицу маршрутизации, управляющую направлением пакетов. Информация таблицы маршрутизации генерируется процессом BGP на маршрутизаторе на основе входящей информации от других маршрутизаторов и информации в информационной базе маршрутизации BGP (RIB), которая представляет собой таблицу данных, хранящуюся на сервере на маршрутизаторе BGP. Есть хорошие книги по BGP.
John Hanley avatar
флаг cn
Еще одна концепция для понимания: ASN — номера автономных систем. AWS поддерживает RIB для сетей AWS (ASN). Все остальные сети обычно «обнаруживаются» или определяются правилами/политиками.
John Hanley avatar
флаг cn
Все становится еще сложнее, если учесть, что пункты назначения обычно имеют более одного маршрута, и каждый маршрут может иметь разную стоимость. Маршруты могут выйти из строя и выйти в сеть. Маршрутизаторы BGP постоянно обмениваются сообщениями, чтобы поддерживать маршрутизацию в рабочем состоянии.
Dmitry avatar
флаг jp
Большое спасибо за объяснение, Джон! Теперь стало немного понятнее, похоже, мне нужно прочитать, как работает BGP, чтобы лучше понять это :)

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

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