Назад | Перейти на главную страницу

Открытая проблема с VPN, серверы не могут правильно маршрутизировать

Мне нужна помощь в этом вопросе. В основном у меня есть сервер, на котором установлен openvpn. Он работает нормально, и я могу пинговать сервер, к которому я подключен, и могу пинговать обратно. Что я пытаюсь сделать, так это получить доступ к другим серверам, которые подключены к нему в их собственной частной сети.

В настоящее время мой VPN настроен на 10.8.0.0/24, а мои серверы настроены на 10.0.0.0/24. Подключенный компьютер может пинговать и 10.8.0.1 (сервер vpn), и 10.0.0.1 (частный IP-адрес сервера, на котором установлен VPN), но не может пинговать 10.0.0.2. Когда я делаю tcpdump, я вижу, что запрос поступает на сервер 10.0.0.2, но он не знает, что делать с запросом после этого, поскольку он не может найти исходный 10.8.0.10 (компьютер, подключенный к vpn в качестве клиента ), так как это ip на vpn на другом сервере. Есть ли способ сообщить 10.0.0.0/24, куда направлять трафик? Если да, то как. Я пробовал кучу разных вещей от изменения iptables и маршрутов, но ничего не работает.

Вот tcp-запрос с сервера 10.0.0.2, который был отправлен моим клиентом 10.8.0.10:

IP 10.8.0.10 > 10.0.0.2: ICMP echo request, id 1
IP 10.0.0.2 > 10.8.0.10: ICMP echo reply, id 1
IP 10.8.0.10 > 10.0.0.2: ICMP net 10.8.0.10 unreachable - unknown

Для заметок:

Да IP Forwarding включен на всех серверах.

Для серверов 10.0.0.0/24 нет DHCP-сервера, поскольку все они статические.

Позвольте мне знать, если вам нужно что-нибудь еще.

редактировать

Так что, как кто-то предложил, я должен дать немного больше информации, чтобы я это сделал.

Все задействованные серверы работают под управлением Server Ubuntu 12.04 или 14.04, и все их программное обеспечение обновлено. Сервер 10.0.0.2 имеет следующий набор в качестве одного из маршрутов, который, как я полагал, будет работать, но когда я пытаюсь выполнить команду ping 10.8.0.1, я получаю ошибки. Серверы настроены в сети моим хостом, поэтому я не могу полностью это контролировать.

Таблица маршрутизации для 10.0.0.2 с отключенным IP-адресом серверов

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         -.-.-.-         0.0.0.0         UG    100    0        0 eth0
10.0.0.0        *               255.255.0.0     U     0      0        0 tun1
10.8.0.0        10.0.0.1        255.255.255.0   UG    0      0        0 tun1

PING 10.8.0.1 (10.8.0.1) 56(84) bytes of data.
From 10.8.0.1 icmp_seq=1 Destination Net Unknown
From 10.8.0.1 icmp_seq=2 Destination Net Unknown

Таблица маршрутизации для 10.0.0.1 с отключенным IP-адресом моих серверов

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         -.-.-.-         0.0.0.0         UG    0      0        0 eth0
10.0.0.0        *               255.255.0.0     U     0      0        0 tun1
10.8.0.0        10.8.0.2        255.255.255.0   UG    0      0        0 tun0
10.8.0.2        *               255.255.255.255 UH    0      0        0 tun0
  • Вам не нужно включать переадресацию IP на всех серверах. Это необходимо только на сервере, который выполняет маршрутизацию между несколькими сетями, например, на вашем сервере OpenVPN.
  • Кажется, что машина, работающая на 10.0.0.2, не знает, как маршрутизировать обратно трафик, исходящий из вашего 10.8.0.0/24. Вам необходимо установить правильные маршруты: либо непосредственно на этом хосте, либо, что может быть более умно, если задействовано больше машин, на шлюзе по умолчанию, если он существует. [Этот шаг сообщает вашему устройству / устройствам, как достичь 10.8.0.0/24.] Как это сделать, зависит от вашей ОС и задействованных устройств. (Может быть, было бы неплохо поделиться некоторыми подробностями.)

Итак, спустя очень долгое время я наконец понял, в чем дело. Оказывается, моя конфигурация vpn все время была правильной. Ибанц был частично прав насчет шлюза, не зная, куда идти. Происходило то, что запросы 10.8.0.0/24 поступали во вторичную сеть и терялись, поскольку это была сеть 10.0.0.0/24, которая не знала, как с этим справиться.

Что мне нужно было сделать, так это связаться с моим хостом и попросить их назначить диапазон ip 10.8.0.0/24 моему серверу 10.0.0.1, и теперь все работает как шарм. Спасибо всем за вклад, действительно помог мне сузить проблему.

When I do a tcpdump I can see that the request is getting to the 10.0.0.2 server, but it does not know what to do with the request after that as it can not find the original 10.8.0.10

Вы устанавливаете маршрут на шлюзе 10.0.0.0/24. Например, если ваш маршрутизатор - это gw на 10.0.0.0/24. Вы устанавливаете статический маршрут на 10.8.0.0/24 через IP-адрес вашего VPN-хоста (диапазон 10.0.0.0/24). Когда ваш сервер 10.0.0.2 видит входящий пакет, но он не знает, куда его отправить, поэтому он запросит шлюз. Затем шлюз должен знать маршрут, чтобы отправить пакет обратно.