Op Ubuntu Touch worden twee vragen als één gesteld: draait dit desktoppakket, en krijgt de telefoon een VPN. De container beantwoordt de eerste. Niets erin beantwoordt de tweede, want een container heeft zijn eigen kijk op het bestandssysteem, terwijl de netwerkstack en het beleid ervan bij de telefoon horen. Volg waar elk stuk leeft voordat je een werkstroom belooft.

Twee vragen die op één lijken

Een desktopapplicatie in een container draaien is een prestatie op het gebied van verpakken. De verbindingsbeheerder van de telefoon een tunnel laten opzetten, hem door slaap heen laten vasthouden en laten beslissen wat er gebeurt als hij wegvalt, is platformwerk. Een installatieprogramma dat in de container voltooit, bewijst alleen dat de afhankelijkheden daar zijn opgelost. Het zegt niets over of de telefoon een goedgekeurde VPN-plugin heeft, of de tunnel een herstart overleeft, of welke applicaties hem gebruiken.

Houd de twee in aparte zinnen in elke beoordeling. Ze samenvoegen is hoe een laboratoriumdemo een supportverplichting wordt die niemand kan nakomen.

Wat de containergrens werkelijk levert

Een Libertine-container is een schrijfbare omgeving bovenop een telefoon waarvan het basissysteem alleen-lezen is. Daarom werkt het installeren van een pakket daar überhaupt, en daarom werkt dezelfde installatie op het basissysteem niet. Hij draait applicaties ook op de voorgrond, geïntegreerd met het scherm van de telefoon, en hij is uitdrukkelijk geen manier om serversoftware te draaien of een proces op de achtergrond in leven te houden. Die beperkingen tellen voor een VPN-client, die verondersteld wordt aan te blijven.

libertine-container-manager list
libertine-container-manager info -i <container-id>
libertine-launch -i <container-id> bash

De lijst toont welke containers bestaan, en de opdracht info rapporteert de distributie en de installatiestatus. De opdracht launch geeft je een shell binnenin, en dat is de juiste plek om te inspecteren wat het pakket werkelijk heeft geïnstalleerd. Wat het je niet geeft, is gezag over het netwerk van de telefoon. Een binair bestand in de container dat een tunnel wil maken, heeft een geprivilegieerde interface nodig, en die interface hoort bij het platform, niet bij de container.

Waar de netwerkstatus van de telefoon leeft

Namen, routes en verbindingsprofielen worden beheerd door de netwerkdienst van de telefoon, buiten elke container. Een tunnelvermelding verschijnt daar alleen wanneer het platform dat VPN-type ondersteunt en de operator de bijbehorende plugin heeft geïnstalleerd.

nmcli connection show
ip route get 10.42.0.10
ip -br addr show

De verbindingslijst is het gezaghebbende antwoord op de vraag of er een VPN-profiel op deze telefoon staat. Als jouw tunnel niet op die lijst staat, zal geen enkele hoeveelheid werk in de container hem laten verschijnen. De routeopzoeking beantwoordt een smallere vraag: welke interface deze telefoon voor één bestemming zou gebruiken. Dat is de controle die na elke wijziging herhaald moet worden, want een profiel kan bestaan en toch niet de weg zijn die een bepaalde applicatie neemt.

Lees één werkstroom van begin tot eind

Kies de echte taak, bijvoorbeeld een particuliere database bereiken met een desktopclient. Volg dan de stroom: de applicatie start in de container, lost de hostnaam op via welke resolver de telefoon ook gebruikt, opent een socket, en de routering van de telefoon beslist welke interface hem draagt. Elke stap heeft een eigenaar. De container bezit de applicatie, het platform bezit de resolver en de routering, en het VPN-eindpunt bezit de authenticatie. Een fout bij een stap is een fout van die stap, niet van het hele idee.

Test de particuliere hostnaam en het particuliere adres apart. Een naam die naar een openbaar adres resolvet en een adres dat een tunnel in wordt gerouteerd, zijn verschillende waarnemingen, en ze verwarren levert een rapport op dat niet reproduceerbaar is.

Wat vast te leggen als het antwoord nee is

Soms is de eerlijke conclusie dat deze telefoon, op deze release, de werkstroom niet kan dragen. Schrijf dat op met het bewijs: welke verbindingstypen het platform biedt, welke clients zijn geprobeerd en bij welke stap het misging.

Noem dan het alternatief dat is geaccepteerd, of dat nu een ander apparaat, een andere toegangsmethode of een smallere taak is die in de container blijft zonder particuliere netwerken aan te raken.

Weerst de verleiding om het basissysteem opnieuw te mounten of onverklaarde rechten te geven om een oud recept te reproduceren. Een telefoon die opstart is niet hetzelfde als een telefoon waarover je een half jaar later nog kunt redeneren wat het netwerkbeleid betreft.

Gerelateerde artikelen