Назад | Перейти на главную страницу

Мостовой туннель OpenVPN не работает должным образом

У меня возникла проблема: я установил P2P-соединение OpenVPN между двумя сайтами. Я добавил интерфейсы VPN TAP в мост с обеих сторон.

Сторона клиента:

# brctl show
bridge name bridge id       STP enabled interfaces
br0     8000.000db9262f8d   no      vpntap0
                                    eth1
                                    eth2

На стороне сервера:

# brctl show
bridge name bridge id       STP enabled interfaces
br0     8000.000db92d05d6   no      vpntap0
                                        eth2

Интерфейс eth2 на стороне сервера - это нетегированный vlan, подключенный к выделенному серверу.

Теперь, когда я добавляю IP-адреса к каждому шлюзу (на стороне сервера и клиента), они могут пинговать друг друга. Но со стороны клиента я не могу добраться до выделенного сервера (кажется).

Когда я пингую с выделенного сервера, я могу подключиться к шлюзу сервера, но не к шлюзу клиента. Но пакеты вроде куда-то уходят. Когда я очищаю IP-адрес клиентского шлюза, пинг жалуется

From 172.16.77.9 icmp_seq=488 Destination Host Unreachable

Но когда у клиентского шлюза есть IP-адрес, он молчит, пакет просто не возвращается.

Конфигурация клиентского VPN:

remote myremotesite.tld

port 1195
proto udp
dev vpntap0
dev-type tap
secret /etc/openvpn/static.key
script-security 2
up /etc/openvpn/br-up.sh
#comp-lzo no
#cipher AES-256-CBC

Конфигурация сервера VPN:

port 1195
proto udp
dev vpntap0
dev-type tap
secret /etc/openvpn/static.key
script-security 2
up /etc/openvpn/br-up.sh
#comp-lzo no
#cipher AES-256-CBC

Скрипт br-up.sh (обе стороны):

#! /bin/bash

ifconfig vpntap0 promisc
ifconfig vpntap0 up 0.0.0.0
brctl addif br0 vpntap0

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

В брандмауэр на стороне сервера я добавил

iptables -I INPUT -i eth2 -j ACCEPT
iptables -I INPUT -i vpntap0 -j ACCEPT
iptables -I INPUT -i br0 -j ACCEPT
iptables -I OUTPUT -o eth2 -j ACCEPT
iptables -I OUTPUT -o vpntap0 -j ACCEPT
iptables -I OUTPUT -o br0 -j ACCEPT

... просто чтобы убедиться.

MTU также установлен на 1500 на всех интерфейсах.

Я нашел решение, свою ошибку :).

Мне пришлось разрешить пересылку в iptables на шлюзах. Думал, что для моста это не обязательно, но это ...

iptables -I FORWARD -i br0 -j ACCEPT
iptables -I FORWARD -o br0 -j ACCEPT