Можно ли маршрутизировать данные между 2 устройствами защиты от проводов на одной машине?

Я хочу выяснить, сколько накладных расходов на мою машину создает с точки зрения задержки. Однако мой сервер удален, поэтому я хотел бы протестировать его исключительно на машине, чтобы избежать измерения задержки всей сети.

Итак, для измерения задержки я подумал о следующей настройке.

Я добавляю к машине два устройства защиты от проводов, wg0 и wg1. Затем я отправляю пакет в wg0, который шифрует пакет и отправляет его в wg1. Затем Wg1 расшифровывает его и отправляет на локальный порт, чтобы измерить время, которое проходит между отправкой и получением пакета.

My wg0 conf:

[Interface]
   Address = 10.0.0.1/24
   ListenPort = 51871

[Peer]
   AllowedIPs = 10.0.0.1/24, 10.0.1.1/24
   Endpoint = localhost:51872

My wg1 conf:

[Interface]
   Address = 10.0.1.1/24
   ListenPort = 51872

[Peer]
   AllowedIPs = 10.0.0.1/24, 10.0.1.1/24
   Endpoint = localhost:51871
I have tried using the following configuration but then I am unable to setup wg1 as the setup fails at

ip -4 route add 10.0.0.0/24 dev wg1
due to 
RTNETLINK answers: File exists

Which makes sense as because this is the IP range of the wg0 device

My wg0 conf:

[Interface]
   Address = 10.0.0.1/24
   ListenPort = 51871
   PostUp = route add -net 10.0.1.0/24 gw 10.0.0.1 
   PostDown = route delete -net 10.0.1.0/24 gw 10.0.0.1

[Peer]
   AllowedIPs = 10.0.0.1/24, 10.0.1.1/24
   Endpoint = localhost:51872

My wg1 conf:

[Interface]
   Address = 10.0.1.1/24
   ListenPort = 51872
   PostUp = route add -net 10.0.0.1/24 gw 10.0.1.1 
   PostDown = route delete -net 10.0.0.1/24 gw 10.0.1.1


[Peer]
   AllowedIPs = 10.0.0.1/24, 10.0.1.1/24
   Endpoint = localhost:51871

Однако я не могу настроить маршрутизацию так, чтобы мой пакет действительно проходил через устройства wg. Аппараты также не производят квитирование банкомата. Это вообще возможно? Или вы можете порекомендовать другую установку?

Моя ОС - это сервер Ubuntu 20.04. В качестве примечания я хочу сравнить это с другим измерением, которое я провел, когда одно из устройств защиты от проводов работает на виртуальной машине. В этой настройке я просто запустил wg0 на хосте и wg1 на виртуальной машине. По сути, теперь я хочу выяснить накладные расходы на запуск шлюза Wireguard на виртуальной машине по сравнению с запуском его изначально на машине.

Решение :

Как было предложено, теперь я запускаю второе устройство wg в другом пространстве имен.Настройка была простой, потому что даже если устройство wg перемещается в другое пространство имен, порт прослушивания остается в исходном пространстве имен. RTT составляет около 2/3 по сравнению с запуском wg1 на виртуальной машине Linux для всех, кто интересуется.

Спасибо за предложения!

1
задан 15 June 2021 в 02:38
1 ответ

Как и предлагалось, я использовал сетевые пространства имен. Вот настройка, с которой я закончил, хотя я не использовал конфигурационные файлы:

Настройка первого устройства wg:

sudo ip link add dev wg0 type 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 allowed-ips 10.0.0.0/24 endpoint localhost:51872
sudo ip link set up dev wg0

Настройка устройства wg1:

sudo ip netns add container
sudo ip link add wg1 type 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 allowed-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

А затем я просто запускаю клиент echo следующим образом:

sudo ip netns exec container ./udp_echo_server
1
ответ дан 28 July 2021 в 13:08

Теги

Похожие вопросы