Puncte:0

Este posibil să direcționați datele între 2 dispozitive wireguard de pe aceeași mașină?

drapel de

Vreau să aflu cât de mult fireguard creează pe mașina mea în termeni de latență. Cu toate acestea, serverul meu este la distanță, așa că aș dori să-l testez numai pe mașină pentru a evita măsurarea întregii latențe a rețelei.

Deci, pentru măsurarea latenței, m-am gândit la următoarea configurație.

Adaug două dispozitive wireguard la mașină, wg0 și wg1. Apoi trimit un pachet către wg0, care criptează pachetul și îl trimite la wg1. Wg1 îl decriptează apoi și îl trimite la un port local pentru a măsura timpul necesar între trimiterea și primirea pachetului.

meu wg0 conf:

[Interfață]
   Adresa = 10.0.0.1/24
   ListenPort = 51871

[Peer]
   IP-uri permise = 10.0.0.1/24, 10.0.1.1/24
   Punct final = localhost:51872

meu wg1 conf:

[Interfață]
   Adresa = 10.0.1.1/24
   ListenPort = 51872

[Peer]
   IP-uri permise = 10.0.0.1/24, 10.0.1.1/24
   Punct final = localhost:51871
Am încercat să folosesc următoarea configurație, dar apoi nu reușesc să setez wg1, deoarece configurarea eșuează

ip -4 route add 10.0.0.0/24 dev wg1
din cauza 
RTNETLINK răspunde: Fișierul există

Ceea ce are sens pentru că acesta este domeniul IP al dispozitivului wg0

meu wg0 conf:

[Interfață]
   Adresa = 10.0.0.1/24
   ListenPort = 51871
   PostUp = route add -net 10.0.1.0/24 gw 10.0.0.1 
   PostDown = ștergere rută -net 10.0.1.0/24 gw 10.0.0.1

[Peer]
   IP-uri permise = 10.0.0.1/24, 10.0.1.1/24
   Punct final = localhost:51872

meu wg1 conf:

[Interfață]
   Adresa = 10.0.1.1/24
   ListenPort = 51872
   PostUp = route add -net 10.0.0.1/24 gw 10.0.1.1 
   PostDown = ștergere rută -net 10.0.0.1/24 gw 10.0.1.1


[Peer]
   IP-uri permise = 10.0.0.1/24, 10.0.1.1/24
   Punct final = localhost:51871

Cu toate acestea, nu pot configura rutarea astfel încât pachetul meu să traverseze efectiv dispozitivele wg. De asemenea, dispozitivele nu efectuează o strângere de mână atm. Este chiar posibil? Sau poți recomanda o altă configurație?

Sistemul meu de operare este un server Ubuntu 20.04. Ca o notă laterală, vreau să compar asta cu o altă măsurătoare pe care am luat-o în cazul în care unul dintre dispozitivele wireguard rulează într-o mașină virtuală. În această configurare, tocmai am rulat wg0 pe gazdă și wg1 în VM. Practic, acum vreau să aflu costul general al rulării unui gateway wireguard într-un VM în comparație cu rularea nativă pe mașină.

Soluţie:

După cum am sugerat, acum rulez al doilea dispozitiv wg într-un spațiu de nume diferit. Configurarea a fost simplă deoarece, chiar dacă dispozitivul wg este mutat într-un spațiu de nume diferit, portul de ascultare rămâne în spațiul de nume original. RTT este aproximativ 2/3 în comparație cu rularea wg1 într-un VM Linux pentru oricine este interesat.

Multumesc pentru sugestii!

A.B avatar
drapel cl
A.B
Utilizați în schimb spații de nume de rețea (sau containere).
user132645 avatar
drapel de
Mulțumesc mult pentru pont! Am funcționat cu spații de nume. Sunt destul de nou în asta.
A.B avatar
drapel cl
A.B
Puteți răspunde la propria întrebare cu soluția de lucru atunci.
A.B avatar
drapel cl
A.B
Îmi pare rău din nou pentru a sugera ceva: nu ar trebui să adăugați soluția *în interiorul* întrebării. Ar trebui să-l adaugi ca răspuns la întrebare, chiar dacă este propria ta întrebare.
user132645 avatar
drapel de
Nu-ți face griji, mă bucur să învăț ;)
Puncte:1
drapel de

După cum am sugerat, am folosit spații de nume de rețea. Iată configurarea cu care am ajuns, deși nu am folosit fișiere de configurare:

Configurarea primului dispozitiv wg:

sudo ip link add dev wg0 tip wireguard
sudo ip address add dev wg0 10.0.0.1/24
sudo wg set wg0 listen-port 51871 private-key ./wg0.key peer PEER1_PUBKEY permis-ips 10.0.0.0/24 punct final localhost:51872
sudo ip link set up dev wg0

Configurarea dispozitivului wg1:

sudo ip netns adăuga container
sudo ip link adăugați tip wg1 wireguard
sudo ip link set wg1 netns container
sudo ip -n container addr add 10.0.0.2/24 dev wg1
sudo ip netns exec container wg set wg1 listen-port 51872 private-key ./wg1.key peer PEER0_PUBKEY permit-ips 10.0.0.0/24 endpoint localhost:51871
sudo ip -n container link set wg1 up
sudo ip -n container route add default dev wg1

Și apoi pur și simplu rulez un client echo ca acesta:

sudo ip netns exec container ./udp_echo_server

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.