Hoe u AWS een Site-to-Site VPN-tunnel laat starten
De startactie en de DPD-timeoutactie beantwoorden verschillende vragen. Stel de actie in die AWS laat initiëren en controleer daarna het adres van de peer en de route van de app.
Standaard wacht een AWS Site-to-Site VPN tot de customer gateway de onderhandeling start. Die standaard is een instelling, geen wet, en de instelling heet Startup action. Voordat u ernaar grijpt, scheidt u twee vragen die voortdurend worden verward: wie bouwt de tunnel op, en of de pakketten die u belangrijk vindt er een route doorheen hebben. Alleen de eerste zit in de tunnelopties.
Scheid de startactie van de DPD-timeoutactie
Twee opties per tunnel sturen twee verschillende gebeurtenissen aan, en de ene instellen zegt niets over de andere.
| 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 |
Als AWS een nieuwe of gewijzigde tunnel moet opzetten, kies start. Als AWS na een DPD-timeout ook de onderhandeling opnieuw moet starten, configureer restart dan apart voor die gebeurtenis. Geen van beide opties is een herhaalbeleid van de applicatie, en geen van beide is een sleutelwisselinterval: DPD controleert of de peer leeft, terwijl sleutelwissel de security associations op een actieve tunnel vervangt.
Een applicatie die een timeout krijgt terwijl de tunnel nog up meldt, heeft een probleem in het datapad. De DPD-timer verkorten lost dat niet op en kan onrust toevoegen die u later moet uitleggen.
Controleer of AWS ergens de onderhandeling heen kan sturen
Initiatie vanaf de AWS-kant werkt alleen met IKEv2, en AWS heeft het openbare adres van de customer gateway nodig om te weten waar het voorstel heen moet. Het geval dat pijn doet, is een met een certificaat geauthenticeerde customer gateway-resource die zonder adres is gemaakt: de AWS-documentatie beschrijft het aanmaken van een nieuwe customer gateway-resource met het adres en daarna het wijzigen van de VPN-verbinding zodat die ernaar wijst.
Een certificaat bewijst wie de peer is. Het vertelt AWS niet waar de peer is, en dat zijn twee verschillende eisen. Daarom is de oplossing een nieuwe customer gateway-resource en geen nieuw certificaat. Het certificaat vervangen laat AWS achter met dezelfde ontbrekende bestemming.
Als de customer gateway achter NAT zit, heeft AWS ook een geconfigureerde responder identity nodig, IDr, zodat de identiteit van de peer overeenkomt met wat het apparaat verwacht. Bevestig die waarde en het firewallpad dat IKE-verkeer doorlaat voordat u de optie de schuld geeft die u net hebt gewijzigd. Het kiezen van start kan een onbereikbare of verkeerd geïdentificeerde peer niet zover krijgen dat hij een voorstel accepteert.
Pas de wijziging toe op één tunnel en verwacht een onderbreking
Een VPN-verbinding heeft twee tunnels met onafhankelijke opties, dus bevestig aan de hand van het buitenadres welke u bewerkt. AWS staat toe dat één tunnel tegelijk wordt gewijzigd, en de verbinding over de gekozen tunnel kan enkele minuten worden onderbroken.
- Selecteer de Site-to-Site VPN-verbinding en open Modify VPN tunnel options.
- Kies de tunnel op basis van het buiten-IP-adres en bevestig de IKE-versie en de customer gateway-resource.
- Stel de start- en DPD-acties in die u echt wilt, en sla daarna op in een venster dat u beheerst.
- Bevestig dat de gewijzigde tunnel tot stand komt, en controleer de andere tunnel en de routering vóór de volgende wijziging.
Eén gedrag verdient aandacht vóór onderhoud. Met AWS-initiatie aan is er geen timeout: AWS blijft proberen tot de tunnel omhoog komt, en het initieert opnieuw wanneer de customer gateway een delete-SA-bericht stuurt. Haalt u de peer expres naar beneden, dan blijft AWS kloppen, en de logboeken van de peer zullen dat laten zien.
Verifieer het pad van de applicatie, niet alleen de toestand van de tunnel
Een tunnel die up meldt is niet hetzelfde als een verzoek dat werkt. Een Lambda-functie die aan een VPC hangt, heeft nog steeds een subnet-route naar het prefix van de klant nodig, security group- en network ACL-regels die het verkeer toestaan, naamresolutie die het juiste adres teruggeeft, en een retourpad aan de klantzijde.
Test één keer met een echt verzoek vanuit de context van de applicatie en lees daarna de flow logs als het mislukt. Keepalive-verkeer is een legitieme optie wanneer AWS-initiatie uit staat en een lege tunnel pakketten nodig heeft om te blijven staan, maar het moet een monitoringbeslissing zijn die u kunt benoemen, geen onverklaarde ping-lus die aan een functie is vastgeschroefd.
Kies eerst wie de tunnel opbouwt en diagnosticeer daarna de resterende fout in zijn eigen laag. De AWS-documentatie over initiatie behandelt de eisen voor adres, identiteit en herhaling uitgebreider dan de hints in de console.