LINUX.ORG.RU
ФорумAdmin

Настройка openvpn моста

 ,


0

2

Друзья, вот уже 4 часа не могу настроить openvpn bridge между двумя сетями. Столкнулся с ним впервые, вот пытаюсь освоить. Мозг уже не работает.

Дано 2 шлюза на centos 6.5

1 шлюз: Openvpn server eth0 - 111.111.111.27 (WAN) eth1 - 192.168.0.1 (LAN)

2 шлюз: Openvpn client eth0 - 222.222.222.4 (WAN) eth1 - 192.168.1.1 (LAN)

Пытаюсь настроить бридж, что бы устройства в локальных сетях по обе стороны могли видеть друг друга.

Установил openvpn, easy-rsa, создал сертификаты.

Содержание server.conf на 1 шлюзе:

local 111.111.111.27

port 1194
proto udp
dev tap0

ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/server.crt
key /etc/openvpn/keys/server.key
dh /etc/openvpn/keys/dh2048.pem

ifconfig-pool-persist ipp.txt

tls-auth /etc/openvpn/keys/ta.key 0

server-bridge 192.168.0.1 255.255.0.0 192.168.0.100 192.168.0.255

#push "route 192.168.1.0 255.255.0.0 192.168.0.1"

keepalive 10 60

comp-lzo
max-clients 100
user nobody
group nobody

persist-key
persist-tun

;status openvpn-status.log

;log        openvpn.log
;log-append  openvpn.log

verb 3
mute 20

Содержание client.conf на 2 шлюзе:

client
dev tap0
proto udp

remote 111.111.111.27
port 1194
#pull
resolv-retry infinite

ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/client2.crt
key /etc/openvpn/keys/client2.key
tls-client
tls-auth /etc/openvpn/keys/ta.key 1
cipher BF-CBC
remote-cert-tls server
comp-lzo
persist-key
persist-tun

status openvpn-status.log
log /var/log/openvpn.log
verb 3
mute 20

Кусок скрипта, взятый с openvpn.net для создания моста на шлюзе 1:

# Define Bridge Interface
br="br0"

# Define list of TAP interfaces to be bridged,
# for example tap="tap0 tap1 tap2".
tap="tap0"

# Define physical ethernet interface to be bridged
# with TAP interface(s) above.
eth="eth1"
eth_ip="192.168.0.1"
eth_netmask="255.255.255.0"
eth_broadcast="192.168.0.255"

Кусок скрипта, взятый с openvpn.net для создания моста на шлюзе 2:

# Define Bridge Interface
br="br0"

# Define list of TAP interfaces to be bridged,
# for example tap="tap0 tap1 tap2".
tap="tap0"

# Define physical ethernet interface to be bridged
# with TAP interface(s) above.
eth="eth1"
eth_ip="192.168.1.1"
eth_netmask="255.255.255.0"
eth_broadcast="192.168.0.255"

iptables на 1 шлюзе:

# Generated by iptables-save v1.4.7 on Mon Apr 28 02:09:56 2014
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [2:249]
:OUTPUT ACCEPT [2:249]
-A POSTROUTING -s 192.168.0.0/24 -o eth0 -j ACCEPT
COMMIT
# Completed on Mon Apr 28 02:09:56 2014
# Generated by iptables-save v1.4.7 on Mon Apr 28 02:09:56 2014
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [30:2729]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i tap0 -j ACCEPT
-A INPUT -i br0 -j ACCEPT
-A FORWARD -i br0 -j ACCEPT
#-A FORWARD -i eth1 -o br0 -j ACCEPT 
#-A FORWARD -i br0 -o eth1 -j ACCEPT 
COMMIT
# Completed on Mon Apr 28 02:09:56 2014

iptables на 2 шлюзе:

# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*nat
-A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE
#
COMMIT
#
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i tap0 -j ACCEPT
-A INPUT -i br0 -j ACCEPT
-A FORWARD -i br0 -j ACCEPT
COMMIT

ip ro на 1 шлюзе, после запуска openvpn:

# ip ro
111.111.111.24/29 dev eth0  proto kernel  scope link  src 111.111.111.27 
192.168.0.0/24 dev br0  proto kernel  scope link  src 192.168.0.1 
169.254.0.0/16 dev eth0  scope link  metric 1002 
192.168.0.0/16 dev eth0  proto kernel  scope link  src 192.168.0.1 
default via 111.111.111.25 dev eth0

ip ro на 2 шлюзе, после запуска openvpn:

ip ro
222.222.222.0/29 dev eth0  proto kernel  scope link  src 222.222.222.4 
192.168.1.0/24 dev br0  proto kernel  scope link  src 192.168.1.1 
169.254.0.0/16 dev eth0  scope link  metric 1003 
192.168.0.0/16 dev tap0  proto kernel  scope link  src 192.168.0.100 
default via 222.222.222.1 dev eth0

Собственно, соединение устанавливается, но пинги не идут вообще никуда, ни в первую, ни во вторую сеть. Уверен, что проблема в маршрутах, но не могу понять, где. Голова не соображает уже. Наведите на верное направление-)


маршруты к мосту непричем

redixin ★★★★
()

Голова не соображает уже.

Иди поспи уже.

В маршрутах на сервере какой-то бред, если eth0 внешний интерфейс, то зачем маршрут 192.168.0.0/16 через него.

Что с чем объединено в мост не понятно, но как вобще планировалось функционирование? У вас в сети 1 адреса 192.168.0.0/24 или 192.168.0.0/16?

mky ★★★★★
()
Ответ на: комментарий от mky

За сервером (eth1 192.168.0.1) сеть 192.168.0.0 c маской 255.255.0.0 За клиентом (eth1 192.168.1.1) сеть 192.168.1.0 с маской 255.255.0.0 Задумывается, что клиент из одной сети, допустим 192.168.0.54 сможет пинговать клиента из другой, например 192.168.1.98

Ike
() автор топика
Ответ на: комментарий от Ike

Тогда нужно ″eth_netmask=255.255.0.0″, через ″ip route″ убедиться, что нет других маршрутов к сети 192.168.0.0/16 кроме как через br0, а через ″brctl show″ убедится, что в мосте tap0 и eth1 интерфейсы. При этом на eth1 не должно быть ip-адреса, только на br0.

Если не будет работать, покажите вывод команд ″ip addr″, ″ip route″, ″brctl show″, ″brctl showmacs″.

P.S. Мост понимается не сразу, а с некоторой задержкой, особенно если на нём не отключен stp.

mky ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.