LINUX.ORG.RU
ФорумAdmin

Проброс локальной сети через тунель Openvpn

 , , ,


0

2

Всем привет! Есть следующая проблема, имеется виртуальный hyper-v openvpn сервер на debian 9, который находится в домашней сети, в этой же сети openwrt шлюз, который раздает локальные IP 192.168.1.x, и он же подключен к openvpn как клиент при этом через файл ccd получает ip 11.1.1.2, внутри данной сети все пк пингуют друг друга, как через openvpn так и по локальной сети, проблема заключается в удаленном клиенте, до которого пинги из домашней сети не проходят через openvpn сервер. Клиент находится в своей локальной сети, на интерфейсе прописана статика 10.59.0.199, по openvpn так же через ccd получает ip 11.1.1.3, со стороны клиента, при подключении к серверу openvpn, все пк как по туннелю 11.1.1.х, так и по домашней локальной сети 192.168.1.x все пингуются. Задача подключить только этого клиента к домашней сети, чтоб до него дошел пинг с домашней сети.

Схема примерно такая: домашний клиент 192.168.1.x -> шлюз на openwrt 192.168.1.1\11.1.1.3 -> Openvpn сервер 192.168.1.3\11.1.1.1 -> интернет ->удаленный клиент 10.59.0.199\11.1.1.3

Т.е. если вкратце со стороны 192.168.1.x пингуются все кроме удаленного клиента, с удаленного клиента пингуются все пк по любым адресам в домашней сети. В удаленной сети клиент 10.59.0.199 это ПК получающий интернет от cisco 10.59.0.1, т.е. он не является шлюзом.

конфиг сервера:

port 777

proto tcp

dev tap

ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/server.crt
key /etc/openvpn/keys/server.key
dh /etc/openvpn/keys/dh2048.pem

server 11.1.1.0 255.255.255.0

topology subnet

client-config-dir /etc/openvpn/ccd

ifconfig-pool-persist ipp.txt

route 192.168.1.0 255.255.255.0
route 10.59.0.0 255.255.255.0

tls-server
tls-auth /etc/openvpn/keys/ta.key 0
tls-timeout 120
auth SHA1
cipher BF-CBC

client-to-client

keepalive 10 120

comp-lzo

max-clients 50

user nobody
group nogroup

persist-key
persist-tun

status openvpn-status.log
log /var/log/openvpn.log

verb 9

mute 20

crl-verify /etc/openvpn/easy-rsa/2.0/keys/crl.pem

конфиг удаленного клиента:

remote мой ip 777
client
dev tap
proto tcp
topology subnet
resolv-retry infinite
nobind
user nobody
group nogroup
persist-key
persist-tun
ca C:\\OpenVPN\\ssl\\ca.crt
cert C:\\OpenVPN\\ssl\\work_pc.crt
key C:\\OpenVPN\\ssl\\work_pc.key
tls-client
tls-auth C:\\OpenVPN\\ssl\\ta.key 1
auth SHA1
comp-lzo
verb 4
mute 20

ccd файлы: openwrt шлюз домашней сети

ifconfig-push 11.1.1.2 255.255.255.0
push "route 10.59.0.0 255.255.255.0 11.1.1.1"
iroute 192.168.1.0 255.255.255.0

work_pc ПК удаленного клиента

ifconfig-push 11.1.1.3 255.255.255.0
push "route 192.168.1.0 255.255.255.0 11.1.1.1"
iroute 10.59.0.0 255.255.255.0

Со стороны домашней сети, при трассировке 10.59.0.199, трассировка обрывается на 3 скачке.

Трассировка маршрута к 10.59.0.199 с максимальным числом прыжков 30

  1    <1 мс    <1 мс    <1 мс  OpenWRT.lan [192.168.1.1]
  2     3 ms    36 ms     2 ms  11.1.1.1
  3     *        *        *     Превышен интервал ожидания для запроса.
Понятно, что на openvpn сервере не хватает маршрута, но как он должен примерно выглядеть, не совсем понятно?

Есть у кого-нибудь какие идеи? Рассматриваются любые иеди\критика и т.п. =)

Идея следующая:

1. на сервере openvpn сделать iroute на сетку 10.59.0

2. удаленный клиент должен знать о сетке 192.168.1

najar
()
Последнее исправление: najar (всего исправлений: 2)
Ответ на: комментарий от najar

1 Попробую прописать в конфиге сервера

iroute 10.59.0.0 255.255.255.0
я правильно понял?

2 роут на сетку 192.168.1.x есть у удаленного клиента, пинги в домашнюю сеть идут, в обратную сторону от сервера openvpn - нет. rout print на удаленном клиенте:

Активные маршруты:
Сетевой адрес           Маска сети      Адрес шлюза       Интерфейс  Метрика
          0.0.0.0          0.0.0.0        10.59.0.1      10.59.0.199    291
        10.59.0.0    255.255.255.0         On-link       10.59.0.199    291
      10.59.0.199  255.255.255.255         On-link       10.59.0.199    291
      10.59.0.255  255.255.255.255         On-link       10.59.0.199    291
         11.1.1.0    255.255.255.0         On-link          11.1.1.3    291
         11.1.1.3  255.255.255.255         On-link          11.1.1.3    291
       11.1.1.255  255.255.255.255         On-link          11.1.1.3    291
        127.0.0.0        255.0.0.0         On-link         127.0.0.1    331
        127.0.0.1  255.255.255.255         On-link         127.0.0.1    331
  127.255.255.255  255.255.255.255         On-link         127.0.0.1    331
    172.22.163.96  255.255.255.240         On-link     172.22.163.97   5256
    172.22.163.97  255.255.255.255         On-link     172.22.163.97   5256
   172.22.163.111  255.255.255.255         On-link     172.22.163.97   5256
      192.168.1.0    255.255.255.0         11.1.1.1         11.1.1.3    291
        224.0.0.0        240.0.0.0         On-link         127.0.0.1    331
        224.0.0.0        240.0.0.0         On-link       10.59.0.199    291
        224.0.0.0        240.0.0.0         On-link     172.22.163.97   5256
        224.0.0.0        240.0.0.0         On-link          11.1.1.3    291
  255.255.255.255  255.255.255.255         On-link         127.0.0.1    331
  255.255.255.255  255.255.255.255         On-link       10.59.0.199    291
  255.255.255.255  255.255.255.255         On-link     172.22.163.97   5256
  255.255.255.255  255.255.255.255         On-link          11.1.1.3    291

rain59rus
() автор топика
Ответ на: комментарий от rain59rus

192.168.1.0 255.255.255.0 11.1.1.1 11.1.1.3 291

Не правильный маршрут. Удали его. Клиент у тебя по дефолту все пакеты на 10.59.0.1 должен слать. Так ты со стороны клиента получишь dest host unreachable

najar
()
Ответ на: комментарий от najar

да, при удалении этого маршрута клинет засылает пакеты на 10.59.0.1, но этот шлюз ни чего не знает и не должен знать о ovpn тунеле, т.к. нужен именно этот клиент в удаленной сети с адресом 10.59.0.199, удалил маршрут соответственно со стороны клиента все перестало работать, из домашней сети все без изменений...

C:\WINDOWS\system32>route delete 192.168.1.0 mask 255.255.255.0 11.11.1.1
OK
C:\WINDOWS\system32>tracert 192.168.1.1

Трассировка маршрута к 192.168.1.1 с максимальным числом прыжков 30

  1     6 ms     1 ms     1 ms  10.59.0.1
  2     *        *        *     Превышен интервал ожидания для запроса.

м.б. я плохо объяснил в общем вот так выглядит сеть:
http://forzeinc.3dn.ru/tmp/1.png

upd. Извиняюсь за косяк, в общем если через файлы ccd выставлять роуты на 11.1.1.1 то пинги с клиента не идут, если ставить 11.1.1.2 (т.е. интернет шлюз домашней сети) то со стороны клиента пингуются все пк из домашней сети, но из домашней сети не пингуется сам клиент, в общем проблема именно в ovpn сервере, который не знает куда какие пакеты дальше слать, а шлюз домашней сети не знает, что за 11.1.1.3 находится ПК с ip 10.59.0.199 к которому и нужен доступ..

root@V-OPENVPN:/# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         OpenWRT.lan     0.0.0.0         UG    0      0        0 eth0
11.1.1.0        0.0.0.0         255.255.255.0   U     0      0        0 tap0
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
root@V-OPENVPN:/#

маршруты на openwrt

root@OpenWRT:~# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         10.95.255.126   0.0.0.0         UG    0      0        0 pppoe-WAN
10.59.0.0       11.1.1.1        255.255.255.0   UG    0      0        0 tap0
10.95.255.126   *               255.255.255.255 UH    0      0        0 pppoe-WAN
11.1.1.0        *               255.255.255.0   U     0      0        0 tap0
192.168.1.0     *               255.255.255.0   U     0      0        0 eth0
root@OpenWRT:~#

rain59rus
() автор топика
Ответ на: комментарий от najar
C:\Windows\system32>tracert 10.59.0.119

Трассировка маршрута к 10.59.0.119 с максимальным числом прыжков 30

  1    <1 мс    <1 мс    <1 мс  192.168.1.1
  2     3 ms     3 ms     3 ms  11.1.1.1
  3     *        *        *     Превышен интервал ожидания для запроса.
  4  ^C
C:\Windows\system32>tracert 11.1.1.3

Трассировка маршрута к ISO-LACOSTE [11.1.1.3]
с максимальным числом прыжков 30:

  1    <1 мс    <1 мс    <1 мс  192.168.1.1
  2     6 ms     6 ms     5 ms  ISO-LACOSTE [11.1.1.3]

Трассировка завершена.

Это при условии, что шлюзом будет являться сервер ovpn, на нем я не прописывал ни каких дополнительных роутов, если притаком конфиге кидать трассировку в домашнюю сеть, с рабочего пк, получаю следующее:

C:\WINDOWS\system32>tracert 11.1.1.2

Трассировка маршрута к 11.1.1.2 с максимальным числом прыжков 30

  1    12 ms     9 ms     5 ms  11.1.1.2

Трассировка завершена.

C:\WINDOWS\system32>tracert 192.168.1.1

Трассировка маршрута к 192.168.1.1 с максимальным числом прыжков 30

  1     5 ms     7 ms     5 ms  11.1.1.1
  2     7 ms     6 ms     7 ms  192.168.1.1

Трассировка завершена.

C:\WINDOWS\system32>tracert 192.168.1.2

Трассировка маршрута к 192.168.1.2 с максимальным числом прыжков 30

  1     5 ms     6 ms     4 ms  11.1.1.1
  2     *        *        *     Превышен интервал ожидания для запроса.
  3     *     ^C
C:\WINDOWS\system32>
т.е. ovpn сервер не знает ни домашнюю сеть, ни рабочую, если шлюзом выставить openwrt, то на есть маршруты для домашней сети, из-за чего клиент из рабочей сети начинает пинговать всю домашнюю сеть, как по 11.1.1.х, так и по 192.168.1.х

rain59rus
() автор топика
Ответ на: комментарий от najar

это стандартные маршруты, я ни чего не изменял\добавлял в роуты на openvpn сервере, да меня это тоже чутка смутило, но похоже в debian 9 это вполне нормально, попытался указать нормально шлюз сети, в итоге вот такой вот бред:

root@V-OPENVPN:/home/esmertec# route del -net 192.168.1.0/24 gw 0.0.0.0
root@V-OPENVPN:/home/esmertec# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         OpenWRT.lan     0.0.0.0         UG    0      0        0 eth0
10.59.0.0       11.1.1.1        255.255.255.0   UG    0      0        0 tap0
11.1.1.0        0.0.0.0         255.255.255.0   U     0      0        0 tap0
root@V-OPENVPN:/home/esmertec# route add -net 192.168.1.0/24 gw 192.168.1.1
SIOCADDRT: Сеть недоступна

c 11.1.1.0 gw 0.0.0.0 та же история, есть подозрение, что гйет берется из значения default, но я до этого в роутах особо не шарил, утверждать не буду...

rain59rus
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.