Таблицы маршрутизации в двух маршрутизаторах, подключенных через VPN
У меня есть два маршрутизатора Asus, подключенных через VPN через Интернет.Home
(VPN-клиент) сеть192.168.0.0/24
иWork
(VPN-сервер) сеть192.168.1.0/24
. Более подробная информация там .
Компьютеры внутри каждой сети не видят другую сторону сети VPN. Попытка понять таблицы маршрутизации на каждом маршрутизаторе:
Работа:
Destination Gateway Genmask Flags Metric Ref Use Type Iface
10.8.0.2 * 255.255.255.255 UH 0 0 0 tun21
78.57.123.254 * 255.255.255.255 UH 0 0 0 WAN0 eth0
169.254.39.0 * 255.255.255.0 U 0 0 0 LAN br0
10.8.0.0 10.8.0.2 255.255.255.0 UG 0 0 0 tun21
192.168.1.0 10.8.0.2 255.255.255.0 UG 0 0 0 tun21
192.168.0.0 * 255.255.255.0 U 0 0 0 LAN br0
78.57.120.0 * 255.255.252.0 U 0 0 0 WAN0 eth0
default 78.57.123.254 0.0.0.0 UG 0 0 0 WAN0 eth0
Дом:
Destination Gateway Genmask Flags Metric Ref Use Type Iface
default 78.61.155.254 0.0.0.0 UG 0 0 0 WAN0 vlan2
10.8.0.0 10.8.0.5 255.255.255.0 UG 0 0 0 tun14
10.8.0.5 * 255.255.255.255 UH 0 0 0 tun14
78.61.152.0 * 255.255.252.0 U 0 0 0 WAN0 vlan2
78.61.155.254 * 255.255.255.255 UH 0 0 0 WAN0 vlan2
192.168.0.0 10.8.0.5 255.255.255.0 UG 0 0 0 tun14
192.168.1.0 * 255.255.255.0 U 0 0 0 LAN br0
239.0.0.0 * 255.0.0.0 U 0 0 0 LAN br0
Попытка подключиться к ПК в домашней сети из рабочей сети:
Tracing route to 192.168.1.100 over a maximum of 30 hops
1 <1 ms <1 ms <1 ms router.asus.com [192.168.0.1]
2 2 ms 1 ms 1 ms 10.8.0.6
3 * * * Request timed out.
Насколько я понимаю, первая строка означает, что пакет отправляется на рабочий маршрутизатор, и это нормально. Строка 2 означает, что пакет передается на интерфейс. Но я не вижу такого IP ни в одной из обеих таблиц? Какой роутер принадлежит10.8.0.6
? Насколько я понимаю, это должно пройти10.8.0.2
. Что не так с моим пониманием?
1 ответ
Строка 2 означает, что пакет передан на интерфейс 10.8.0.6. Но я не вижу такого IP ни в одной из обеих таблиц?
Не совсем. Это означает, что маршрутизатор 10.8.0.6 ответил на ваш пакет, но ничего не говорит о том, как этот пакет был ему первоначально доставлен.
Поскольку маршрутизаторы по своей природе имеют несколько IP-адресов, относительно часто маршрут имеет один адрес в качестве «шлюза», но фактический шлюз отправляет ответы об ошибках, используя другой. 1 Это всё тот же шлюз.
В частности, в OpenVPN ранее конфигурация по умолчанию не использовала традиционную топологию «подсети», вместо этого по умолчанию использовалась имитация каналов «точка-точка» /30. Таким образом, первый клиент будет 10.8.0.1/30 (с VPN-сервером 10.8.0.2), второй клиент будет 10.8.0.5/30 (с VPN-сервером 10.8.0.6), третий клиент будет 10.8. 0.9/30 (с VPN-сервером 10.8.0.10)... и так далее.
Как вы можете видеть, у клиентов будут подсети и адреса «/30», представляющие один и тот же шлюз VPN, и любой из них потенциально может быть выбран для ответов об ошибках ICMP (что и показывает «traceroute»).
В большинстве случаев это не имеет значения; отсутствие подключения вызвано чем-то другим – возможно, правила брандмауэра «домашнего» маршрутизатора блокируют пакеты.
Но если вам конкретно нужна топология в стиле подсети (где все клиенты имеют один и тот же адрес шлюза), вы можете изменить режим топологии в конфигурации сервера OpenVPN, хотя нет никакой гарантии, что ASUS предоставит эту опцию (она может быть где-то в разделе "передовой").
1 (И, кстати, ваша VPN используетtun
интерфейс – это туннель «уровня 3», который не имеет адресации MAC-уровня, которая была бы необходима для того, чтобы параметр «шлюз» таблицы маршрутизации имел какой-либо эффект. Это означает, что ваш маршрут «192.168.1.0/24 через 10.8.0.2 dev tun21» не имеет возможности фактически запросить доставку пакета конкретно на 10.8.0.2 — он просто всегда будет идти к тому, что находится на другой конец tun21.)