Я следую учебному пособию, чтобы изучить OpenVPN.

следуя шагам части: let's try it я использую OpenVPN для создания интерфейса tun2 и назначаю ему IP

sudo OpenVPN --mktun --dev tun2
sudo ip link set tun2 up
sudo ip addr add 10.0.0.1/24 dev tun2

затем я использую tcpdump для мониторинга пакетов, проходящих через tun2

sudo tcpdump -i tun2 

и я ping 10.0.0.2 на терминале, но ничего не вижу на выходе tcpdump, также ping застрял, ничего не выводя.

в учебном пособии говорится, что, поскольку интерфейсу tun2 назначен IP 10.0.0.1/24, пакет ping с 10.0.0.2 должен пройти через tun2 будет маршрут по умолчанию. Но этого не происходит в моем случае.

#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

И еще странно, что пинг застрял, ничего не выводя. В учебнике результаты должны быть такими:

# 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

Кстати: это из-за брандмауэров и iptables должны быть добавлены?

1 ответ1

3

Ваш урок правильно о том, куда пакет пойдет, но не очень понятно, почему он идет туда. Либо вы, либо учебник путаете "маршрут по умолчанию" с «маршрутом, созданным по умолчанию».

Когда вы назначаете IP-адрес интерфейсу, через него создается маршрут подсети "по умолчанию". В вашем примере, когда вы назначили 10.0.0.1/24 в tun2, она создает соответствующий 10.0.0.0/24 маршрут 1.

Но "маршрут по умолчанию" определенно означает маршрут с наименьшей возможной вероятностью, то есть 0.0.0.0/0 для IPv4 или ::/0 для IPv6. Вы не получаете эти маршруты автоматически, и вы часто не можете, поскольку они обычно нуждаются в наборе шлюза, который известен только позже.


Так что таблица маршрутизации верна. Ваши пакеты не проходят через tun2, потому что tun2 ни к чему не подключен, как показывает ваш пример.

Недостаточно просто создать интерфейс Tun (точно так же, как недостаточно добавить карту Ethernet) - вы также должны подключить его к чему-либо. Для Ethernet это, очевидно, включает в себя подключение кабеля, а для устройств Tun должна быть запущена программа на другом конце.

То есть вы должны настроить VPN-клиент с использованием OpenVPN и указать ему использовать tun2 в качестве VPN-устройства. (Конечно, вам также понадобится сервер OpenVPN где-нибудь еще.)


1 (он же маска 10.0.0.0 255.255.255.0 - но лучше использовать инструмент ip route вместо route -n .)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .