Så får du AWS att starta en Site-to-Site VPN-tunnel
Startåtgärden och DPD-timeoutåtgärden svarar på olika frågor. Ställ in den som får AWS att initiera och kontrollera sedan peer-adressen och appens rutt.
Som standard väntar en AWS Site-to-Site VPN på att customer gateway ska starta förhandlingen. Den standarden är en inställning, inte en lag, och inställningen heter Startup action. Innan du griper efter den ska du skilja på två frågor som ständigt blandas ihop: vem som etablerar tunneln, och om paketen du bryr dig om har en rutt genom den. Bara den första finns i tunnelalternativen.
Skilj startåtgärden från DPD-timeoutåtgärden
Två inställningar per tunnel styr två olika händelser, och att sätta den ena säger ingenting om den andra.
| 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 |
Om AWS ska resa en ny eller ändrad tunnel, välj start. Om AWS också ska starta om förhandlingen efter en DPD-timeout, konfigurera restart för den händelsen separat. Ingen av inställningarna är en återförsökspolicy för applikationen, och ingen av dem är ett nyckelbytesintervall: DPD kontrollerar om peeren lever, medan nyckelbyte ersätter security associations på en aktiv tunnel.
En applikation som får timeout medan tunneln fortfarande rapporterar up har ett datapath-problem. Att korta DPD-timern löser det inte och kan ge oro som du måste förklara senare.
Kontrollera att AWS har någonstans att skicka förhandlingen
Initiering från AWS-sidan fungerar bara med IKEv2, och AWS behöver customer gatewayns offentliga adress för att veta vart förslaget ska skickas. Fallet som verkligen svider är en certifikatautentiserad customer gateway-resurs som skapats utan adress: AWS-dokumentationen beskriver att skapa en ny customer gateway-resurs med adressen och sedan ändra VPN-anslutningen så att den pekar på den.
Ett certifikat bevisar vem peeren är. Det berättar inte för AWS var peeren finns, och det är två olika krav. Därför är lösningen en ny customer gateway-resurs och inte ett nytt certifikat. Att byta certifikatet lämnar AWS med samma saknade destination.
Om customer gatewayn sitter bakom NAT, behöver AWS också en konfigurerad responder identity, IDr, så att peerens identitet stämmer med vad enheten förväntar sig. Bekräfta det värdet och brandvägsvägen som släpper igenom IKE-trafik innan du skyller på inställningen du just ändrade. Att välja start kan inte få en peer som inte går att nå eller är felaktigt identifierad att acceptera ett förslag.
Tillämpa ändringen på en tunnel och räkna med ett avbrott
En VPN-anslutning har två tunnlar med oberoende alternativ, så bekräfta utifrån den yttre adressen vilken du redigerar. AWS tillåter att en tunnel ändras i taget, och anslutningen över den valda tunneln kan avbrytas i flera minuter.
- Välj Site-to-Site VPN-anslutningen och öppna Modify VPN tunnel options.
- Välj tunneln efter yttre IP-adress och bekräfta dess IKE-version och customer gateway-resursen.
- Ställ in de start- och DPD-åtgärder du faktiskt vill ha och spara sedan i ett fönster du kontrollerar.
- Bekräfta att den ändrade tunneln etableras och kontrollera den andra tunneln och routingen före nästa ändring.
Ett beteende förtjänar uppmärksamhet före underhåll. Med AWS-initiering på finns ingen timeout: AWS fortsätter försöka tills tunneln kommer upp, och det initierar igen när customer gatewayn skickar ett delete-SA-meddelande. Tar du ner peeren med avsikt fortsätter AWS att knacka, och peerens loggar kommer att visa det.
Verifiera applikationens väg, inte bara tunnelns tillstånd
En tunnel som rapporterar up är inte samma sak som en förfrågan som fungerar. En Lambda-funktion kopplad till en VPC behöver fortfarande en subnet-rutt till kundens prefix, security group- och network ACL-regler som tillåter trafiken, namnuppslagning som returnerar rätt adress, och en returväg på kundsidan.
Testa en gång med en verklig förfrågan från applikationens kontext och läs sedan flow logs om det misslyckas. Keepalive-trafik är ett legitimt alternativ när AWS-initiering är av och en ledig tunnel behöver paket för att hålla sig uppe, men det bör vara ett övervakningsbeslut du kan namnge, inte en oförklarad ping-loop fastskruvad på en funktion.
Välj först vem som etablerar tunneln och diagnostisera sedan det kvarvarande felet i dess eget lager. AWS-dokumentationen om initiering täcker kraven på adress, identitet och återförsök mer detaljerat än ledtrådarna i konsolen.