Uzaq şlüz yenidən başlayır, bir dəqiqə içində qayıdır, yerli strongSwan daemonu isə tunel hələ də düşmüş halda işləməyə davam edir. ESTABLISHED üçün grep edən və daemonu yenidən başladan cron işi bunu nə vaxtsa ört-basdır edəcək və eyni zamanda maşındakı hər əlaqəsiz tuneli kəsəcək, bəlkə də uğursuz olanı qaçıracaq. Bərpa geri qayıtmalı olan bağlantıya aiddir və yenidən yükləmədən sonra da qalan parametrlərlə ifadə olunur. Bu runbook bunu tək bir bağlantı üçün qurur və nəticəni adla sübut edir.

Qlobal yenidən başlatmanı təqaüdə çıxarın, sübutlarını saxlayın

Daemonun yenidən başladılması iki konkret qüsuru daşıyır: hər bağlantının vəziyyətini məhv edir və hansı hadisənin həqiqətən uğursuz olduğunu sizə demir. Grep etdiyiniz status mətni başqa bağlantıdan gəlmiş ola bilər, tələb olunan child isə heç nə onu işə salmadığı üçün boş qalmışdı.

Hər şeyi dəyişməzdən əvvəl yüklənmiş bağlantıları və aktiv assosiasiyaları oxuyun ki, peer qayıtdıqdan sonra müqayisə edəcəyiniz bir öncəki mənzərəniz olsun.

swanctl --list-conns
swanctl --list-sas

Başlatmanı və təkrar cəhdləri qayıdan bağlantıya qoyun

swanctl.conf quraşdırmasında bu parametrlər qlobal siyasətdə deyil, bağlantı və child səviyyəsində yaşayır. Aşağıdakı fraqment təkliflərin, autentifikasiyanın və seçicilərin artıq düzgün olduğunu fərz edən başladıcı tərəfli nümunədir.

connections {
    branch {
        keyingtries = 0
        dpd_delay = 30s
        children {
            private-lan {
                start_action = trap|start
                dpd_action = restart
            }
        }
    }
}

start_action child yüklənəndə nə baş verdiyini müəyyən edir: start dərhal başladır, trap isə uyğun trafik görünəndə başlatmanı tetikləyən siyasət quraşdırır. trap|start yazmaq üçün strongSwan 5.9.6 və ya daha yenisi lazımdır, ona görə sətri kopyalamazdan əvvəl versiyanı yoxlayın. dpd_action=restart peer ölmüş elan edildikdən sonra yeni razılaşma tələb edir, bağlantı səviyyəsində keyingtries=0 isə uğur və ya daimi xəta qədər əlavə cəhdlərə icazə verir. IKEv2 altında dpd_timeout heç bir təsir göstərmir, çünki peerin cavab vermədiyini adi yenidən ötürmə müəyyən edir.

Həmin nümunədəki gecikmə universal bir son tarix deyil, başlanğıc nöqtəsidir. Onu peerin yenidən başlamasının nə qədər çəkdiyinə və nə qədər yenidən ötürməyə dözmək istədiyinizə görə seçin.

Hansı hadisədən bərpa etdiyinizi bilin

Üç nasazlıq idarə panelində eyni görünür və fərqli parametrlər tələb edir. Heç vaxt qalxmayan ilkin bağlantı konfiqurasiya və ya əlçatanlıq problemidir. Cavab verməyi dayandıran peer DPD halıdır. Peerin açıq şəkildə bağladığı child isə DPD-nin heç vaxt görmədiyi, öz close_action-u olan siyasət hadisəsidir. Kəsinti ətrafındakı jurnalı oxumaq üçündən hansının olduğunu sizə deyir və cavab düzəlişi dəyişir.

Operatorların texniki xidmət üçün qəsdən bağladığı bağlantıya aqressiv yenidən başlatma əlavə etməyin, əks halda tunel pəncərənin ortasında yenidən peyda olur. Tələb üzrə dizaynlarda saxlanılan trap kifayətdir, çünki uyğun trafik child-i heç bir taymer olmadan yenidən qurur.

Daemon statusu ilə deyil, adla yoxlayın

Peer hələ düşmüş ikən bağlantını və onun child-ini adla oxuyun, sonra qayıtdıqdan sonra yenidən; bu iki çıxış arasındakı fərq sübutdur.

swanctl --initiate --child private-lan
swanctl --terminate --ike branch

Sonra assosiasiyanı deyil, xidməti təsdiqləyin. Təzə child təhlükəsizlik assosiasiyası və onun arxasındakı özəl ünvana uğurlu sorğu vacib olan iki faktdır, işləyən daemonla sağlam əlaqəsiz tunel isə heç birini sübut etmir.

Child heç vaxt başlamırsa, test trafikinin konfiqurasiya edilmiş seçicilərə dəqiq uyğun gəldiyini yoxlayın, protokol və port daxil olmaqla. Başlayır və uğursuz olursa, autentifikasiya və ya təklif xətasını sonsuz dövrənin arxasında gizlətmək əvəzinə oxuyun, çünki keyingtries=0 daimi rəddi sonsuza qədər təkrarlayacaq.

Dəyişikliyi pəncərədə yükləyin və yenidən sınayın

Yenidən yükləmə daemonu yenidən başlatmaqdan təhlükəsizdir və yenə də pulsuz deyil: child-i əvəz etmək və ya boşaltmaq başlamış assosiasiyanı bağlaya və ya onun trap-ını itirə bilər.

Texniki xidmət pəncərəsi zamanı yükləyin, əvvəlki faylı saxlayın və bağlantının standart parametrlərlə deyil, nəzərdə tutduğunuz parametrlərlə göründüyünü təsdiqləyin.

swanctl --load-conns
swanctl --list-conns

Əvvəlki faylı bərpa edib yenidən yükləməklə geri qaytarın, sonra eyni iki əmri təkrarlayın. Yalnız daemon yenidən başladıqdan sonra qayıdan tunel təmir olunmayıb, sıfırlanıb.

Əlaqəli məqalələr