У меня возникла проблема: я установил 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