Yüklenmiş strongSwan profili etkin bir tünel değildir
strongSwan tanımları yükler, ardından IKE ve CHILD SA'ları üzerinde anlaşır. Profilin yüklenmiş olması, bir tünelin var olup olmadığı veya onu kimin başlattığı hakkında hiçbir şey söylemez.
strongSwan yapılandırmasında bir bağlantıyı listelemek yalnızca bir tanımın yüklendiğini kanıtlar. Bu, eşle temasa geçildiği, bir IKE SA'nın var olduğu veya herhangi bir trafiğin korunduğu anlamına gelmez. Arka plan programı tanımları ve canlı ilişkilendirmeleri ayrı nesneler olarak ele alır ve aralarındaki mesafe bilinçli bir tasarım tercihidir. Hangi nesneyi incelediğinizi bilmek, belirsiz bir arızayı somut bir sonraki komuta dönüştürür.
Yükleme bağlanmak değildir
Yüklenmiş bir bağlantı, daha sonra neyin müzakere edilebileceğine dair bir ifadedir: eş adresleri, kimlik bilgileri, öneriler ve trafik seçicileri. Bu ifadede arka plan programının birini aramasını gerektiren hiçbir şey yoktur. Bir ağ geçidi karşı tarafı bekleyebilir, açılışta kendisi başlatabilir veya uygun bir trafiğin onu uyandırmasını bekleyebilir. Üçü de geçerlidir ve üçü de başlatma ilkesini okuyana kadar yapılandırma dosyasında aynı görünür.
Operatörler tanım listesini durum listesi olarak okuyarak belaya girer. Profil oradadır, bu yüzden tünelin ayakta olduğu varsayılır ve sonraki saat hiç kurulmamış bir ilişkilendirme için yolların hata ayıklamasına gider.
Tersi hata da aynı ölçüde yaygındır. Eksik bir profil, yapılandırma hiç yüklenmemişken insanları bir ağ arızası aramaya gönderir. Nesneyi adlandırın, sonra onu gözlemleyen komutu çalıştırın.
Üç nesne, üç gözlem
strongSwan yüklenmiş bir tanım, bir IKE SA ve bir CHILD SA tutar. Birincisi yapılandırmadır, ikincisi kimliği doğrulanmış bir denetim ilişkisidir ve üçüncüsü seçilen trafik için müzakere edilmiş korumadır. Hatta ayrı adları vardır, bu yüzden hq adlı bir profil hq-lan adlı bir child'a sahip olabilir.
Tablo her katmanı onu gösteren komutla eşleştirir. Günlüğü okumadan önce satırı okuyun.
| Layer | What it contains | Command |
|---|---|---|
| Definition | Peer addresses, credentials, proposals, and traffic selectors | swanctl --list-conns |
| IKE SA | One authenticated control channel to the peer | swanctl --list-sas |
| CHILD SA | Keys and selectors for the traffic being protected | Child rows under the IKE SA |
Child'ı istemek, hiç yoksa önce onun üst IKE SA'sını kurar. Yalnızca IKE SA'yı istemek başka bir çağrıdır. Düzgün kimlik doğrulayan bir denetim kanalı, istediğiniz child'ı garanti etmez.
Bu fark kısmi bir arıza sırasında önemlidir. Bir IKE SA sağlıklı olabilirken child seçici uyuşmazlığı veya eşin kabul etmediği bir öneri yüzünden başarısız olur. İki nesne farklı nedenlerle başarısız olur, bu yüzden ayrı gözlemleri hak eder.
Başlatma eylemini bilinçli seçin
swanctl.conf içinde child'ın start_action değeri yüklemeden sonraki davranışı belirler. Varsayılan none, tanımı elle başlatmaya veya responder olarak kullanıma bırakır. start onu arar, oysa trap uygun trafik göründüğü anda müzakere eden bir ilke bırakır.
Dolayısıyla hem «yükleme asla bir tünel başlatmaz» hem de «yükleme her zaman bir tane başlatır» yanlıştır. Eylem profilin parçasıdır ve eşin rolüne uymalıdır. İkisi de karşı tarafı bekleyen iki ağ geçidi sessizlik üretir, tünel değil.
trap ile trafik seçicilerle eşleşmek zorundadır, bu yüzden ilgisiz bir ping hiçbir şeyi uyandırmaz. start ile eş adresi kullanılabilir olmalı ve iki taraf kimlik doğrulama ile öneriler üzerinde anlaşmalıdır. Eylemlerin hiçbiri bu koşulları denetlemenin yerini tutmaz.
Kurtarma ayrı bir ilkedir
Başlatma bir keepalive değildir. Ölü eş algılama, eşin açıkça kapatması, anahtar yenileme ve sürecin yeniden başlatılması kendi ayarları olan farklı yaşam döngüsü olaylarıdır. Her birini bilinçli olarak yapılandırın, ilk başlatmanın hepsini kapsamasını beklemek yerine.
Açılışta kalkan ve bir saat sonra ölen bir tünel kurtarma sorunudur. Başlatma ilkesi işini yaptı ve sonra önemini yitirdi. İlk müzakereyi suçlamadan önce DPD ve anahtar yenileme ayarlarına bakın.
Yüklenmiş tanımları değiştirmek ayrı bir işlemdir. Varsayılan olmayan başlatma ilkelerinin belgelenmiş ters eylemleri vardır ve yeniden yükleme, her ilişkilendirmenin yerinde güncellendiği varsayımı değil, operasyonel bir değişikliktir. Yeniden yüklemeleri yeniden bağlanmanın kabul edilebilir olduğu aşamalarda yapın. Yeni yapılandırma kanıtlanana kadar eskisini saklayın.
Yönlendirmede hata ayıklamadan önce neyin var olduğunu denetleyin
Üç gözlemi sırayla yapın: yüklenmiş tanımlar, etkin IKE SA'lar ve child girdileri. Her yanıt bir sonraki soruyu daraltır. Bir adımı atlarsanız sonunda hiç kurulmamış bir katmanda hata ayıklarsınız.
Yüklenmiş olandan ve gerçekten kurulmuş olandan başlayın:
swanctl --list-conns
swanctl --list-sas
Profil doğruyken child eksikse, onu adıyla başlatın ve ne olduğunu izleyin. Çıktı genellikle üst öğenin önce kalkıp kalkmadığını söyler.
swanctl --initiate --child hq-lan
Etkin bir CHILD SA bitiş çizgisi değildir. Yönlendirme kuralları, rotalar ve uygulamanın kendi yetkilendirmesi hâlâ uyuşmak zorundadır. Yaşam döngüsü neyin müzakere edildiğini yanıtlar; hizmeti kimin kullanabileceğine karar veremez.