Xidməti dayandırmaq, persist-tun qoyulsa belə interfeysi silir. Bu, seçimin sənədləşdirildiyi kimi işləməsidir, uğursuzluq deyil. Seçim işləyən prosesin içində bir yenidən başlatma yolunu təsvir edir və systemctl stop o yol deyil.

İki adı birlikdə oxuyun, dizayn aydın olur. Biri deskriptor saxlayır, digəri açar materialını saxlayır və hər ikisi imtiyazlar atıldıqdan sonra baş verənlərə görə mövcuddur.

İki resurs və aid olduqları sıfırlama

OpenVPN öz yenidən başlatmasını iki adi halda siqnal edir. Açıq SIGUSR1 bunu edir və ölü peer tərəfindən tetiklənən ping-restart da eyni şeyi edir. Hər ikisi prosesi sağ saxlayır və bağlantı quraşdırmasını yenidən işlədir, seçimlər məhz burada yer qazanır.

EventTUN/TAP deviceKey and auth filesAddresses and routesup/down hooks
Soft reset, from SIGUSR1 or from a ping-restart the daemon sends itselfsurvives only with persist-tunsurvive only with persist-keysurvive with the device, otherwise rebuiltrun again only when restart hooks are enabled
Configuration reload, SIGHUPrecreatedre-read from diskrebuilt once the device returnsrun again
Service stoplostre-read at the next startremovedrun at the next start

Bu iki seçimin dəyişdirdiyi yalnız yumşaq sıfırlama sətridir və atladıqları iş məşğul linkdə bahalı hissədir. Cihazı yenidən açmaq ona bağlı ünvanları və marşrutları dağıdır və onların yenidən qurulması sıfırlama başlayarkən yolda olan paketləri ata bilər. Dayandırma eyni obyektləri saxlamaq üçün heç bir seçim olmadan məhv edir.

Seçimlər ümumiyyətlə niyə mövcuddur

Sərtləşdirilmiş OpenVPN serveri adətən root kimi başlayır, açarlarını və cihazını açır, sonra imtiyazsız istifadəçiyə keçir. Bu keçiddən sonra bəzi əməliyyatlar sadəcə yox olur. 0600 rejimli açar faylını oxumaq, şəbəkə interfeysi yaratmaq və ya marşrutları dəyişmək hamısı rədd edilə bilər.

persist seçimləri olmadan, ping-restart tetikləyəcək qədər uzun sükut edən peer məhz həmin əməliyyatları məcbur edərdi. Yenidən qoşulma konfiqurasiyada heç nə dəyişməsə də uğursuz olardı. Proses səbəbsiz ölürmüş kimi görünərdi və jurnal şəbəkə xətası deyil, icazə xətası göstərərdi.

Onlarla, yumşaq sıfırlama imtiyazlı mərhələnin artıq əldə etdiyini yenidən istifadə edir. Heç bir sehr yoxdur və proses heç nədən sağ çıxmır. Resurs əldə etmək sadəcə təxirə salınır.

Sonuncu deyil, ilk xətanı oxuyun

Sıfırlama uğursuz olduqda, sonuncu deyil, ilk xətanı oxuyun. Qorunan açar, auth faylı, interfeys ioctl və xarici hook dörd fərqli resursdur. Birini saxlamaq digərlərinə giriş haqqında heç nə demir. Firewall alətini çağıran hook hələ də həmin alətin tələb etdiyi imtiyazlara ehtiyac duyur.

Hookların öz açarı var. OpenVPN təlimatı persist seçimlərini up-restart ilə cütləşdirir, bu da yenidən başlatmadan sonra up və down skriptlərinin yenidən işləyib-işləməyəcəyini müəyyən edir. Buna görə yuxarı qalmış interfeys resolver inteqrasiyanızın yeniləndiyini sizə demir.

# which restart path just happened?
journalctl -u openvpn-client@office --since '10 min ago' | grep -E 'SIGUSR1|ping-restart|Restart pause|NOTE:'

# did the interface survive, and do its routes still exist?
ip -brief link show tun0
ip route show dev tun0

Bu iki əmr iki uğursuzluq rejimini saniyələr içində ayırır. Mövcud olub marşrutları çatışmayan interfeys hook və ya marşrut problemidir. Yox olan interfeys prosesin həqiqətən bitdiyini bildirir.

Saxlanılan interfeys kill switch deyil

Tələb trafikin heç vaxt tuneldən kənara çıxmamasıdırsa, saxlanılan cihaz bunu vermir. Digər ünvan ailəsi üçün marşrutlar, ikinci default marşrut və prosesin tamamilə çıxdığı hal seçimin əhatəsindən kənarda qalır.

İki tələbi ayrı-ayrılıqda idarə edin. Tünel obyektini yenidən qoşulmalar arasında saxlamaq daemon üçün rahatlıqdır. Tünel söndükdə çıxışı bloklamaq öz qaydaları və öz testi olan firewall siyasətidir. Onları qarışdırmaq müdafiəli görünən və ən yaxşı səylə yenidən qoşulma kimi davranan konfiqurasiya yaradır.

Diaqnozdan əvvəl hadisəni adlandırın. Yumşaq sıfırlama, uğursuz qoşulma cəhdi və xidmətin dayandırılması üç fərqli davranışı olan üç hadisədir və yalnız birincisi bu seçimlərin təsvir etdiyidir.

Əlaqəli məqalələr