У меня возникают проблемы с подключением между серверами в многорегиональной сети, которую я настраиваю в AWS, так как не все серверы доступны из любой точки сети.
Я подключаю VPC (A) в eu-central-1 к другому (B) в eu-southeast-1 через туннель openvpn, причем второй VPC подключается через ClassicLink к узлам EC2-Classic (EC2). Это соединение осуществляется через пару пиринговых серверов: peering-a в VPC A и peering-b в VPC B. Пользователи подключаются через openvpn к VPC A через openvpn server vpnserver-a.
Схема сети такая:
+---------+ +---------+ +---------+ +----+
|user | |VPC A | |VPC B | |EC2 |
|172.20/16+---+172.29/16+---+172.31/16+---+10/8|
+---------+ +---------+ +---------+ +----+
VPN VPN ClassicLink
Проблема в том, что я не могу установить ни одну из этих связей:
Подключения пользователя к VPC A и B, а также между VPC A и B работают нормально.
Я подозреваю, что есть проблема с маршрутизацией, но мне не удалось ее решить.
Маршрутизация настроена так:
Сетевые ACL открыты для всего трафика между этими подсетями. Группы безопасности также настроены для приема подключений.
Я провел некоторую (базовую) проверку пакетов с помощью tcpdump, чтобы попытаться понять, работают ли маршруты со следующими результатами: - Попытка подключиться от узла-a в VPC A к узлу-ec2 в EC2, я вижу пакеты, проходящие через пиринг-a и peering-b, но не доходит до node-ec2 - пытаясь подключиться с node-ec2 к node-a, я даже не вижу пакетов, достигающих peering-b
Поэтому я подозреваю, что маршрутизация в ClassicLink требует дополнительной настройки, о которой я не знаю.
Как я могу настроить недостающие маршруты? Это вообще возможно?
Спасибо!
ClassicLink не поддерживает доступ к чему-либо за пределами VPC.
Вы заметили, что нет таблицы маршрутов, относящейся к трафику из ClassicLink - маршруты оттуда обратно к вашим экземплярам в этом VPC неявны, и поэтому нет способа доставить внешний трафик обратно к вашему экземпляру «peering-b».
Строго говоря, нижеследующее конкретно не говорит о том, что это не будет работать, потому что VPN-соединения, на которые они ссылаются, являются VPN-соединениями, предоставляемыми аппаратной VPN-службой VPC, а не соединениями, которые вы создаете со своим собственным экземпляром ...
ClassicLink не поддерживает транзитивные отношения вне VPC. Ваш связанный экземпляр EC2-Classic не будет иметь доступа ни к какому VPN-соединению, конечной точке VPC или интернет-шлюзу, связанным с VPC. Точно так же ресурсы на другой стороне VPN-соединения или интернет-шлюз не будут иметь доступа к связанному экземпляру EC2-Classic.
http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-classiclink.html#classiclink-limitations
... однако последствия есть, и тот факт, что на компьютерах ClassicLink нет настраиваемой таблицы маршрутов VPC, которая обрабатывает их трафик, идущий к VPC, означает, что технически нет даже способа попытка чтобы настроить VPC для работы в соответствии с требованиями этого сценария.