strongSwan-trapmodus: wêrom't de IPsec-tunnel op ferkear wachtet
In ynaktyf on-demand IPsec-tunnel lit gjin CHILD SA sjen oant in pakket by syn trap-belied past. Lês de steat, kontrolearje de trigger en wit wannear't start past.
Der ferskynt gjin CHILD SA yn de statusútfier, de tunnel liket dea, en dan bringt in ping nei it fiere subnet him omheech. Yn in on-demand IPsec-opsjest is dy folchoarder it ûntwerp, net in fout. In trap-belied ynstallearret in selektor en wachtet, en it earste pakket dat dêrby past is wat IKE en de CHILD SA-ûnderhanneling begjint.
In part fan de betizing is wurdskat: “up” wurdt foar twa ferskillende steaten brûkt. De konfiguraasje is laden en it kernelbelied bestiet, mar de data-assosjaasje net. In monitor dy't allinnich aktive SA's telt, sil in sûn plak as del rapportearje salang't nimmen der ferkear hinne stjoert.
In ynaktyf on-demand-tunnel hat gjin CHILD SA om te sjen
In trap-ynstekker autentisearret sels neat. Hy freget de kernel om in belied foar it keazen ferkear te hâlden en in acquisition op te lûken as in pakket dat belied nedich hat. De daemon ûntfangt de acquisition, keppelt him oan 'e child-definysje en ûnderhannelt fan dêrút. Oant dat punt is der ek gjin IKE SA om te sjen, dêrom kinne beide listen tagelyk leech wêze.
Dy folchoarder makket de logboeken lêsber. Earst komt de acquisition, dan IKE_SA_INIT en IKE_AUTH, dan de CHILD SA. As it log direkt nei de acquisition einiget, hat de trigger wurke. De ûnderhanneling is mislearre, en de folgjende fraach giet oer besikers, foarstellen of berikberens, net oer de trap.
Mei de Linux-kernelbackend kinne jo it belied sjen foardat der hokker SA dan ek bestiet. Rinn ip xfrm policy en sykje de selektor mei rjochting out en in sjabloan dat nei de ferbining wiist. Dat ynstekker is de on-demand-steat, en syn oanwêzigens is it earste dat befêstige wurde moat.
start_action beslút oft der wol wat wachtet
Elke child yn swanctl.conf draacht in start_action. start begjint by it laden fan 'e konfiguraasje, trap ynstallearret it belied en wachtet, en none lit it begjin oan eat oars oer. Allinnich trap produsearret it hjirboppe beskreaune gedrach “ping en hy komt omheech”.
children {
office-lan {
local_ts = 192.168.50.0/24
remote_ts = 192.168.70.0/24
start_action = trap
}
}
De twa ferkearsselektors bepale wat as nijsgjirrich jildt, en in pakket fan in host bûten dy foarheaksels aktivearret de trap net; it wurdt as gewoanlik rûte. It ferbreeden fan de selektors om de trigger eagerder te meitsjen ferbreedt ek it berik dat de tunnel beweart te beskermjen, dus lied se ôf fan ferkear dat jo echt fersiferje wolle.
De swanctl.conf-referinsje listet de akseptearre wearden, tegearre mei de aparte close- en DPD-aksjes dy't regelje wat der bart as de SA bestiet.
Fyn út oft de trigger hielendal ôfgien is
Begjin mei swanctl --list-conns en befêstigje dat de child laden is mei de aksje dy't jo bedoelen. Stjoer dan ien pakket fan in host yn local_ts nei in adres yn remote_ts en besjoch swanctl --list-sas. As de útfier net feroaret, hat gjin acquisition de daemon berikt.
Twa gewoane redenen foar in stille trap: it pakket is source-NAT-e foardat it it belied rekke en past net mear by local_ts, of de ferbining is nea laden fanwegen in syntaks- of besikersflater. Rinn swanctl --load-all op 'e nij en lês de útfier foardat jo selektors oanreitsje. In ferbining dy't net laden is, ynstallearret gjin belied, dus der is neat foar ferkear om te aktivearjen.
De rjochting makket ek út: in trap foar útgeand ferkear begjint net by in yngeand pakket. As de fiere kant de tunnel omheech bringe moat, hat er syn eigen trap nedich, of dizze kant hat start.
Wachtsje op it earste pakket is net altyd de juste ruil
Yntegrative sesjes merke de opsetkosten. It earste fersyk betellet foar de IKE-útwikseling en de CHILD-ûnderhanneling, en in klant mei in koarte deadline kin opjaan foardat de SA bestiet. Proaktyf start hellet dy fertraging fan it earste pakket fuort. Mar hy hâldt in tunnel omheech foar ferkear dat miskien nea oankomt.
Trije feiten beslisse de kar: hoe faak it paad brûkt wurdt, oft it earste fersyk in strakke deadline hat en oft de peer by it opstarten berikber is. Sporadysk batchferkear en in peer dy't by it opstarten offline wêze kin, beide befoardearje trap. In latinsgefoelige klant en in peer dy't altyd berikber is, befoardearje start. As beide kanten begjinne kinne, sprek dan ôf wa't de trigger hat, sadat jo gjin dûbele ûnderhannelings krije.
In ynstallearre belied is ek gjin lekfêste garânsje. As de eask fail-closed is, moat de firewall ferkear sûnder SA weismite, en dy regel libbet bûten de child-definysje.
Skriuw de trije rigels op dy't de folgjende diskusje einigje
Skriuw de selektors, de opstartaksje en de kommando-útfier op dy't it belied oanwêzich toant sûnder SA. Dy trije rigels skiede “on demand en ynaktyf” fan “laden net” de folgjende kear dat immen de tunnel as del rapportearret. Se kostje in minút om fêst te lizzen. Sûnder har begjint itselde ûndersyk fan nul ôf.
Test fan in host dy't echt yn 'e selektor sit. In ping fan 'e router sels folget faak in oar paad en bewiist neat oer it belied dat it subnet efter him beskermet.