Есть предприятие, 2 удаленных офиса.В каждом офисе есть небольшая сеть (1й офис 10пк, 2й офис 6пк, все под управлением Windows, одна рабочая группа) + в каждом офисе стоит шлюз под управлением Arch Linux.
На обоих 2 сетевухи: одна (eth0) смотрит на DSL-модем, вторая (eth1) в локальную сеть.
На каждом установлено:
dnsmasq
iptables
Оба шарят интернет на сеть (/etc/iptables/iptables.rules):
# Generated by iptables-save v1.4.10 on Tue Apr 19 15:10:58 2011
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [1:116]
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -o eth1 -j MASQUERADE
COMMIT
# Completed on Tue Apr 19 15:10:58 2011
*filter
:INPUT ACCEPT [46:3088]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [26:2504]
COMMIT
Возникла необходимость объединить 2 сети в 1ну так, что-бы сетевое окружение Windows показывало все пк обоих офисов как одну рабочую группу.
Выбрал для этого OpenVPN Ethernet-Bridge.
Поставил на обе машины:
openvpn
openssl
bridge-utils
По мануалу поднял tap0 на каждом шлюзе.
Объединил eth1 и tap0 в мост (br0).
Перенастроил dnsmasq и iptables.
Создал ключи и сертификаты, настроил клиент и сервер openvpn.
Результат:
Клиентские машины объединены в единую сеть (чего и добивался).
Интернет есть только непосредственно на шлюзах и все, маскарадинг на мост не работает.
К каждому шлюзу из интернета есть доступ по SSH (проброшены порты сквозь модемы).
Каждый шлюз свободно пингуется из своей сети и, при поднятом VPN бридже, из второй сети.
DNS на шлюзах работает, при попытке пинга www.google.com с рабочего компа выдает:
D:\>ping www.google.com
Обмен пакетами с www.l.google.com [74.125.232.81] по 32 байт:
Превышен интервал ожидания для запроса.
Превышен интервал ожидания для запроса.
Превышен интервал ожидания для запроса.
Превышен интервал ожидания для запроса.
Статистика Ping для 74.125.232.81:
Пакетов: отправлено = 4, получено = 0, потеряно = 4 (100% потерь),
Google не помог, обращаюсь сюда.
Очень надеюсь на оперативную помощь, а то выходит одно дечим, другое калеим =)
Содержимое некоторых конфигов:
[Идентичные файлы на обоих шлюзах]
# /etc/rc.d/br - мной написанный скрипт на поднятие моста
brctl addbr br0
brctl addif br0 tap0
brctl addif br0 eth1
# /etc/dnsmasq/dnsmasq.conf
interface=br0
no-dhcp-interface=eth0
no-dhcp-interface=eth1
no-dhcp-interface=tap0
no-dhcp-interface=br0
# /etc/iptables/iptables.rules
# Generated by iptables-save v1.4.10 on Tue Apr 19 15:10:58 2011
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [1:116]
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -o br0 -j MASQUERADE
COMMIT
# Completed on Tue Apr 19 15:10:58 2011
*filter
:INPUT ACCEPT [46:3088]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [26:2504]
COMMIT
[Шлюз офис 1]
# /etc/rc.conf
LOCALE="ru_RU.UTF-8"
HARDWARECLOCK="UTC"
TIMEZONE="Asia/Vladivostok"
KEYMAP="ru"
CONSOLEFONT="cyr-sun16"
CONSOLEMAP=
USECOLOR="yes"
MOD_AUTOLOAD="yes"
MODULES=()
USELVM="no"
HOSTNAME="gate1"
eth0="eth0 192.168.1.2 netmask 255.255.255.0 broadcast 192.168.1.255" # Интернет
eth1="eth1 0.0.0.0 up" # Локалка
tap0="tap0 0.0.0.0 up" # Виртуальный адаптер OpenVPN
br0="br0 192.168.2.1 netmask 255.255.255.0 broadcast 192.168.2.255"
INTERFACES=(eth0 eth1 tap0 br0)
gateway="default gw 192.168.1.1 eth0"
ROUTES=(gateway)
DAEMONS=(@syslog-ng openvpn-tapdev br network @iptables @dnsmasq @sshd @netfs @openvpn @crond)
# /etc/openvpn/server.conf
port 1194
proto udp
dev tap0
ca ca.crt
cert gate1.crt
key gate1.key
dh dh1024.pem
server-bridge 192.168.2.1 255.255.255.0 192.168.2.2 192.168.2.10
client-to-client
keepalive 10 120
tls-auth ta.key 0
comp-lzo
persist-key
persist-tun
status openvpn-status.log
log-append openvpn.log
verb 3
[Шлюз офис 2]
# /etc/rc.conf
LOCALE="ru_RU.UTF-8"
HARDWARECLOCK="UTC"
TIMEZONE="Asia/Vladivostok"
KEYMAP="ru"
CONSOLEFONT="cyr-sun16"
CONSOLEMAP=
USECOLOR="yes"
MOD_AUTOLOAD="yes"
MODULES=()
USELVM="no"
HOSTNAME="gate2"
eth0="eth0 192.168.1.2 netmask 255.255.255.0 broadcast 192.168.1.255" # Интернет
eth1="eth1 0.0.0.0 up" # Локалка
tap0="tap0 0.0.0.0 up" # Виртуальный адаптер OpenVPN
br0="br0 192.168.2.2 netmask 255.255.255.0 broadcast 192.168.2.255"
INTERFACES=(eth0 eth1 tap0 br0)
gateway="default gw 192.168.1.1 eth0"
ROUTES=(gateway)
DAEMONS=(@syslog-ng openvpn-tapdev br network @iptables @dnsmasq @sshd @netfs @openvpn @crond)
# /etc/openvpn/client.conf
client
dev tap0
proto udp
remote <белый адрес шлюза в офисе 1> 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert gate2.crt
key gate2.key
ns-cert-type server
tls-auth ta.key 1
comp-lzo
verb 3