OpenVPN клиенты, которые не в состоянии соединяться с адресом, направленным через другой OpenVPN B

Хорошо у меня есть сервер OpenVPN, который размещает диапазон 10.8.0.0/24 и сервер OpenVPN B, который размещает 10.7.0.0/24. Сервер A является также клиентом сервера B.

Это - конфигурация адаптеров бочки обоих серверов.

Сервер OpenVPN A

inet 10.8.0.1 peer 10.8.0.2/32 scope global tun0
inet 10.7.0.6 peer 10.7.0.5/32 scope global tun1

Сервер OpenVPN B

inet 10.7.0.1 peer 10.7.0.2/32 scope global tun0

Клиенты OpenVPN A получают весь свой трафик, направленный через Сервер A и через его интерфейс глобальной сети. Однако один диапазон IP 192.168.0.0/24 может только быть достигнут через VPN сервера B. Я настроил маршрут, который передает весь 192.168.0.0/24 через интерфейс бочки, который подключает сервер к серверу B.

ip route add 192.168.0.0/24 dev tun1

Я могу проверить с помощью ping-запросов 192.168.0.0/24 штраф на сервере A, НО я не могу проверить с помощью ping-запросов или достигнуть того диапазона, когда я нахожусь на клиенте OpenVPN сервера A. Я могу проверить с помощью ping-запросов IP адреса бочки 10.7.0.6, но не 192.168.0.0/24. Кто-либо может пролить некоторый свет в то, почему это происходит?

2
задан 6 September 2015 в 16:26
1 ответ

من یک شبکه مجازی و یک سری ماشین های مجازی ایجاد کردم که در این تصویر نشان داده شده است تا تجسم این مشکل را آسان تر کنم.

virtual network serverfault question 720423

هر سیستمی که قرار است بسته ها را بفرستد باید حمل و نقل ipv4 را فعال کرده باشد:

# sysctl net.ipv4.ip_forward=1

پیکربندی openvpn در شبکه آزمایشی من ساده شده است. من با استفاده از openvpn بدون احراز هویت / رمزگذاری ، آن را از خط فرمان اجرا می کنم ، تا یک تونل ساده بین ماشین های "openvpn-a" و "openvpn-b" فراهم کنم.

openvpn-a:

root@openvpn-a# openvpn --remote openvpn-b --dev tun1

openvpn-b:

root@openvpn-b# openvpn --remote openvpn-a --dev tun1

من دقیقاً مشكلی را كه توصیف كردید ، تجربه كردم و سعی می كردم openvpn-b (192.168.20.1) را از client-a (192.168.10.10) ping كنم.

این نتیجه این است كه بسته توسط openvpn-a ارسال می شود و به openvpn می رسد -b با یک آدرس منبع که openvpn-b برای آن مسیر ندارد.

می توان به چندین روش به یک راه حل برای این مشکل دسترسی پیدا کرد ... یکی ، افزودن مسیر به سمت "a" شبکه در openvpn-b ، از طریق دستگاه تونل openvpn-a:

openvpn-b:

root@openvpn-b# ip route add 192.168.10.0/24 via 10.8.0.1

مورد دیگر پیکربندی مسیر پیش فرض openvpn-b است که از طریق دستگاه تونل openvpn-a باشد:

openvpnb-b:

root@openvpn-b# ip route add default via 10.8.0.1

و مورد دیگر پیکربندی NAT بر روی دستگاه تونل در openvpn-a است:

openvpn-a:

root@openvpn-a# iptables -t nat -A POSTROUTING -o tun1 -j MASQUERADE

Wireshark و / یا tcpdump می توانند هنگام تشخیص این مشکل بسیار تأثیرگذار باشند. همانطور که روی دستگاه تونل openvpn-b هنگام ورود بسته مشاهده می شود و هیچ راهی به شبکه آدرس منبع وجود ندارد:

root@openvpn-b# tcpdump -n -i tun1
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on tun1, link-type RAW (Raw IP), capture size 65535 bytes
15:45:10.973251 IP 192.168.10.10 > 192.168.20.1: ICMP echo request, id 2550, seq 1, length 64
^C
1 packet captured
1 packet received by filter
0 packets dropped by kernel
1
ответ дан 3 December 2019 в 12:45

Теги

Похожие вопросы