L2TP v Ubuntu 24.04 nefunguje: xl2tpd, nebo daemon go-l2tp?
Daemon za zásuvným modulem L2TP v NetworkManageru se ve 24.04 změnil. Přečtěte si, která fáze selhala, a pak zvolte jednu opravu místo okamžitého odstranění a připnutí.
Ubuntu 24.04 tiše vyměnilo daemon za zásuvným modulem L2TP v NetworkManageru. Starší cesta používala xl2tpd; novější balíček přináší implementaci v Go, která vytváří daemon jménem kl2tpd. Modul spouští ten, který je nainstalovaný, takže upgrade může vyměnit daemona, aniž by se dotkl profilu nebo přihlašovacích údajů. To je celá závada: řídicí zpráva, kterou nový daemon nerozpozná.
Modul koordinuje IPsec, L2TP a PPP a výsledné rozhraní předá NetworkManageru. Sám L2TP neimplementuje.
Modul je koordinátor, ne daemon
network-manager-l2tp spouští pomocníka IPsec, daemona L2TP a PPP a propojuje rozhraní se správou připojení na ploše. Roky byl daemonem xl2tpd a každý návod, který zmiňoval jeho konfiguraci, toto předpokládal. Balení Debianu později přijalo kteroukoli ze dvou implementací a 24.04 instaluje tu v Go, která poskytuje kl2tpd. Žádné pole v profilu nezaznamenává, který daemon běžel dříve, takže výměna zůstává neviditelná, dokud není zpráva odmítnuta.
Stroj s oběma balíčky přesto nemusí spustit ten, který očekáváte. Volba je rozhodnutím modulu, ne návodu, který jste sledovali.
Přečtěte fázi, než zvolíte opravu
journalctl -b --no-hostname _COMM=nm-l2tp-service _COMM=kl2tpd _COMM=xl2tpd _COMM=pppd _COMM=charon _COMM=pluto
Spojte jeden pokus napříč pomocníky místo spoléhání na oznámení na ploše. Ten dotaz ukáže, kde se posloupnost zastavila, a dpkg -l ukáže, která implementace je nainstalovaná. Závada, která se objeví po navázání partnera IPsec a zmiňuje řídicí zprávu nebo nerozpoznaný atribut, ukazuje na daemona. Závada před vznikem tunelu znamená, že daemon nebyl nikdy dosažen.
Neshoda předsdíleného klíče končí ve fázi IPsec a pojmenuje partnera. Problém s přihlašovacími údaji PPP se objeví, když tunel stojí, a obvykle nese čitelné odmítnutí CHAP nebo MS-CHAP. Obojí je vidět ve stejném dotazu a jde o různé problémy.
Dvě cesty a nemíchají se
sudo apt install xl2tpd sudo apt purge go-l2tp
Tato dvojice nasadí xl2tpd a poté odstraní daemona Go, takže modul vybere implementaci, jejíž dialekt brána zná. Na pořadí záleží: modul závisí na jedné nebo druhé implementaci, takže odstranění balíčku Go nejprve strhne i modul. Druhá cesta zachová daemona Go a přejde na novější sestavení, které zprávě rozumí, což obvykle znamená PPA správce, nikoli verzi z archivu. Ve spravované flotile je snazší obhájit připnutí PPA než učit uživatele odstraňovat balíčky.
Nekombinujte obojí v jedné změně. Pozdější závada vám pak nedovolí říci, která polovina pomohla, a budoucí upgrade může vrátit balíček, který jste právě odstranili.
Do ticketu dejte binárku daemona, její verzi a přesnou zprávu. Nikdo nemůže reprodukovat hlášení, které jen říká, že se L2TP po vydání rozbil, zatímco pojmenovaný atribut plus verze balíčku jim dává začátek.
Tři věci, které to není
Není to problém profilu, protože stejný profil fungoval na 22.04 se stejnou bránou. Není to chybějící trasa ani změna firewallu, protože ty selhávají jinde s jinými důkazy. Přeinstalování modulu to také neopraví, protože se znovu vybere stejný daemon. Užitečný popis pojmenuje daemona a zprávu, kterou odmítl.
Oprava na straně brány je druhý legitimní výsledek. Firmware, který přestane atribut posílat, přežije každý upgrade klienta, zatímco připnutý balíček přežije další vydání distribuce jen tehdy, když si někdo pamatuje, proč je připnutý.
Porovnejte obě cesty podle nákladů na údržbu, ne podle rychlosti. Obě mohou fungovat; jen jedna odstraní nesoulad dialektu.