Я хочу выяснить, сколько накладных расходов на мою машину создает с точки зрения задержки. Однако мой сервер удален, поэтому я хотел бы протестировать его исключительно на машине, чтобы избежать измерения задержки всей сети.
Итак, для измерения задержки я подумал о следующей настройке.
Я добавляю к машине два устройства защиты от проводов, 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 для всех, кто интересуется.
Спасибо за предложения!
Как и предлагалось, я использовал сетевые пространства имен. Вот настройка, с которой я закончил, хотя я не использовал конфигурационные файлы:
Настройка первого устройства 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