openvpn не видит сеть за клиетом
Собственно, сабж.. Сервера друг друга видят по openvpn тунелю и по локальным айпишникам. Друг друга пингуют. Из сети клиента видно сеть сервера. Всё пингуется. Из сети сервера не видно сеть клиента, но пингуется сервер клиента (обидно, блин).
Оба сервера как маршрутизаторы.
Очень хочу побороть openvpn. Помогите, граждане.
net.ipv4.ip_forward не забыл?
Так точно. И там и там стоит — маршрутизаторы же оба.
так, а откуда клиент знает какие сети у сервера?
КОроче, раз пакетам ничего не мешает ходить то надо править таблицу маршрутизации.
(В голове крутится волшебное слово ospf :))
А самого интересного — вывода «route -n» с клиента и сервера конечно же нет. Гениально.
Это добавляется в таблицу роутинга клиента при подключении openvpn.
Головной офис(сервер) eth1 — Интернет. Раздаётся провайдером по DHCP. eth0 — сеть 192.168.10.0
Подразделение (клиент) eth0 — Интернет. Статика, которая даётся провайдером. Сеть 10.0.0.0 eth1 — сеть 192.168.20.0
Тунель openvpn — сеть 10.1.0.0
Не ругайтесь 🙂 route -n завтра выложу, думал может не я один openvpn поднимаю. Если за ночь в манах накопаю траблшут — распишу и отпишусь.
На клиенте же надо маскарадить MASQUERADE на eth1 (локалки) интерфейс, а не на провайдерский.
Хорошая мысль. Отпишусь, благодарю.
На клиенте же надо маскарадить MASQUERADE на eth1 (локалки) интерфейс, а не на провайдерский.
Кто вам такое сказал? Маскарадить надо на ВНЕШНЕМ интерфейсе — то есть на провайдерском. Весь обмен по внутренним интерфейсам маскараду подвергать нет необходимости, и более того — это вредно.
А как тогда изменить src адрес клиента 10.1.0.0/24 пришедший через tun0, ась? Это если роутингом не заморачиваться на шлюзе.
А как тогда изменить src адрес клиента 10.1.0.0/24
А его НЕ НАДО менять. Схема то тривиальная, она во всех man’ах по OpenVPN разжевана. Ключевые слова openvpn будут такие:
На сервере после запуска OpenVPN появятся маршруты
Предположим, добавился еще один клиент с локалкой 192.168.30.0/24? Легко, на сервер добавляем:
Это не «заморачиваться», это задача которая решается в один шаг!
Ну и в догонку, можно еще более упростить конфиг сервера, если консолидировать сети:
Изменил конфиг на сервере, изменил конфиг на клиенте как порекомендовали.
route 192.168.20.0 255.255.255.0 // Маршрут на клиентскую сеть для ОС
route 10.1.0.0 255.255.255.0 // Маршрут на клиентские линки точка-точка для ОС
push «route 10.1.0.0 255.255.255.0» // Клиентские точки линки > точка-точка отдаваемый клиенту
push «route 192.168.10.0 255.255.255.0» // Локалка на сервере отдаваемая клиенту
pull // Принять от сервера все что он скажет
Ребутнул и того и того.
route -n на сервере
route -n на клиенте
Результат такой же — сеть за клиентом не пингуется. Пинговал и с сервера и с машин за сервером.
Предложите ещё что-то.
http://openvpn.net/index.php/open-source/documentation/howto.html#scope
client-config-dir ccd
openvpn нужно сообщить, какие сети за клиентом должны быть доступны. и так же клиенту нужно сообщить какая сеть за сервером.
При tracert 192.168.20.6 (машина за клиентом) с машины за сервером маршрут проходит через сервер openvpn, потом идёт в 10.1.0.6 и пропадает. При этом если сделать tracert 192.168.20.1 (сервер, клиент openvpn) то идёт через сервер openvpn и попадает на 192.168.20.1.
маршруты прописаны в конфиге сервера
На самом деле я рекомендовал грязный workaround, так на проверить. А за хаутушку спасибо 🙂
на сервере.
овпн точно подцепил настройки?
должно быть что то вроде:
и что не еще не менее важно — именование файла в ccd дире должно соответвовать сертификату (указанному CN при создании сертификата, обычно такой же указывают, как и имя файла сертификата. посмотреть можно openssl x509 -text -in cert.crt)
> Результат такой же — сеть за клиентом не пингуется
С руками у тебя проблемы
Потому, что даже traceroute -n не сообразил сделать.
Так вот — если ты его сделаешь — например:
с машины 192.168.10.21
запустишь traceroute -n 192.168.20.21
то у тебя он заткнется на 192.168.10.1
Угадал? Сам знаю, что угадал.
А еще я скажу, что у тебя с машины 192.168.10.21 не пойдет ping 10.1.0.1. А вот с клиента OpenVPN — пойдет. И с машины из локалки клиента — тоже пойдет.
Поэтому берешь ноги в руки, и:
1. идешь на 192.168.10.1 (твой default gateway)
2. прописываешь следующие маршруты:
route add -net 192.168.20.0 mask 255.255.255.0 gw
route add -net 10.1.0.0 mask 255.255.255.0 gw
После чего у тебя «вдруг» все начинает работать.
Я не предложу — я скажу: ДЯТЕЛ ТЫ. 🙂
Да нормально у него все с OpenVPN, у него проблема с тем, что его «сервер» не является дефолт гейтвеем для его локалки, а тот кто является дефолт гейтвеем (192.168.10.1), ничего не знает о маршрутах через OpenVPN и о том, что в соответствующие сети можно достучаться черзе OpenVPN-сервер (который например имеет адрес 192.168.10.5)
Работоспособность OpenVPN с данными маршрутами я как бы могу гарантировать (ну если конечно там всякие policy-based routing’и не включены, что вряд ли), и проблема у него в настройках default gateway
>Да нормально у него все с OpenVPN
Ну если с VPN все нормально, то если машинка с VPN не является шлюзом в сети, и сделать ее таковой нет возможности, нужно на каждую за VPN добавлять маршрут в соседнюю сеть через машину с VPN. На какие добавишь, — те и увидищь.
Еще, а машинки за VPN они *nix?, в винде всякие там брандмауеры, Касперский АнтиХакер и прочее запрещают доступ к машине из других сетей. Либо выключать, либо настраивать.
Проще объявить машинку с OpenVPN как default gateway и разрешить отдачу ICMP redirect, после чего проблема сама решится.
Да ну тебя нафиг. Ёлы-палы. Ты уж если оскорбляешь, так не пиши полезные и правильные вещи, а то совсем хреновая ситуация — и не заигнорить тебя, и уважения особого после оскорблений к тебе нет 🙂
Спасибо, всё работает.
Сам себе выставил грабли — сам на них и наступил.
На дефолтовом гейте который крутится на Microsoft Forefront TMG добавил статический маршрут.
И вообще, настройкой и развёртыванием web-серверов занимаюсь. А тут сунули, мол, специалиста нету, надо настроить. Как в армии — хоть что сделай, но роди. Почитал маны, но, пардоньте, маршрутизация — это зло. Спасибо за опыт.
зы Вы, всё-таки внимательный специалист 🙂
Лан, ну извини — я не подозревал что ты совсем уж чужой отрасли 🙂
и не заигнорить тебя, и уважения особого после оскорблений к тебе нет
Ну, считай что это репетиция того, что будет когда приедтся работать с нормальными спецами а не политкорректными латерастами 🙂
>На дефолтовом гейте который крутится на Microsoft Forefront TMG добавил статический маршрут.
Ну, да вариантов больше чем предполагал. Обычно, если человек ставит VPN внутри сети, не на гейт, то настройки гейта ему не доступны.
Источник
Openvpn не работает сеть
Здравствуйте, вроде избитая тема, но так ничего и не нашел, прошу помочь кто знает. Настроил OpenVPN сервер и клиент, все работает, но с клиента не могу зайти в сеть за сервером, к самому серверу подключается нормально. Схема примерно такая Сервер на котором ВПН имеет адрес локальной сети 192,168,20,100, основной шлюз 192,168,20,1 в этой же сети есть второй сервер (192,168,20,50) к которому нужно получить доступ. Сервер за роутером, проброшен порт 1194 на локальный WAN сервера 192,168,30,48. Устанавливается нормальное соединение между клиентом и сервером, но не пингуется по виртуальному адресу ВПН, т.е. у сервера 10,168,111,1 а клиенту почему-то всегда присваивается один и тот же адрес всегда 10,168,111,6.
Проблема наверное в маршрутизации, но не могу понять какая, буду признателен за ответ, вот конфиги сервера и клиента
port 1194
proto tcp-server
dev tun
route-method exe
route-delay 10
tls-server
server 10.168.111.0 255.255.255.0
route 10.168.111.0 255.255.255.0
keepalive 10 120
persist-key
persist-tun
duplicate-cn
status openvpn-status.log
push «route 192.168.20.0 255.255.255.0»
ca «C:\\OpenVPN\\ssl\\ca.crt»
cert «C:\\OpenVPN\\ssl\\OpenVPN_SERVER.crt»
key «C:\\OpenVPN\\ssl\\OpenVPN_SERVER.key»
dh «C:\\OpenVPN\\ssl\\dh1024.pem»
tls-auth C:\\Openvpn\\ssl\\ta.key 0
tun-mtu 1500
mssfix
verb 3
client
tls-client
verb 3
dev tun
proto tcp
route-delay 2
remote хх.ххх.хх.хх 1194
nobind
persist-key
persist-tun
ca ca.crt
cert Office.crt
key Office.key
tls-auth C:\\OpenVPN\\config\\ta.key 1
keepalive 10 120
route-method exe
ns-cert-type server
| Конфигурация компьютера |
| Материнская плата: Gigabyte ga-ep45-ud3lr |
| HDD: WDC WD2500AAKX-001CA0, ST3320613AS |
| Звук: Realtek ALC888 |
| CD/DVD: asus какой то выключен |
| ОС: windows 7 ultimate x86 |
| push «route 192.168.20.0 255.255.255.0» » |
| а клиенту почему-то всегда присваивается один и тот же адрес всегда 10,168,111,6 » |
Последний раз редактировалось Lonely_Mouse, 06-01-2015 в 19:16 .
Это сообщение посчитали полезным следующие участники:
| Конфигурация компьютера | ||||||||||||||||||||
| Материнская плата: Gigabyte ga-ep45-ud3lr | ||||||||||||||||||||
| HDD: WDC WD2500AAKX-001CA0, ST3320613AS | ||||||||||||||||||||
| Звук: Realtek ALC888 | ||||||||||||||||||||
| CD/DVD: asus какой то выключен | ||||||||||||||||||||
| ОС: windows 7 ultimate x86 | ||||||||||||||||||||
| » width=»100%» style=»BORDER-RIGHT: #719bd9 1px solid; BORDER-LEFT: #719bd9 1px solid; BORDER-BOTTOM: #719bd9 1px solid» cellpadding=»6″ cellspacing=»0″ border=»0″> | ||||||||||||||||||||
| Конфигурация компьютера | ||||||||||||
| Материнская плата: Gigabyte ga-ep45-ud3lr | ||||||||||||
| HDD: WDC WD2500AAKX-001CA0, ST3320613AS | ||||||||||||
| Звук: Realtek ALC888 | ||||||||||||
| CD/DVD: asus какой то выключен | ||||||||||||
| ОС: windows 7 ultimate x86 | ||||||||||||
| » width=»100%» style=»BORDER-RIGHT: #719bd9 1px solid; BORDER-LEFT: #719bd9 1px solid; BORDER-BOTTOM: #719bd9 1px solid» cellpadding=»6″ cellspacing=»0″ border=»0″> | ||||||||||||
| Настроил OpenVPN сервер и клиент, все работает, но с клиента не могу зайти в сеть за сервером, к самому серверу подключается нормально. » |
| в этой же сети есть второй сервер (192,168,20,50) к которому нужно получить доступ. » |
А клиент знает, что для доступа к 192,168,20,50 нужно передавать пакеты в виртуальный канал?
Скорее всего нет, и пакеты уходят в интернет по основному каналу, где глушатся оборудованием провайдера.
Покажите таблицу маршрутизации клиента (команда route print )
——-
Самое совершенное оружие, которым забиты арсеналы богатых и процветающих наций, может легко уничтожить необразованного, больного, бедного и голодного. Но оно не может уничтожить невежество, болезнь, нищету и голод. (Фидель Кастро)
Почему всех осужденных за измену Родине при Сталине реабилитировали при Горбачёве по отсутствию состава преступления? Потому что при Горбачёве измену Родине перестали считать преступлением.
| Конфигурация компьютера |
| Материнская плата: Gigabyte ga-ep45-ud3lr |
| HDD: WDC WD2500AAKX-001CA0, ST3320613AS |
| Звук: Realtek ALC888 |
| CD/DVD: asus какой то выключен |
| ОС: windows 7 ultimate x86 |
| А клиент знает, что для доступа к 192,168,20,50 нужно передавать пакеты в виртуальный канал? » |
| push «route 192.168.20.0 255.255.255.0» » |
| Скорее всего нет, и пакеты уходят в интернет по основному каналу, где глушатся оборудованием провайдера. » |