Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: подсети тунеля openvpn не видят друг друга  (Прочитано 8690 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн niksan321

  • Автор темы
  • Новичок
  • *
  • Сообщений: 32
    • Просмотр профиля
есть внешняя локалка(далее просто внешка) 176.77.x.x в ней 2 сервака на убенте 176.77.x.a(сервер-впн) и 176.77.x.b(клиент-впн) в каждом серваке помимо сетевух смотрящих во внешку есть ещё по сетевухе, смотрящих в свои локалки сервер-впн 192.168.0.0/24 и клиент-впн 192.168.1.0/24
ип серваков в их локалках: сервера-впн 192.168.0.5, клиента-впн 192.168.1.1 между ними проброшен туннель с помощью опенвпн конфиг сервера-впн -
(Нажмите, чтобы показать/скрыть)
файл клиента из папки /etc/openvpn/ccd -
(Нажмите, чтобы показать/скрыть)
конфиг клиента-впн -
(Нажмите, чтобы показать/скрыть)
вобщем тунель поднимается, серваки друг друга видят и пингуют по ип их локалок, то есть, с сервера-впн я пингую 192.168.1.1 и он пингуется, аналогично с клиента-впн пингую 192.168.0.5 и тоже нормально, но если я хочу пингануть с клиента-впн пк из локалки сервера впн, допустим 192.168.0.100, то ничего не выходит -
(Нажмите, чтобы показать/скрыть)
аналогично и с локалкой клиента-впн
route-n сервера-впн
(Нажмите, чтобы показать/скрыть)
route-n клиента-впн
(Нажмите, чтобы показать/скрыть)

проще говоря, локальные подсети серваков не видят друг друга, как поправить?
в /etc/sysctl.conf - прописано net.ipv4.ip_forward=1
в IPTABLE - на сервере-впн только маскарадинг на eth0(176.77.x.a) - чтобы интернет был в локалке сервера-впн, аналогично и с клиентом-впн


Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28469
    • Просмотр профиля
Re: подсети тунеля openvpn не видят друг друга
« Ответ #1 : 26 Февраля 2012, 04:16:48 »
1. Это
Цитировать
Форум русскоязычного сообщества Ubuntu
Будьте так добры, пишите по-русски.

2. Ссылка по теме: https://forum.ubuntu.ru/index.php?topic=184209.0
« Последнее редактирование: 26 Февраля 2012, 04:28:50 от AnrDaemon »
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн MooSE

  • Старожил
  • *
  • Сообщений: 1156
    • Просмотр профиля
Re: подсети тунеля openvpn не видят друг друга
« Ответ #2 : 26 Февраля 2012, 05:24:34 »
push route ... ? не?

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13758
    • Просмотр профиля
Re: подсети тунеля openvpn не видят друг друга
« Ответ #3 : 26 Февраля 2012, 12:59:47 »
AnrDaemon, прежде чем кипятиться прочитайте хотя бы по диагонали. ТС говрит именно про tap-интерфейс, а в указанной Вами теме рассмтриваются проблемы tun-интерфейса. Хотя там и освещается решение вопроса с отказом клиент-серверной технологии и использованием PtP.

MooSE, если Вы обратите внимание, то эта команда даётся клиенту из персоналии клиента из директории ccd.
Только вот неверно она там прописата.
Должно быть:
Чтобы клиент(ы) знали, что находится за сервером нужно в конфиг самого сервера (а не в персоналию) дописать
push "route 192.168.0.0 255.255.255.0"
(возможно и персоналку клиента, но я не пробовал. Но и добавлять необходимо правильный параметр)

Кроме того серверу нужно указать маршрут на саму виртуальную сеть (в конфиге сервера)
route 192.168.10.0 255.255.255.0
Правда обычно и без этого работает, но хуже не будет.

Ну и чтобы сервер знал, какая сеть находится за клиентом, добавить в персональный файл клиента
iroute 192.168.1.0 255.255.255.0
« Последнее редактирование: 26 Февраля 2012, 13:15:17 от fisher74 »

Оффлайн AlDemin

  • Участник
  • *
  • Сообщений: 105
    • Просмотр профиля
Re: подсети тунеля openvpn не видят друг друга
« Ответ #4 : 26 Февраля 2012, 17:05:24 »
fisher74
Цитировать
Кроме того серверу нужно указать маршрут на саму виртуальную сеть (в конфиге сервера)
route 192.168.10.0 255.255.255.0
Правда обычно и без этого работает, но хуже не будет.
Этот маршрут и так прописывается, на повторный в логах ругается, что такой уже есть.
Цитировать
# приcваиваем ip-адрес
ifconfig-push 192.168.10.101 255.255.255.0
Я не вижу получает ли клиент этот IP
и не вижу у сервера маршрута в сеть клиента:
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 eth1
176.77.x.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.10.0    0.0.0.0         255.255.255.0   U     0      0        0 tap0
0.0.0.0         176.77.x.1     0.0.0.0         UG    100    0        0 eth0
не хватает строки вроде:
192.168.1.0    192.168.10.101     255.255.255.0   U     0      0        0 tap0

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13758
    • Просмотр профиля
Re: подсети тунеля openvpn не видят друг друга
« Ответ #5 : 26 Февраля 2012, 17:42:40 »
и не вижу у сервера маршрута в сеть клиента:
не хватает строки вроде:
192.168.1.0    192.168.10.101     255.255.255.0   U     0      0        0 tap0
Эммммм.....
Ну и чтобы сервер знал, какая сеть находится за клиентом, добавить в персональный файл клиента
iroute 192.168.1.0 255.255.255.0
????


не хватает строки вроде:
192.168.1.0    192.168.10.101     255.255.255.0   U     0      0        0 tap0
Шлюз неверный. Не забывайте, что Вы используете tap-интерфейс. Потому шлюзом будет 192.168.10.1
« Последнее редактирование: 26 Февраля 2012, 17:45:12 от fisher74 »

Оффлайн AlDemin

  • Участник
  • *
  • Сообщений: 105
    • Просмотр профиля
Re: подсети тунеля openvpn не видят друг друга
« Ответ #6 : 26 Февраля 2012, 17:52:14 »
Цитировать
????
ну да, но скорее
Цитировать
iroute 192.168.1.0 255.255.255.0 192.168.10.101
Т.к. это не P-t-P, тут наверное надо явно указать за каким именно GW находиться эта подсеть.
клиент же получает это от сервера:
push "route 192.168.0.0 255.255.255.0 192.168.10.1"соответственно маршрут на клиенте:
192.168.0.0     192.168.10.1    255.255.255.0   UG    0      0        0 tap0

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13758
    • Просмотр профиля
Re: подсети тунеля openvpn не видят друг друга
« Ответ #7 : 26 Февраля 2012, 17:57:40 »
Вы где-нибудь видели, чтобы я говрил про PtP?
То что я него покосился не говорит о том, что я говорю именно про него.
В openvpn шлюз маршрута явно не указывается НИГДЕ. Внимание - НИГДЕ. Уберите шлюз из push.
Добавьте строку iroute так как я Вам дал. и рестартуйте сервер

Оффлайн AlDemin

  • Участник
  • *
  • Сообщений: 105
    • Просмотр профиля
Re: подсети тунеля openvpn не видят друг друга
« Ответ #8 : 26 Февраля 2012, 17:58:13 »
Цитировать
Шлюз неверный. Не забывайте, что Вы используете tap-интерфейс. Потому шлюзом будет 192.168.10.1
Ну если бы подсеть 192.168.10.0/24 была реальной, то шлюзы должны быть как я написал, может тут иначе, но логика мне подсказывает.
Поднимать сетки и проверять нет желания.

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13758
    • Просмотр профиля
Re: подсети тунеля openvpn не видят друг друга
« Ответ #9 : 26 Февраля 2012, 18:00:13 »
Ёлки.. Вы меня сбили. Я думал последние фразы ТС.
Сеть хоть и виртуальная, но в режиме tap - всё подчиняется привычным законам.

Оффлайн AlDemin

  • Участник
  • *
  • Сообщений: 105
    • Просмотр профиля
Re: подсети тунеля openvpn не видят друг друга
« Ответ #10 : 26 Февраля 2012, 18:14:40 »
Цитировать
Вы где-нибудь видели, чтобы я говрил про PtP?
Просто у режима PtP шлюз однозначен, а если в режиме tap будет десяток клиентов со своими подсетями, ко всем подсетям будет шлюзом IP tap интерфейса сервера? По логике к каждой подсети должен быть шлюзом ip tap интерфейса соответствующего клиента?

Цитировать
Сеть хоть и виртуальная, но в режиме tap - всё подчиняется привычным законам.
Ну значит так как я и думал.
А команды типа:
push "route 192.168.0.0 255.255.255.0 192.168.10.1"
route 192.168.1.0 255.255.255.0 192.168.10.101
ОпенВПН нормально обрабатывает ставя третий аргумент шлюзом.
Цитировать
Ёлки.. Вы меня сбили.
Простите меня... :)

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13758
    • Просмотр профиля
Re: подсети тунеля openvpn не видят друг друга
« Ответ #11 : 26 Февраля 2012, 18:30:25 »
А команды типа:
push "route 192.168.0.0 255.255.255.0 192.168.10.1"
route 192.168.1.0 255.255.255.0 192.168.10.101
ОпенВПН нормально обрабатывает ставя третий аргумент шлюзом.
Прокрутил man... Да, действительно. Относительно этих команд допустимо использовать с указанием шлюза, а так же метрики
Цитата: man openvpn
--route network/IP [netmask] [gateway] [metric]

А вот iroute - это не касается
Цитата: man openvpn
--iroute network [netmask]
              Generate an internal route to a specific client. The netmask parameter, if omitted, defaults to 255.255.255.255.

Оффлайн AlDemin

  • Участник
  • *
  • Сообщений: 105
    • Просмотр профиля
Re: подсети тунеля openvpn не видят друг друга
« Ответ #12 : 26 Февраля 2012, 19:11:40 »
Вот тоже смотрю про iroute
"This example will only work if you are routing, not bridging, i.e. you are using "dev tun" and "server" directives."
Я так понял, что iroute применяется только в режиме tun сервера-многоточки что в общем то логично раз там нет параметра для GW.

ps: мы тут все между собой... а ТС молчит.

еще пара мыслей: у ТС в конфиге:
mode server
ifconfig  192.168.10.1 255.255.255.0
я так понимаю это аналог:
server 192.168.10.1 255.255.255.0
и как я понял, что проблема ТС в том, что у него в конфиге сервера
или скорее всего в файл клиента из папки /etc/openvpn/ccd отсутствует строка
route 192.168.1.0 255.255.255.0 192.168.10.101Ну это в том случае, если клиент получает для своего tap0 IP=192.168.10.101
« Последнее редактирование: 26 Февраля 2012, 19:39:41 от AlDemin »

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13758
    • Просмотр профиля
Re: подсети тунеля openvpn не видят друг друга
« Ответ #13 : 26 Февраля 2012, 19:38:30 »
Не путайте. У него есть на сервере (ccd/client)
push "route 192.168.0.0 255.255.255.0 192.168.10.1"
И с этим всё в порядке (хотя показывать GW в данном случае и нет необходимости). О чём и гласит вторая строчка клиентских route.

А вот сервер не знает про клиентскую сеть (смотрим роуты сервера). А вот если добавить в ccd/client
iroute 192.168.1.0 255.255.255.0
то и сервер будет знать как дойти до клиентской сети.

Оффлайн niksan321

  • Автор темы
  • Новичок
  • *
  • Сообщений: 32
    • Просмотр профиля
Re: подсети тунеля openvpn не видят друг друга
« Ответ #14 : 26 Февраля 2012, 19:41:18 »
всем спасибо за советы, буду пробовать, если что отпишусь

 

Страница сгенерирована за 0.052 секунд. Запросов: 25.