Təzə konteyner qeydləri çox vaxt /proc/sys/net/ipv4/route/flush barədə Read-only file system şikayəti ilə bitir və o sətir tam sağlam ola bilən tunelin üstünə atılır. Onun arxasındakı yazı IPv4 marşrut keşi getdiyi üçün artıq faydalı heç nə etməyən nüvə qeydinə hədəflənir. Konteyner daxilində /proc/sys yalnız-oxuma kimi quraşdırılır, ona görə də heç bir dəyər yerinə çatmadan yönləndirmə rədd edilir və shell bu rəddi çap edir. İşləyən tunel bu xəbərdarlığı köhnə sətir skriptdə qaldığı müddətcə çap edə bilər və --privileged yazını heç vaxt mənalı etmir.

Skript nəyi təmizləməyə çalışırdı

Köhnə əlaqə skriptləri keş təmizliyi ilə bitirdi: nüvə nəzarət faylına dəyər yazmaq və IPv4 yığınından marşrutlaşdırma keşini atmasını istəmək, beləliklə yeni tunel marşrutu köhnəlmiş qeydlərin vaxtının bitməsini gözləmədən seçiləcəkdi. Fayl /proc/sys/net/ipv4/ altında ünvanlanmışdı, bu da əməliyyatı marşrutlaşdırma əmri deyil, shell yönləndirməsi etdi. Nüvə 3.6 o keşi, onunla birlikdə təmizləmənin mövcudluq səbəbini sildi. Cari məlumat yolunda heç nə o yazıdan asılı deyil.

Qeydin özü köhnə yalnız-yazma faylı kimi qaldı, ona görə də hələ də ora yazan skript real yola və real icazə yoxlamasına çatır. Hostda yazı uğur qaytarır və heç nəyi dəyişmir. Konteynerdə eyni yönləndirmə yalnız-oxuma /proc/sys ilə rastlaşır və EROFS ilə uğursuz olur; shell bunu yalnız-oxuma fayl sistemi mesajı kimi çap edir. Yolun həqiqətən olmadığı nüvələrdə ifadə No such file or directory olur və nəticə dəyişmir.

İki xəta fərqli şeylər deyir və fərqi düzgün saxlamağa dəyər. Read-only file system nüvənin bir qeydə çatdığını və yazını rədd etdiyini bildirir; No such file or directory qeydin getdiyini bildirir. Heç bir mesaj tunel cihazı, marşrutlar və ya ad həlli barədə məlumat vermir, ona görə də heç biri daha çox imtiyazı əsaslandıra bilməz.

Sıra mesajı səbəbli göstərən şeydir. Əlaqə skripti sonundakı təmizliyə çatmadan əvvəl marşrutlar qurur, interfeys vəziyyətini dəyişir və ad həllini yenidən yazır, buna görə çap edilən son sətir insanların sitat gətirdiyi sətirdir, hətta vacib olan hər addım uğurla qayıtsa belə. Bu xəbərdarlığı çap edərkən qurulan və trafik daşıyan tunel yuxarıdakı mexanizmə tam uyğun gəlir.

İmtiyaz əlavə etməzdən əvvəl quraşdırmanı və marşrutu yoxlayın

Üç oxunuş kosmetik xəbərdarlığı real nasazlıqdan ayırır: quraşdırılmış skriptin sətri hələ daşıyıb-daşımadığı, /proc/sys-in necə quraşdırıldığı və tətbiqin trafikinin həqiqətən hara getdiyi. Onları xəbərdarlığın göründüyü konteyner ad sahəsində və ya hostda işlədin, çünki əlaqəsiz maşında yoxlama başqa suala cavab verir.

grep -n 'ipv4/route/flush' /usr/share/vpnc-scripts/vpnc-script
findmnt -no OPTIONS /proc/sys
ip -4 route get 10.20.5.10

grep cavabı göründüyündən zəifdir, çünki uyğunluq sətrin olduğunu sübut edir, qoruma olmadan işlədiyini yox; saxlanılan skript yazını onu keçən qoruyucu daxilində daşıya bilər. findmnt -no OPTIONS /proc/sys quraşdırmanı birbaşa həll edir və o çıxışdakı ro həmin nöqtədən aşağı hər yazının rədd edildiyini bildirir, skript nə etsə də. Sonra marşrut axtarışı tətbiqin ehtiyac duyduğu təyinatın tunel interfeysindən, yoxsa konteynerin standart şlüzündən həll olunduğunu göstərir. Standart şlüzü seçən axtarış tunelin qalxdığını və ona heç nəyin yönləndirilmədiyini bildirir; bu, imtiyaz deyil, marşrutlaşdırma problemidir.

Düzəliş həqiqətən haradan gəlir

Saxlanılan düzəliş konteyner bayraqlarında deyil, skriptdə yaşayır. yuxarı axın vpnc-script bu əməliyyatı necə idarə etdiyini dəyişib, ona görə obrazın içindəki kopyanı cari yuxarı axınla müqayisə edin və onu təmin edən paket və ya obraz quruluşu vasitəsilə yeniləyin. İşləyən konteyner daxilində əl ilə düzəldilmiş fayl yoxlanıla bilməz və növbəti quruluşdan sonra qalmaz.

--privileged bütün qabiliyyətləri və geniş cihaz çıxışını verdiyi sənədləşdirilir; heç nəyi dəyişməyən mesaj üçün bu böyük güzəştdir, ona görə həqiqətən çatışmayan qabiliyyəti adlandırın. Yeniləmədən sonra marşrut axtarışını təkrarlayın və tətbiqin tuneldən istifadə etməsinə icazə verin, çünki sakit qeyd və işləyən əlaqə ayrı nəticələrdir.

Əlaqəli məqalələr