The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"OpenVPN bridge: удалённые клиенты не видят локальных"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (VPN / Linux)
Изначальное сообщение [ Отслеживать ]

"OpenVPN bridge: удалённые клиенты не видят локальных"  +/
Сообщение от selivan (ok) on 20-Авг-12, 17:35 
Конфигурация:

Debian 6.0 Squeeze

OpenVPN 2.2.1(from backports)

Задача - соединить удалённых клиентов с локальной сетью так, чтобы у них были одинаковые сеть/маска. Я использую OpenVPN TAP интерфейс, соединённый с помощью bridge с ethernet-интерфейсом в локальную сеть. Ethernet-интерфейс - bond0.200. Это 200 VLAN над bond-объединением 2-х обычных интерфейсов(bond-mode balance-alb)

И локальные, и удалённые клиенты могут пинговать и обмениваться данными с сервером, но не пингуют друг друга.

С помощью tshark видно, что пакеты, отправленные удалённым клиентом локальному, появляются в tap200 и br200, но не появляются в bond0.200. При этом MAC-адрес локального клиента есть у удалённого клиента в кеше arp, и наоборот О_о

Фаервол/антивирус вырублены.

MTU на eth2, tap200, bond200 совпадают: 1500.

Куда копать дальше?

/proc/sys/net/ipv4/ip_forward = 1

/etc/network/interfaces:


auto bond0.200
iface bond0.200 inet manual
      vlan_raw_device bond0
      up ifconfig bond0.200 0.0.0.0 promisc up

auto br200
iface br200 inet static
      bridge_ports bond0.200
      bridge_stp off
      bridge_fd 1
      address 172.20.200.2
      netmask 255.255.255.0
      post-up ifconfig br200 promisc

/etc/openvpn/server.conf:


mode server
tls-server
port *****
proto tcp-server
dev tap200

script-security 2

up /etc/openvpn/bridge-start
down /etc/openvpn/bridge-stop

ca ca.crt
cert server.crt
key server.key
dh dh1024.pem
#crl-verify crl.pem

auth sha1
cipher AES-256-CBC

; !!!
; comp-lzo

tun-mtu 1500
mssfix 1450

client-config-dir /etc/openvpn/ccd
ccd-exclusive

client-to-client
keepalive 10 120

persist-key
persist-tun

status /var/log/openvpn/server-arm.status
log-append  /var/log/openvpn/server-arm.log

/etc/openvpn/ccd/client-arm23:


ifconfig-push 172.20.200.132 255.255.255.0

/etc/openvpn/bridge-start:


#!/bin/bash
#set -x
#################################
# Set up Ethernet bridge on Linux
# Requires: bridge-utils
#################################

br="br200"
tap="tap200"

openvpn --mktun --dev $tap
ifconfig $tap 0.0.0.0 promisc up

brctl addif $br $tap

exit 0

/etc/openvpn/bridge-stop:


#!/bin/bash
#set -x
####################################
# Tear Down Ethernet bridge on Linux
####################################

br="br200"
tap="tap200"

brctl delif $br $tap

openvpn --rmtun --dev $tap

exit 0


Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "OpenVPN bridge: удалённые клиенты не видят локальных"  +/
Сообщение от selivan (ok) on 20-Авг-12, 21:20 
Проблема решилась так:


iptables -A FORWARD -i br200 -j ACCEPT
iptables -A FORWARD -o br200 -j ACCEPT

Это конечно грубое решение, потом поаккуратнее правила выставлю.

Но какого хрена? bridge работает на уровне L2, эти пакеты не должны проходить через FORWARD. Ничего не понимаю

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "OpenVPN bridge: удалённые клиенты не видят локальных"  +/
Сообщение от PavelR (??) on 20-Авг-12, 22:14 
> Проблема решилась так:
>
 
> iptables -A FORWARD -i br200 -j ACCEPT
> iptables -A FORWARD -o br200 -j ACCEPT
>

> Это конечно грубое решение, потом поаккуратнее правила выставлю.
> Но какого хрена? bridge работает на уровне L2, эти пакеты не должны
> проходить через FORWARD. Ничего не понимаю

там в sysctl есть ключики, которые этим управляют

sysctl -a |grep bridge


2) /etc/network/interfaces:

добавляем

# OpenVPN
auto tap200
iface tap200 inet manual
up ifconfig $IFACE up
down ifconfig $IFACE down
pre-up openvpn --mktun --dev $IFACE
post-down openvpn --rmtun --dev $IFACE

потом правим bridge_ports -добавляем туда тап200, из конфига опенвпн-а выкидываем ап-даун скрипты, имхо промиск не нужен совсем, бриджинг сам всё сделает.

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "OpenVPN bridge: удалённые клиенты не видят локальных"  +/
Сообщение от selivan (ok) on 20-Авг-12, 22:27 
Хитро устроено. Спасибо.

ИМХО логичнее всё же создавать TAP'ы скриптами: работает сервер - есть соотв. интерфейс, не работает - нет интерфейса.

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

5. "OpenVPN bridge: удалённые клиенты не видят локальных"  +/
Сообщение от PavelR (ok) on 21-Авг-12, 21:41 
> Хитро устроено. Спасибо.
> ИМХО логичнее всё же создавать TAP'ы скриптами: работает сервер - есть соотв.
> интерфейс, не работает - нет интерфейса.

Это ваше имхо.

Мое имхо - все интерфейсы должны быть всегда.
Тогда в них можно прописывать маршруты, и они тоже будут всегда..
Это удобно для каналов, которые работают большую часть времени (типа постоянно).

Хотя скрипты тоже имеют место быть. Если это "более клиентское подключение" и работает "менее постоянно".

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

4. "OpenVPN bridge: удалённые клиенты не видят локальных"  +/
Сообщение от Andrey Mitrofanov on 20-Авг-12, 22:32 
> Но какого хрена? bridge работает на уровне L2, эти пакеты не должны
> проходить через FORWARD. Ничего не понимаю

Видишь ли, в чём дело, Пух... Вот я, например, _фильтрующим_мостом_ (именно iptables, не ebtables на мосту) пользовался, а эти ваши восьмиуровневые модели, кому они сдались. </университетиев не кончали>

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру