Конфигурация: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 upauto 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 tap200script-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