Ich folge dem Tutorial, um OpenVPN zu lernen .
indem let's try it
ich den Schritten des Teils folge : Ich benutze OpenVPN, um ein Interface tun2 zu erstellen und ihm eine IP zuzuweisen
sudo OpenVPN --mktun --dev tun2
sudo ip link set tun2 up
sudo ip addr add 10.0.0.1/24 dev tun2
dann verwende ich tcpdump, um die durchlaufenden Pakete zu überwachen tun2
sudo tcpdump -i tun2
und ich gebe ping 10.0.0.2
am terminal ein, aber ich sehe nichts am tcpdump ping
ausgang , auch der steckt fest ohne irgendetwas auszugeben.
Im Tutorial heißt es, da der Schnittstelle von tun2 eine IP 10.0.0.1/24 zugewiesen wurde, sollte das Ping-Paket mit 10.0.0.2 durch tun2
co gehen, da es eine Standardroute gibt. Aber das passiert in meinem Fall nicht.
#sudo route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 wlan0
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 tun2
192.168.0.0 0.0.0.0 255.255.255.0 U 9 0 0 wlan0
Und es ist auch seltsam, dass der Ping stecken bleibt, ohne etwas auszugeben. Im Tutorial sollten die Ergebnisse wie folgt aussehen:
# ping 10.0.0.2
PING 10.0.0.2 (10.0.0.2) 56(84) bytes of data.
From 10.0.0.1 icmp_seq=2 Destination Host Unreachable
From 10.0.0.1 icmp_seq=3 Destination Host Unreachable
Übrigens: Liegt es an Firewalls und sollte Iptables hinzugefügt werden?
quelle
tcpdump
, aktivieren Sie die IPv4-Weiterleitung:echo 1 > /proc/sys/net/ipv4/ip_foward
und versuchen Sie es erneut: Sie werden feststellen, dass das Paket dietun
Schnittstelle verlässt , um zureth0
Schnittstelle zu gelangen. Immer noch keine Antwort, da 10.0.0.2 keine öffentliche, routingfähige Adresse ist, aber Sie werden zumindest sehen, dass WENN zum Leben erweckt wird.Antworten:
In Ihrem Tutorial erfahren Sie genau, wohin das Paket gesendet wird, aber es ist nicht ganz klar, warum es dort gesendet wird. Entweder Sie oder das Lernprogramm verwechseln "Standardroute" mit "Standardroute erstellt".
Wenn Sie einer Schnittstelle eine IP-Adresse zuweisen, wird "standardmäßig" eine Subnetzroute über diese erstellt. Wenn Sie in Ihrem Beispiel tun2 10.0.0.1/24 zugewiesen haben , wurde eine entsprechende 10.0.0.0/24-Route 1 erstellt .
Eine "Standardroute" bedeutet jedoch speziell die am wenigsten spezifisch mögliche Route, d.
0.0.0.0/0
H. Für IPv4 oder::/0
IPv6. Sie nicht bekommen diese Routen automatisch, und Sie können oft nicht , wie sie typischerweise ein Gateway - Set benötigen, das erst später bekannt.Die Routing-Tabelle ist also korrekt. Ihre Pakete durchlaufen tun2 nicht, da tun2 mit nichts verbunden ist , wie Ihr Beispiel zeigt.
Es reicht nicht aus , lediglich zu schaffen eine tun - Schnittstelle (wie es nicht genug ist , eine Ethernet - Karte hinzufügen) - Sie müssen auch verbinden es zu etwas. Für Ethernet muss offensichtlich ein Kabel eingesteckt werden, und für Tun-Geräte muss auf der anderen Seite ein Programm ausgeführt werden.
Das heißt, Sie müssen einen VPN-Client mit OpenVPN einrichten und ihn anweisen, tun2 als VPN-Gerät zu verwenden. (Natürlich brauchen Sie auch einen OpenVPN-Server woanders.)
1 (aka 10.0.0.0 Maske 255.255.255.0 - aber besser mit dem
ip route
Tool stattroute -n
.)quelle
tun2
mitsudo OpenVPN --mktun --dev tun2
sudo ip link set tun2 up
und schrieb dann einen VPN-Client paste.ubuntu.com/12700613 und führte das Client-Programm aus. Und es funktioniert wie du gesagt hast. Aber es scheint mir, dass zwei Tun-Geräte erstellt wurden, eines aus dem OpenVPN-Befehl und eines aus dem Client-Programm. also wo irre ich mich? warum gibt es zwei Geräte? Wie entsprechen sie dem gleichen Namentun2
?