LINUX.ORG.RU
ФорумAdmin

CentOS 7 openvpn bridge

 ,


0

2

Добрый день!

Подскажите в чем может быть проблема.

Имеется два сервера CentOS 7 на них Openvpn

За серверами сеть 192.168.100.0/24

Необходимо создать соединение двух сегментов одной сети.

первый сервер

br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.100.2  netmask 255.255.255.0  broadcast 192.168.100.255
        inet6 fe80::215:5dff:fec0:e10d  prefixlen 64  scopeid 0x20<link>
        ether 00:15:5d:c0:e1:0d  txqueuelen 0  (Ethernet)
        RX packets 388  bytes 26580 (25.9 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 47  bytes 3022 (2.9 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet внешний адрес  netmask 255.255.255.192  broadcast внешний адрес  
        inet6 fe80::215:5dff:fec0:e10c  prefixlen 64  scopeid 0x20<link>
        ether 00:15:5d:c0:e1:0c  txqueuelen 1000  (Ethernet)
        RX packets 8250  bytes 1572749 (1.4 MiB)
        RX errors 0  dropped 75  overruns 0  frame 0
        TX packets 4253  bytes 809288 (790.3 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth1: flags=4419<UP,BROADCAST,RUNNING,PROMISC,MULTICAST>  mtu 1500
        inet6 fe80::215:5dff:fec0:e10d  prefixlen 64  scopeid 0x20<link>
        ether 00:15:5d:c0:e1:0d  txqueuelen 1000  (Ethernet)
        RX packets 136  bytes 12605 (12.3 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 322  bytes 23990 (23.4 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 0  (Local Loopback)
        RX packets 18  bytes 1960 (1.9 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 18  bytes 1960 (1.9 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

tap0: flags=4419<UP,BROADCAST,RUNNING,PROMISC,MULTICAST>  mtu 1500
        inet6 fe80::1483:52ff:fed2:cf7a  prefixlen 64  scopeid 0x20<link>
        ether 16:83:52:d2:cf:7a  txqueuelen 100  (Ethernet)
        RX packets 304  bytes 23446 (22.8 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 161  bytes 13376 (13.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

openvpn server conf

port 3001
proto tcp
dev tap
ca ca.crt
cert server.crt
key server.key
dh dh2048.pem 
server-bridge 192.168.100.2 255.255.255.0 192.168.100.10 192.168.100.20
keepalive 10 120
tls-auth ta.key 0
cipher BF-CBC
comp-lzo
max-clients 5
user nobody
group nobody
persist-key
persist-tun
status openvpn-status.log
log         openvpn.log
verb 3

Скрипт рекомендованный для моста с сайта openvpn

#!/bin/bash
br="br0"
tap="tap0"
eth="eth1" 
eth_ip="192.168.100.2"  
eth_netmask="255.255.255.0" 
eth_broadcast="192.168.100.255" 
#for t in $tap; do
#    openvpn --mktun --dev $t
#done
brctl addbr $br
brctl addif $br $eth
for t in $tap; do
    brctl addif $br $t
done
for t in $tap; do
    ifconfig $t 0.0.0.0 promisc up
done
ifconfig $eth 0.0.0.0 promisc up
ifconfig $br $eth_ip netmask $eth_netmask broadcast $eth_broadcast

Второй сервер

br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.100.10  netmask 255.255.255.0  broadcast 192.168.100.255
        inet6 fe80::215:5dff:fe9f:4d0c  prefixlen 64  scopeid 0x20<link>
        ether 00:15:5d:9f:4d:0c  txqueuelen 0  (Ethernet)
        RX packets 491  bytes 34014 (33.2 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 47  bytes 2902 (2.8 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet внешнй адрес netmask 255.255.255.224  broadcast внешний адрес
        inet6 fe80::215:5dff:fe9f:4d0b  prefixlen 64  scopeid 0x20<link>
        ether 00:15:5d:9f:4d:0b  txqueuelen 1000  (Ethernet)
        RX packets 14160  bytes 2418262 (2.3 MiB)
        RX errors 0  dropped 109  overruns 0  frame 0
        TX packets 6189  bytes 1160949 (1.1 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth1: flags=4419<UP,BROADCAST,RUNNING,PROMISC,MULTICAST>  mtu 1500
        inet6 fe80::215:5dff:fe9f:4d0c  prefixlen 64  scopeid 0x20<link>
        ether 00:15:5d:9f:4d:0c  txqueuelen 1000  (Ethernet)
        RX packets 289  bytes 23146 (22.6 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 216  bytes 18450 (18.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 0  (Local Loopback)
        RX packets 4  bytes 392 (392.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 4  bytes 392 (392.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

tap0: flags=4419<UP,BROADCAST,RUNNING,PROMISC,MULTICAST>  mtu 1500
        inet6 fe80::4ce3:a1ff:fea9:ed65  prefixlen 64  scopeid 0x20<link>
        ether 4e:e3:a1:a9:ed:65  txqueuelen 100  (Ethernet)
        RX packets 202  bytes 17742 (17.3 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 341  bytes 26458 (25.8 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

openvpn client conf

client
dev tap
proto tcp
remote внешний адрес первого сервера 3001
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client.crt
key client.key
remote-cert-tls server
tls-auth ta.key 1
comp-lzo
status openvpn-status.log
log openvpn.log
verb 3

Скрипт рекомендованный для моста с сайта openvpn

#!/bin/bash
br="br0"
tap="tap0"
eth="eth1" 
eth_ip="192.168.100.10"  
eth_netmask="255.255.255.0" 
eth_broadcast="192.168.100.255" 
#for t in $tap; do
#    openvpn --mktun --dev $t
#done
brctl addbr $br
brctl addif $br $eth
for t in $tap; do
    brctl addif $br $t
done
for t in $tap; do
    ifconfig $t 0.0.0.0 promisc up
done
ifconfig $eth 0.0.0.0 promisc up
ifconfig $br $eth_ip netmask $eth_netmask broadcast $eth_broadcast

openvpn соединение устанавливается. интерфейсы br0 запускаются и пингуются с серверов. не проходят пинги до хостов находящиеся за серверами.

Подскажите в чем может быть проблема?

Попробуй вместо tap использовать tun - у меня всякие наты с tap не взлетели (но вообще я в этом не разбираюсь особо, просто говорю о том с чем недавно столкнулся).

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

нет. tun это p2p, его в мост не подключить. В такой конфигурации только tap.

vel ★★★★★ ()
Ответ на: комментарий от vel
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
 155K   16M ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
    1    84 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0
82468   23M INPUT_direct  all  --  *      *       0.0.0.0/0            0.0.0.0/0
82468   23M INPUT_ZONES_SOURCE  all  --  *      *       0.0.0.0/0            0.0.0.0/0
82468   23M INPUT_ZONES  all  --  *      *       0.0.0.0/0            0.0.0.0/0
   31  1826 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0
74270   23M REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
    0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0
    0     0 FORWARD_direct  all  --  *      *       0.0.0.0/0            0.0.0.0/0
    0     0 FORWARD_IN_ZONES_SOURCE  all  --  *      *       0.0.0.0/0            0.0.0.0/0
    0     0 FORWARD_IN_ZONES  all  --  *      *       0.0.0.0/0            0.0.0.0/0
    0     0 FORWARD_OUT_ZONES_SOURCE  all  --  *      *       0.0.0.0/0            0.0.0.0/0
    0     0 FORWARD_OUT_ZONES  all  --  *      *       0.0.0.0/0            0.0.0.0/0
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0
    0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT 174K packets, 32M bytes)
 pkts bytes target     prot opt in     out     source               destination
 174K   32M OUTPUT_direct  all  --  *      *       0.0.0.0/0            0.0.0.0/0

Chain FORWARD_IN_ZONES (1 references)
 pkts bytes target     prot opt in     out     source               destination
    0     0 FWDI_public  all  --  eth1   *       0.0.0.0/0            0.0.0.0/0           [goto]
    0     0 FWDI_public  all  --  eth0   *       0.0.0.0/0            0.0.0.0/0           [goto]
    0     0 FWDI_public  all  --  +      *       0.0.0.0/0            0.0.0.0/0           [goto]

Chain FORWARD_IN_ZONES_SOURCE (1 references)
 pkts bytes target     prot opt in     out     source               destination

Chain FORWARD_OUT_ZONES (1 references)
 pkts bytes target     prot opt in     out     source               destination
    0     0 FWDO_public  all  --  *      eth1    0.0.0.0/0            0.0.0.0/0           [goto]
    0     0 FWDO_public  all  --  *      eth0    0.0.0.0/0            0.0.0.0/0           [goto]
    0     0 FWDO_public  all  --  *      +       0.0.0.0/0            0.0.0.0/0           [goto]

Chain FORWARD_OUT_ZONES_SOURCE (1 references)
 pkts bytes target     prot opt in     out     source               destination

Chain FORWARD_direct (1 references)
 pkts bytes target     prot opt in     out     source               destination

Chain FWDI_public (3 references)
 pkts bytes target     prot opt in     out     source               destination
    0     0 FWDI_public_log  all  --  *      *       0.0.0.0/0            0.0.0.0/0
    0     0 FWDI_public_deny  all  --  *      *       0.0.0.0/0            0.0.0.0/0
    0     0 FWDI_public_allow  all  --  *      *       0.0.0.0/0            0.0.0.0/0

Chain FWDI_public_allow (1 references)
 pkts bytes target     prot opt in     out     source               destination

Chain FWDI_public_deny (1 references)
 pkts bytes target     prot opt in     out     source               destination

Chain FWDI_public_log (1 references)
 pkts bytes target     prot opt in     out     source               destination

Chain FWDO_public (3 references)
 pkts bytes target     prot opt in     out     source               destination
    0     0 FWDO_public_log  all  --  *      *       0.0.0.0/0            0.0.0.0/0
    0     0 FWDO_public_deny  all  --  *      *       0.0.0.0/0            0.0.0.0/0
    0     0 FWDO_public_allow  all  --  *      *       0.0.0.0/0            0.0.0.0/0

Chain FWDO_public_allow (1 references)
 pkts bytes target     prot opt in     out     source               destination

Chain FWDO_public_deny (1 references)
 pkts bytes target     prot opt in     out     source               destination

Chain FWDO_public_log (1 references)
 pkts bytes target     prot opt in     out     source               destination

Chain INPUT_ZONES (1 references)
 pkts bytes target     prot opt in     out     source               destination
    3   234 IN_public  all  --  eth1   *       0.0.0.0/0            0.0.0.0/0           [goto]
80563   23M IN_public  all  --  eth0   *       0.0.0.0/0            0.0.0.0/0           [goto]
 1902  160K IN_public  all  --  +      *       0.0.0.0/0            0.0.0.0/0           [goto]

Chain INPUT_ZONES_SOURCE (1 references)
 pkts bytes target     prot opt in     out     source               destination

Chain INPUT_direct (1 references)
 pkts bytes target     prot opt in     out     source               destination

Chain IN_public (3 references)
 pkts bytes target     prot opt in     out     source               destination
82468   23M IN_public_log  all  --  *      *       0.0.0.0/0            0.0.0.0/0
82468   23M IN_public_deny  all  --  *      *       0.0.0.0/0            0.0.0.0/0
82468   23M IN_public_allow  all  --  *      *       0.0.0.0/0            0.0.0.0/0

Chain IN_public_allow (1 references)
 pkts bytes target     prot opt in     out     source               destination
 8166  489K ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:22 ctstate NEW
    0     0 ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0            udp dpt:1194 ctstate NEW
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:2112 ctstate NEW
    1    60 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:3001 ctstate NEW

Chain IN_public_deny (1 references)
 pkts bytes target     prot opt in     out     source               destination

Chain IN_public_log (1 references)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT_direct (1 references)
 pkts bytes target     prot opt in     out     source               destination

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

для работы биржа в некоторых конфигурациях ядра нужно или добавить в FORWARD разрешение на пакеты приходищие через интерфейсы типа мост или отключить хождение L2 через iptables

Второе можно сделать так:

echo 0 >/proc/sys/net/bridge/bridge-nf-call-iptables
echo 0 >/sys/class/net/br0/bridge/nf_call_iptables
или через соответствующие sysctl.

Если таких файлов нет, зачит фича в ядре отключена и проблема с мостом имеет другие корни.

vel ★★★★★ ()

Упрости задачу для начала. Пусть сначала клиент подключаемый через opvn сможет получить доступ к машинам твоей сети.

А когда заработает, то добавишь мост и на клиенте.

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