Історія, яка повторюється, така: демон маршрутизації на пристрої VPN у EC2 навчить VPC своїх віддалених префіксів, щойно підніметься BGP. Половина цього правда. Сесія піднімається, і в таблиці маршрутів VPC через це нічого не змінюється, тому першим симптомом зазвичай стає підмережа, яка тихо відправляє трафік у чорну діру.

Тут плутають дві різні речі: піринг із сервером маршрутизації та встановлення маршрутів у таблицю.

Міф: підніміть BGP, і VPC вивчить префікси

BGP — це розмова між двома мовцями, і в цій схемі мовці — це демон маршрутизації на вашому пристрої та кінцева точка VPC Route Server, яку AWS розміщує у вашій власній підмережі. Ця розмова переносить префікси. Вона не торкається таблиці маршрутів ваших робочих підмереж, бо ці таблиці вчаться лише через поширення, яке потрібно ввімкнути на кожній із них. Доки це не станеться, тканина VPC нічого не знає про те, що знає пристрій.

Кроки налаштування розділені недарма: зв'язати, створити кінцеву точку, налаштувати піринг, потім увімкнути поширення.

Route Server — це площина керування, а не тунель

Route Server не шифрує, не пересилає і не перевіряє жодного пакета. Він існує, щоб обмінюватися BGP із пристроєм і передавати отримані префікси таблицям маршрутів, налаштованим на їх приймання. Площина даних не змінилася: пакети так само виходять через мережевий інтерфейс пристрою, ідуть через його VPN і повертаються тим самим шляхом.

Це означає, що перевірка джерела й призначення на інстансі пересилання досі важлива, бо інстанс тепер пересилає трафік, адресований комусь іншому.

Групи безпеки та засоби контролю підмережі також діють на пересиланий потік. Route Server не змусить пристрій, який відкидає трафік, пересилати його, і не відремонтує відсутній зворотний маршрут на віддаленому боці.

Поширення — для кожної таблиці маршрутів, а не для всієї VPC

Зв'язати сервер маршрутизації з VPC і ввімкнути поширення в таблиці маршрутів — це два рішення, і лише друге змінює те, що робить підмережа. VPC із шістьма таблицями маршрутів може отримати поширений префікс в одній і не отримати в решті п'яти, що якраз правильно для концентраторної підмережі і якраз створює заплутаний результат «працює наполовину». Навіть там, де поширення ввімкнене, конкуруючий маршрут може перемогти, бо вибір маршруту у VPC надає перевагу найдовшому префіксу, а за рівної довжини — статичному маршруту перед поширеним. Ця перевага застосовується мовчки.

Перевіряйте чинну таблицю конкретної підмережі, а не список префіксів, які анонсує пристрій. API відповідає на це питання безпосередньо: aws ec2 associate-route-server і aws ec2 enable-route-server-propagation --route-table-id <id> — це два кроки, які люди забувають, а aws ec2 describe-route-tables --route-table-ids <id> показує, чи префікс узагалі прийшов як запис route server.

Пристрій досі несе кожен пакет

Анонсувати доступність — не те саме, що мати її. Сесія BGP може залишатися встановленою, коли VPN пристрою не працює, а статичний анонс, який ніколи не змінюється, продовжує тягнути трафік до мертвого шляху. Route Server підтримує виявлення збоїв, наприклад BFD, але це перевіряє живучість партнера, а не здоров'я всього, що за ним.

Прив'яжіть анонс до реального віддаленого маршруту: анонсуйте префікс, коли тунель і віддалена мережа працюють, і відкликайте його, коли ні.

Відкличте префікс і подивіться, що станеться

Тестуйте поетапно, і зробіть останній етап видаленням. Переконайтеся, що анонс доходить, префікс з'являється в кожній потрібній таблиці, пристрій є наступним хопом, пересилання проходить через активний тунель і віддалений бік відповідає. Потім відкличте тестовий префікс або закрийте схвалений тунель і подивіться, чи переміщується трафік туди, куди каже схема. Запишіть таблиці до і після, поки тест ще відкритий.

Перенесення маршруту на другий пристрій не переносить сесії, які він ніс, бо стан NAT і міжмережевого екрана залишається на першому пристрої.

Для фіксованого набору з дюжини префіксів статичні маршрути в таблицях VPC залишаються дешевшою відповіддю. Route Server заслуговує на своє місце, коли список префіксів справді змінюється, а політика відкликання — це те, що ви можете пояснити черговому.

Схожі статті