Как да накарате AWS да стартира Site-to-Site VPN тунел
Действието при стартиране и действието при DPD изтичане отговарят на различни въпроси. Задайте това, което кара AWS да инициира, после проверете адреса на партньора и маршрута на приложението.
По подразбиране AWS Site-to-Site VPN изчаква customer gateway да започне договарянето. Тази настройка по подразбиране не е закон, а опция и се нарича Startup action. Преди да посегнете към нея, разделете два въпроса, които постоянно се смесват: кой изгражда тунела и имат ли пакетите, които ви интересуват, маршрут през него. Само първият се намира в опциите на тунела.
Разделете действието при стартиране от действието при DPD изтичане
Две опции за всеки тунел управляват две различни събития и задаването на едната не казва нищо за другата.
| Event | Option | Useful values |
|---|---|---|
| A new or modified VPN connection needs a tunnel | Startup action | add waits for the peer; start asks AWS to initiate |
| Dead peer detection times out | DPD timeout action | clear ends the session, restart reinitiates, none does nothing |
Ако AWS трябва да изгради нов или променен тунел, изберете start. Ако AWS трябва също да рестартира договарянето след DPD изтичане, конфигурирайте restart за това събитие отделно. Нито една от опциите не е политика за повторни опити на приложението и нито една не е интервал за смяна на ключ: DPD проверява дали партньорът е жив, докато смяната на ключ подменя security associations на работещ тунел.
Приложение, което получава изтичане, докато тунелът още се отчита като up, има проблем с пътя на данните. Съкращаването на DPD таймера няма да го поправи и може да добави смущения, които после да трябва да обяснявате.
Проверете дали AWS има къде да изпрати договарянето
Инициирането от страна на AWS е само с IKEv2 и AWS се нуждае от публичния адрес на customer gateway, за да знае къде да изпрати предложението. Случаят, който боли, е ресурс customer gateway с удостоверяване чрез сертификат, създаден без адрес: документацията на AWS описва създаване на нов ресурс customer gateway с адреса и след това промяна на VPN връзката да сочи към него.
Сертификатът доказва кой е партньорът. Той не казва на AWS къде е партньорът, а това са различни изисквания. Затова решението е нов ресурс customer gateway, а не нов сертификат. Смяната на сертификата оставя AWS със същата липсваща дестинация.
Ако customer gateway е зад NAT, на AWS е нужен и конфигуриран responder identity, IDr, за да съвпада идентичността на партньора с това, което устройството очаква. Потвърдете тази стойност и пътя през защитната стена, който пропуска IKE трафик, преди да обвините опцията, която току-що променихте. Изборът на start не може да накара недостъпен или грешно идентифициран партньор да приеме предложение.
Приложете промяната към един тунел и очаквайте прекъсване
VPN връзката има два тунела с независими опции, затова потвърдете кой редактирате по външния му адрес. AWS позволява промяна на един тунел наведнъж и свързаността през избрания тунел може да бъде прекъсната за няколко минути.
- Изберете връзката Site-to-Site VPN и отворете Modify VPN tunnel options.
- Изберете тунела по външния IP адрес и потвърдете версията на IKE и ресурса customer gateway.
- Задайте действията при стартиране и при DPD, които наистина искате, и запазете в прозорец, който контролирате.
- Потвърдете, че промененият тунел се установява, и проверете другия тунел и маршрутизацията преди следващата промяна.
Едно поведение заслужава внимание преди поддръжка. Когато инициирането от AWS е включено, няма изтичане: AWS продължава да опитва, докато тунелът се вдигне, и започва отново, когато customer gateway изпрати съобщение delete-SA. Ако свалите партньора нарочно, AWS ще продължи да чука и това ще се вижда в логовете му.
Проверете пътя на приложението, а не само състоянието на тунела
Тунел със статус up не е същото като работеща заявка. Lambda функция, свързана с VPC, все още се нуждае от subnet маршрут към префикса на клиента, от правила на security group и network ACL, които разрешават трафика, от разрешаване на имена, което връща правилния адрес, и от обратен път от страна на клиента.
Тествайте веднъж с истинска заявка от контекста на приложението, после четете flow logs, ако се провали. Keepalive трафикът е законна опция, когато инициирането от AWS е изключено и неактивен тунел се нуждае от пакети, за да стои, но това трябва да е решение за мониторинг, което можете да назовете, а не необясним ping цикъл, залепен за функция.
Първо изберете кой изгражда тунела, после диагностицирайте останалата повреда на собствения ѝ слой. Документацията на AWS за инициирането покрива изискванията за адрес, идентичност и повторни опити по-подробно, отколкото подсказките в конзолата.