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

Клиент с мостом OpenVPN может связываться с локальным маршрутизатором, но не с другими хостами

У меня есть сервер OpenVPN, работающий на Ubuntu 16.04.1. Я настроил его как сервер TAP / Bridging и добавил конфигурацию моста в свой /etc/network/interfaces файл. Мой клиент - ноутбук с Windows 10.

Мой клиент без проблем подключается к серверу и может получить доступ к веб-интерфейсу маршрутизатора в удаленной сети, используя свой локальный IP-адрес. Я также отслеживал интерфейс TAP на клиенте с помощью Wireshark и вижу, как широковещательные сообщения маршрутизируются с других хостов в удаленной сети. Однако я не могу пинговать или инициировать какое-либо сетевое взаимодействие с этими хостами, включая сам сервер. Кроме того, сервер не может проверить связь с клиентом, используя выделенный IP-адрес.

Я совершенно застрял и понятия не имею, почему мой клиент может разговаривать с маршрутизатором и использовать его интернет-соединение, но я невидим для всех других устройств в сети. Что я пропустил?

Любая помощь очень ценится.

Конфигурации:

Удаленная сеть

subnet = 192.168.100.0/24
router ip = 192.168.100.1
router dhcp range = 192.168.100.100 - 192.168.100.199
OpenVPN server ip = 192.168.100.10

Сервер

/ и т.д. / сеть / интерфейсы

auto lo
iface lo inet loopback

auto br0
iface br0 inet static
    address 192.168.100.10
    netmask 255.255.255.0
    gateway 192.168.100.1
    network 192.168.100.0
    dns-nameservers 8.8.8.8 8.8.4.4
    bridge_ports enp3s0

iface enp3s0 inet manual
    up ip link set $IFACE up promisc on
    down ifconfig $IFACE down

/etc/openvpn/server.conf

port 1194
proto tcp
dev tap0
ca ca.crt
cert server.crt
key server.key
dh dh2048.pem
topology subnet
server-bridge 192.168.100.1 255.255.255.0 192.168.100.200 192.168.100.210
push "route 192.168.100.0 255.255.255.0"
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 8.8.8.8"
client-to-client
keepalive 10 120
tls-auth ta.key 0
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
;log         openvpn.log
log-append  openvpn.log
verb 6
up "/etc/openvpn/up.sh br0 enp3s0"
script-security 3

/etc/openvpn/up.sh

#!/bin/sh

BR=$1
ETHDEV=$2
TAPDEV=$3

/sbin/ip link set "$TAPDEV" up
/sbin/ip link set "$ETHDEV" promisc on
/sbin/brctl addif $BR $TAPDEV

/etc/sysctl.conf

net.ipv4.ip_forward=1

iptables --list

Chain INPUT (policy ACCEPT)
target     prot opt source               destination
f2b-sshd   tcp  --  anywhere             anywhere             multiport dports ssh
ACCEPT     all  --  anywhere             anywhere

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Chain f2b-sshd (1 references)
target     prot opt source               destination
RETURN     all  --  anywhere             anywhere

Клиент

C: \ Program Files \ OpenVPN \ config \ client.ovpn

dev tap
proto tcp
remote my-public-ip-address 1194
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
verb 3

Результаты пинга

# Remote router
ping 192.168.100.1

Pinging 192.168.100.1 with 32 bytes of data:
Reply from 192.168.100.1: bytes=32 time=108ms TTL=64
Reply from 192.168.100.1: bytes=32 time=32ms TTL=64

# OpenVPN Server
ping 192.168.100.10

Pinging 192.168.100.10 with 32 bytes of data:
Reply from 192.168.100.200: Destination host unreachable.

Что ж, я чувствую себя довольно глупо. Оказывается в server.conf линия

сервер-мост 192.168.100.1 255.255.255.0 192.168.100.200 192.168.100.210

должен прочесть

сервер-мост 192.168.100.10 255.255.255.0 192.168.100.200 192.168.100.210

т.е. первый аргумент - это IP-адрес сервера, а не адрес шлюза, который у меня был.