Ho già fatto qualche ricerca e più o meno capisco cosa tun0
fa un'interfaccia. Ho ottenuto quanto segue da varie fonti,
I pacchetti inviati da un sistema operativo tramite un dispositivo tun / tap vengono consegnati a un programma spazio utente che si collega al dispositivo. Un programma spazio utente può anche passare i pacchetti in un dispositivo tun / tap. In questo caso il dispositivo tun / tap consegna (o "inietta") questi pacchetti allo stack di rete del sistema operativo, emulando così la loro ricezione da una fonte esterna. Le interfacce tun / tap sono solo interfacce software, il che significa che esistono solo nel kernel e, a differenza delle normali interfacce di rete, non hanno componenti hardware fisici (e quindi non c'è alcun filo fisico collegato a loro).
Puoi pensare a un'interfaccia tun / tap come a una normale interfaccia di rete che, quando il kernel decide che è arrivato il momento di inviare i dati "sul filo", invia invece i dati ad alcuni programmi di spazio utente collegati all'interfaccia.
Ora, se confronto gli output per eth0
e tun0
, vedo qualcosa del genere.
ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:14:22:50:78:71
inet addr:172.16.210.32 Bcast:172.16.255.255 Mask:255.255.0.0
...
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
<snipped>
ifconfig tun0
tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.8.0.1 P-t-P:10.8.0.2 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
Ora, se proviamo a confrontare i due, troviamo queste differenze,
eth0
ha un indirizzo MAC e comprensibilmentetun0
no.eth0
sta lavorando in modalità di trasmissione etun0
sta lavorando in modalità punto a punto.
Ho i seguenti punti che non capisco.
Qual è il ruolo dell'indirizzo
P-t-P:10.8.0.2
in questo scenario?Perché la subnet mask è
tun0
impostata su 255.255.255.255?