L2TP در Ubuntu 24.04 خراب شده: xl2tpd یا دیمن go-l2tp؟
دیمن پشت افزونه L2TP در NetworkManager در 24.04 عوض شد. بخوانید کدام مرحله شکست خورد، سپس یک تعمیر را انتخاب کنید، نه پاکسازی و سنجاقکردن همزمان.
Ubuntu 24.04 بیصدا دیمن پشت افزونه L2TP در NetworkManager را عوض کرد. مسیر قدیمی از xl2tpd استفاده میکرد؛ بستهبندی جدیدتر پیادهسازیای به زبان Go میآورد که دیمنی به نام kl2tpd میسازد. افزونه هر کدام را که نصب باشد اجرا میکند، پس ارتقا میتواند دیمن را بدون دستزدن به پروفایل یا اعتبارنامههای شما جایگزین کند. این تمام خرابی است: پیام کنترلی که دیمن جدید آن را نمیشناسد.
افزونه IPsec، L2TP و PPP را هماهنگ میکند و سپس رابط حاصل را به NetworkManager میسپارد. خودش L2TP را پیادهسازی نمیکند.
افزونه یک هماهنگکننده است، نه دیمن
network-manager-l2tp ابزار کمکی IPsec، یک دیمن L2TP و PPP را اجرا میکند و رابط را به مدیریت اتصالهای میزکار وصل میکند. سالها دیمن xl2tpd بود، و هر آموزشی که پیکربندی آن را ذکر میکرد این فرض را به ارث برد. بستهبندی Debian بعداً هر یک از دو پیادهسازی را پذیرفت، و 24.04 نسخه Go را نصب میکند که kl2tpd را فراهم میکند. هیچ فیلدی در پروفایل ثبت نمیکند قبلاً کدام دیمن اجرا میشد، بنابراین جایگزینی تا رد شدن یک پیام نامرئی میماند.
ماشینی که هر دو بسته را دارد ممکن است هنوز همانی را که انتظار دارید اجرا نکند. انتخاب تصمیم افزونه است، نه راهنمایی که دنبال کردید.
پیش از انتخاب تعمیر، مرحله را بخوانید
journalctl -b --no-hostname _COMM=nm-l2tp-service _COMM=kl2tpd _COMM=xl2tpd _COMM=pppd _COMM=charon _COMM=pluto
یک تلاش را در میان ابزارهای کمکی به هم ربط دهید، نه اینکه به اعلان میزکار اعتماد کنید. آن پرسوجو نشان میدهد دنباله کجا متوقف شد، و dpkg -l نشان میدهد کدام پیادهسازی نصب است. خرابیای که پس از برقراری همتا IPsec ظاهر میشود و پیام کنترل یا ویژگی ناشناختهای را ذکر میکند به دیمن اشاره دارد. خرابی پیش از وجود تونل یعنی هرگز به دیمن نرسیدید.
ناسازگاری کلید از پیش اشتراکی در مرحله IPsec پایان مییابد و همتا را نام میبرد. مشکل اعتبارنامه PPP وقتی تونل برپا شد ظاهر میشود و معمولاً رد قابلخواندن CHAP یا MS-CHAP را حمل میکند. هر دو در همان پرسوجو دیده میشوند، و دو مشکل متفاوتاند.
دو مسیر، و با هم مخلوط نمیشوند
sudo apt install xl2tpd sudo apt purge go-l2tp
آن جفت xl2tpd را نصب میکند و سپس دیمن Go را حذف میکند، و افزونه را وا میگذارد پیادهسازیای را انتخاب کند که دروازه گویش آن را میفهمد. ترتیب مهم است: افزونه به یکی از دو پیادهسازی وابسته است، پس پاککردن بسته Go نخست افزونه را نیز با خود پایین میکشد. مسیر دوم دیمن Go را نگه میدارد و به ساخت تازهتری میرود که پیام را میفهمد، که معمولاً یعنی PPA نگهدارنده نه نسخه آرشیو. در ناوگان مدیریتشده، توجیه سنجاقکردن یک PPA آسانتر از آموختن پاککردن بستهها به کاربران است.
دو مورد را در یک تغییر ترکیب نکنید. آنگاه خرابی بعدی شما را ناتوان میکند از گفتن اینکه کدام نیمه کمک کرد، و ارتقای آینده ممکن است بستهای را که همین حالا حذف کردید بازگرداند.
فایل باینری دیمن، نسخه آن و پیام دقیق را در تیکت بگذارید. هیچکس نمیتواند گزارشی را بازتولید کند که فقط میگوید L2TP پس از انتشار خراب شد، در حالی که یک ویژگی نامبرده بههمراه نسخه بسته نقطه شروعی به آنها میدهد.
سه چیزی که نیست
مشکل پروفایل نیست، چون همان پروفایل روی 22.04 با همان دروازه کار میکرد. نه مسیر گمشده است و نه تغییر دیوار آتش، چون آنها جای دیگری با شواهد متفاوت شکست میخورند. نصب دوباره افزونه هم آن را درست نمیکند، چون همان دیمن دوباره انتخاب میشود. توصیف سودمند دیمن و پیامی را که رد کرد نام میبرد.
تعمیر از سمت دروازه نتیجه مشروع دیگر است. فرمویری که ارسال ویژگی را متوقف میکند از هر ارتقای مشتری جان سالم به در میبرد، در حالی که بسته سنجاقشده از انتشار بعدی توزیع فقط در صورتی جان سالم به در میبرد که کسی به یاد بیاورد چرا سنجاق شده است.
دو مسیر را از نظر هزینه نگهداری مقایسه کنید نه سرعت. هر دو میتوانند کار کنند؛ تنها یکی ناسازگاری گویش را برمیدارد.