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

Проблема с маршрутизацией в OpenVPN

Ниже представлена ​​топология моей сети openVPN. Это пример из кулинарной книги openvpn. вот мой файл конфигурации сервера (Fedora - это сервер):

proto udp
port 1194
dev tun
server 192.168.200.0 255.255.255.0

ca /etc/openvpn/cookbook/ca.crt
cert /etc/openvpn/cookbook/openvpnserver.crt
key /etc/openvpn/cookbook/openvpnserver.key
dh /etc/openvpn/cookbook/dh2048.pem
tls-auth /etc/openvpn/cookbook/ta.key 0

keepalive 10 60

push "route 192.168.4.0 255.255.255.0"
topology subnet

daemon
log-append /home/mazimi/Desktop/openvpn.log

client-config-dir /etc/openvpn/cookbook/clients
route 192.168.2.0 255.255.255.0 192.168.200.1

Вот это /etc/openvpn/cookbook/clients файл:

iroute 192.168.2.0 255.255.255.0

Это мой клиент openvpn (ubuntu):

client
proto udp
remote 192.168.3.1
port 1194
dev tun

ca /etc/openvpn/cookbook/ca.crt
cert /etc/openvpn/cookbook/client1.crt
key /etc/openvpn/cookbook/client1.key
tls-auth /etc/openvpn/cookbook/ta.key 1

daemon
log-append /root/openvpn.log

ns-cert-type server

Эта конфигурация работает нормально. Но почему для следующего перехода установлено значение 192.168.200.1? (Это локальный интерфейс, а не следующий переход). Разве это не должно быть 192.168.200.2? Поменял на 192.168.200.2. Единственная разница в том, что:

  1. Я не могу пинговать интерфейс ubuntu (192.168.3.254) с client1
  2. Я не могу пропинговать интерфейс Fedora (192.168.3.1) с client2. Все остальные IP-адреса доступны.

Может кто-нибудь объяснить?

Я считаю, что IP-адреса 192.168.200. * Являются артефактами того, как на самом деле работают туннели OpenVPN. OpenVPN в этой конфигурации по сути является двухточечным, и каждая точка получает свой собственный IP-адрес. При прокладке маршрута через туннель необходимо указать ближний конец туннеля. Думайте об этих IP-адресах как о внутренних для способа работы OpenVPN (для моего собственного пояснения я назначаю совершенно другой немаршрутизируемый блок, например, 10.0.0.0/8, если моя сеть 192.168.0.0/16; 10.0.0.0 Насколько я понимаю, IP-адреса / 8 существуют только для OpenVPN).

Напротив, с интерфейсом TAP вы фактически получите IP-адрес локальной сети, к которой вы подключаетесь, назначенный для OpenVPN.

Я уверен, что это где-то в Вопросы-Ответы, но я не вижу этого с первого взгляда.

Я считаю, что вам нужно использовать client-to-client директиве, и вам не хватает запросов маршрутизации для 192.168.3.0 и 192.168.4.0

На самом деле это урезанная версия моей собственной реализации OpenVPN, которая у меня есть. На самом деле вы не указываете это в своих деталях, но вам, вероятно, понадобится следующее, включенное в ваш /etc/sysctl.conf или под /etc/sysctl.d как на вашем сервере Fedora 16, так и на вашем клиенте Ubuntu 11.10, чтобы направлять трафик через них в качестве шлюза.

net.ipv4.ip_forward = 1

После того, как ты бежишь sysctl -a после того, как строка была введена, вы должны быть готовы к работе над конфигурацией OpenVPN. Я бы предложил попробовать следующее для конфигурации вашего сервера:

proto udp
port 1194
dev tun

ca /etc/openvpn/cookbook/ca.crt
cert /etc/openvpn/cookbook/openvpnserver.crt
key /etc/openvpn/cookbook/openvpnserver.key
dh /etc/openvpn/cookbook/dh2048.pem
tls-auth /etc/openvpn/cookbook/ta.key 0

server 192.168.200.0 255.255.255.0
topology subnet

client-config-dir /etc/openvpn/cookbook

client-to-client
route 192.168.2.0 255.255.255.0 192.168.200.2
route 192.168.4.0 255.255.255.0 192.168.200.1

keepalive 10 60

push "route 192.168.4.0 255.255.255.0"
topology subnet

daemon
log-append /home/mazimi/Desktop/openvpn.log

Затем, предполагая, что ваш сертификат клиента Ubuntu CN является клиентом, добавьте следующее в /etc/openvpn/cookbook/client1:

ifconfig-push 192.168.200.2 255.255.255.0
iroute 192.168.2.0 255.255.255.0

Затем, наконец, для вашего файла конфигурации клиента Ubuntu:

client
proto udp
remote 192.168.3.1 1194
dev tun

persist-key
persist-tun

ca /etc/openvpn/cookbook/ca.crt
cert /etc/openvpn/cookbook/client1.crt
key /etc/openvpn/cookbook/client1.key
tls-auth /etc/openvpn/cookbook/ta.key 1

daemon
log-append /root/openvpn.log

ns-cert-type server

Как я уже сказал, это урезанная версия того, что я использую. В моих конфигурациях несколько больше опций, чем у вас, но значений по умолчанию для них должно быть достаточно. Для меня мой client1 имеет 2 подсети (192.168.1.0/24 и 172.16.20.0/24). Мой corp OpenVPN сервер работает 10.20.30.0/24 и мой клиентский сервер OpenVPN работает на 10.8.0.0/24 с подключенными к нему клиентами. корпоративный сервер ovpn присвоено 10.20.30.1, а клиентский сервер овпн получает 10.20.30.2 и client1 получает 10.20.30.3 при подключении к корпоративный сервер ovpn.

Итак, конфигурация моего корпоративного сервера включает в себя следующее:

route 172.16.20.0 255.255.255.0 10.20.30.3
route 192.168.1.0 255.255.255.0 10.20.30.3
route 10.8.0.0 255.255.255.0 10.20.30.2

Пока файл CCD для client1 содержит следующее:

ifconfig-push 10.20.30.3 255.255.255.0
iroute 172.16.20.0 255.255.255.0
iroute 192.168.1.0 255.255.255.0
push "route 10.8.0.0 255.255.255.0"

И файл CCD для клиентский сервер овпн содержит следующее:

ifconfig-push 10.20.30.2 255.255.255.0
iroute 10.8.0.0 255.255.255.0
push "route 192.168.1.0 255.255.255.0"
push "route 172.16.20.0 255.255.255.0"
push "route 10.20.30.0 255.255.255.0"

Тем не менее ... С моего ноутбука на моем Wi-Fi, который получает IP 192.168.1.140, если я трассирую свой клиент, подключенный к клиентский сервер овпн как 10.8.0.30 я получаю следующее:

traceroute to 10.8.0.30 (10.8.0.30), 30 hops max, 60 byte packets
 1  192.168.1.1  2.108 ms  2.078 ms  2.460 ms
 2  192.168.1.2  3.370 ms  3.340 ms  3.671 ms
 3  10.20.30.2  20.250 ms  20.220 ms  20.518 ms
 4  10.8.0.30  33.505 ms  34.326 ms  34.809 ms

Вы можете игнорировать первый прыжок (192.168.1.1), так как это точка доступа / маршрутизатор, для которой настроены статические маршруты для 10.0.0.0/8 и 172.16.0.0/12, направленные на 192.168.1.2. client1IP-адрес. Просто для полноты, вот обратный маршрут от этого клиента (10.8.0.30).

 traceroute to 192.168.1.140 (192.168.1.140), 64 hops max, 52 byte packets
 1  10.8.0.1  8 ms  8 ms  8 ms
 2  10.20.30.3  21 ms  22 ms  24 ms
 3  192.168.1.140  24 ms  24 ms  23 ms