LINUX.ORG.RU
решено ФорумAdmin

Маршруты и OpenVPN

 ,


0

1

Задача: Используя OpenVPN соединить туннелем две локальные сети.

Главное: OpenVPN в обоих случаях расположен на маршутизаторе (со стороны сервера есть снифер).

Локальная сеть со сотороны сервера: 169.254.X.X.

Локальная сеть со стороны клиента:192.168.0.X.

Туннель поднимается и подключение успешно. Между клиентом и сервером openvpn беспрепятственно бегает трафик. Однако две локальные сети друг друга не видят. Снифер показывает следующую картину:

Когда в локальной сети с сервером openvpn появляется пакет адресованый в локальную сеть клиента openvpn - тот по таблице маршрутизации отправляется в туннельное устройство.

Если адресом назначения пакета будет туннельный адрес клиента - всё работает.

Если адресом назначения пакета будет хост из локальной сети клиента - пакет «войдёт» в туннель, но при этом «не выйдет» в виде зашифрованного трафика на eth-устройстве. Такое впечатление, что OpenVPN режет все адреса, не относящиеся к виртуальной локалке. Подскажите куда копать...

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

# ############################################################################ #
#                                 Server OpenVPN                               #
# ############################################################################ #
# Interface:
dev tun
tun-mtu 1500
mtu-disc yes
fast-io
proto udp
port 3333

# Server settings:
server 10.0.0.0 255.255.255.0
push "route 10.0.0.0 255.255.255.0"
ifconfig-pool-persist ipp.txt
route 192.168.0.0 255.255.255.0
topology subnet
client-config-dir ccd
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
keepalive 10 120

# Cipher
...
# Keys
...
# Logging:
...

★★

Последнее исправление: zzdnx (всего исправлений: 1)

Если адресом назначения пакета будет хост из локальной сети клиента

а хосты то знают как добраться до удаленной сети и через какой гейт держать обратную связь?

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

А какой в этом смысл если зашифрованный трафик даже не покинул пределы сервера? Или в конфиге клиента можно ЗАПРЕТИТЬ СЕРВЕРУ передавать в сторону клиента трафик с внетуннельными IP?

Проблема: когда в туннель были посталы пакеты с ВНЕтуннельными IP - сервер просто не обработал их (не послал шифрованные данные с физического интерфейса),

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

в конфиге клиента маршрут должен быть, а хосты в сети должны знать к ккакому гейту обращаться чтоб попасть в удаленку.

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

Более наглядное объяснение проблемы

Когда OpenVPN работает снифер будет наблюдать следующее: в туннельный интерфейс отправляются НЕшифрованные данные, а с физического интерфейса СИНХРОННО будут идти шифрованные пакеты.

Пока я обращаюсь к клиенту по туннельному адресу - всё работает как надо, но когда я с сервера обращаюсь в локалку за клиентом: в туннель идут пакеты, а с физического интерфейса - тишина.

Проблема не в том, что клиент не знает «как ответить обратно». Ни клиент, ни сеть за ним никогда не получат пакетов которые не ушли от сервера.

zzdnx ★★
() автор топика

Локальная сеть со сотороны сервера: 169.254.X.X.

Надеюсь это не реальное значение. Ох уж эти конспираторы.

greek_31 ★★
()
Ответ на: Более наглядное объяснение проблемы от zzdnx

т.е. все так плохо что сам сервер не знает маршрута в удаленную сеть клиента?

пропиши тогда не сервере маршрут опцией - iroute network [netmask]

1) mkdir /etc/openvpn/ccd создаем директорию для файлов с сетевыми настройками

2) nano /etc/openvpn/ccd/filial1 создаем файл filial1 и указываем OpenVPN куда отправлять пакеты предназначенные для сети 192.168.0.0/24, содержание файла:

iroute 192.168.0.0 255.255.255.0

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

У сервера ЕСТЬ маршрут.

Вывод команды route подтверждает это. Только я добавлял маршрут не «iroute», а просто «route»:

route 192.168.0.0 255.255.255.0
Если есть существенная разница - прошу объяснить.

zzdnx ★★
() автор топика
Последнее исправление: zzdnx (всего исправлений: 1)
Ответ на: комментарий от axelroot

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

push "route 10.0.0.0 255.255.255.0"
route 192.168.0.0 255.255.255.0
CCD-файл, с именем клиента:
iroute 192.168.0.0 255.255.255.0
Всё как на картинке... client-to-client в моём случае не требуется, так как филиал пока что один.

zzdnx ★★
() автор топика
Последнее исправление: zzdnx (всего исправлений: 1)

Однако две локальные сети друг друга не видят.
не видят.

гм... прописать очки?

targitaj ★★★★★
()
Ответ на: комментарий от axelroot

Всё! Побежали пакетики!

Проблема была в моей невнимательности - в одном месте лишняя единица... Как раз в ccd-файле.

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

у клиента должен быть прописан route

Прописан. Пакеты идут. Большое спасибо за помошь!

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

Ну кто мог подумать что набивая ОДНУ КОРОТКУЮ СТРОКУ текста можно было так досадно накосячить...

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