LINUX.ORG.RU
ФорумAdmin

OpenVPN tap + dhcp в сети

 , ,


0

1

Доброго времени суток.

Имею следующую инфраструктуру

(dhcp)---([eth0]-ovpn-srv-[eth1])--/internet/--([eth0]-ovpn-cli)

Пытаюсь настроить OpenVPN в режиме tap. Нужно что бы машина ovpn-cli получила ip-адрес от dhcp за ovpn-srv.

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

mode server
port 1234
proto udp
dev tap0

ifconfig-pool-persist /etc/openvpn/ccd/ipp.txt
server-bridge 10.8.0.4 255.255.255.0 10.8.0.50 10.8.0.100
#server-bridge
client-config-dir ccd
client-to-client
keepalive 10 120
persist-key
persist-tun

Конфиг клиента:

client
dev tap0
proto udp

remote XXX.XXX.XXX.XXX 1234
resolv-retry infinite
nobind
persist-key
persist-tun

При такой конфигурации клиент получает ip 10.8.0.50 как и задано в конфиге сервера.

Но мне нужно, что бы он получил ip от dhcp за openvpn-srv. Комментируем строку «server-bridge 10.8.0.4 255.255.255.0 10.8.0.50 10.8.0.100», вместо нее раскомментируем строку «server-bridge». В этом случае tap-интерфейс не создается вовсе.

Кроме того, беда со скриптами bridge-start и bridge-stop из sample-scripts. Мало того, что утилиты net-tools уже в Debian 9, так и скрипты сами не отрабатывают. В документации сказано, что их нужно положить в /etc/openvpn, но это не помогает.

Используется Debian 9, openvpn из стандартный реп.

★★★★★
Ответ на: комментарий от zgen

Проблема в том, что если я не использую «server-bridge 10.8.0.4 255.255.255.0 10.8.0.50 10.8.0.100» как указанно в FAQ по ссылке, то tap0 вообще не поднимается. Вот в чем беда. А никакого моста без tap быть не может.

Есть более подробный мануал про указанный способ?

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

Мой вариант (сервер с несколькими внешними ip)

local MY_EXT_IP

daemon
mode server
tls-server
port XXXX
dev tapXXXX
proto tcp-server

duplicate-cn

persist-key
persist-tun
verb 4
cipher AES-256-CBC

tun-mtu 1500
mssfix


ca /etc/openvpn/vpnserver_ca.crt
cert /etc/openvpn/vpnserver.crt
key /etc/openvpn/vpnserver.key

log /var/log/openvpn-vpnserver.log
status /var/log/openvpn-vpnserver-status.log
dh /etc/openvpn/vpnserver/dh.pem

client-to-client
keepalive 60 240
comp-lzo

hand-window 400
tran-window 86400
status-version 2
reneg-sec 86400

sndbuf 262144
rcvbuf 262144
push "sndbuf 262144"
push "rcvbuf 262144"

push "explicit-exit-notify 3"
push "redirect-gateway def0"

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

tap0 вообще не поднимается

Его надо вручную создать перед стартом ovpn

openvpn --mktun --dev $TAP
brctl addif $BRIF $TAP
ip link set promisc on dev $TAP
Где $BRIF - имя бриджа в который включен eth0, $TAP - имя tap интерфейса прописанного в конфиге ovpn например tap100

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

Как ты загружаешь bash-скрипт перед запуском openvpn?

В документации сказано, что нужно положить скрипты bridge-start и bridge-stop из sample-scripts в директорию с конфигом openvpn, но у меня они почему то не отрабатывают.

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

Как ты загружаешь bash-скрипт перед запуском openvpn?

Угу самописный. Сначала то что я привел, потом старт самого ovpn. Но только по тому что мне так удобно. А так вполне можно и при поднятии интерфейса бриджа все тоже самое прописать.

anc ★★★★★
()
Последнее исправление: anc (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.