Два параллельных туннеля OpenVPN сайт-сайт: невозможно получить доступ ко всем интерфейсам
Настройка
У меня есть следующая топология:
Router 172.25.214.1 | | | SiteB 172.25.214.0/24 | | | LAN: 172.25.214.3 OpenVPN server+client B TUN0: 172.25.215.1 TUN1: 10.1.2.2 | | | | | | VpnSiteB VpnSiteA 172.25.215.0/24 10.1.2.0/24 | | | | | | TUN1: 172.25.215.2 TUN0: 10.1.2.1 OpenVPN server+client A LAN: 10.1.1.3 | | | SiteA 10.1.1.0/24 | | | Router 10.1.1.1
На каждом сайте сервер OpenVPN + клиент - это Raspberry Pi, на котором запущен один экземпляр сервера OpenVPN и один экземпляр клиента OpenVPN.
Таблица маршрутизации ядра на хосте OpenVPN SiteA:
Destination Gateway Genmask Flags Metric Ref Use Iface default 10.1.1.1 0.0.0.0 UG 0 0 0 eth0 10.1.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 10.1.2.0 0.0.0.0 255.255.255.0 U 0 0 0 tun0 172.25.214.0 172.25.215.1 255.255.255.0 UG 20 0 0 tun1 172.25.214.0 10.1.2.2 255.255.255.0 UG 30 0 0 tun0 172.25.215.0 0.0.0.0 255.255.255.0 U 0 0 0 tun1
и что хоста OpenVPN на SiteB:
Destination Gateway Genmask Flags Metric Ref Use Iface default 172.25.214.1 0.0.0.0 UG 0 0 0 eth0 10.1.1.0 10.1.2.1 255.255.255.0 UG 20 0 0 tun1 10.1.1.0 172.25.215.2 255.255.255.0 UG 30 0 0 tun0 10.1.2.0 0.0.0.0 255.255.255.0 U 0 0 0 tun1 172.25.214.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 172.25.215.0 0.0.0.0 255.255.255.0 U 0 0 0 tun0
Как видите, единственными сетями, которые имеют несколько маршрутов, являются SiteA и SiteB. Оба хоста OpenVPN предпочитают маршрутизировать на другой сайт через его интерфейс клиента / сеть OpenVPN.
Эта проблема
Большинство маршрутов работают нормально. Любой хост на сайте А может общаться в двух направлениях с
- Любой хост-интерфейс на SiteB
- Любой хост-интерфейс на VpnSiteA
- Любой хост-интерфейс на VpnSiteB, кроме TUN0 / 172.25.215.1
Т.е. хост на сайте А может пинговать
- 10.1.1.3
- 10.1.2.1
- 172.25.215.2
- 172.25.214.3
- 10.1.2.2
- Но не 172.25.215.1
Это то, что я хочу решить.
Устранение неисправностей я сделал
Тест 1
На хосте на SiteA я пингую 172.25.215.1 и проследил, что произошло TCPDUMP
на обоих хостах OpenVPN.
- Эхо-запрос поступил на хост OpenVPN SiteA по интерфейсу локальной сети
- Эхо-запрос оставил хост OpenVPN SiteA на его интерфейсе TUN1
- Эхо-запрос поступил на хост SiteB OpenNPN через его интерфейс TUN0
- Эхо-ответ оставил хост OpenBPN SiteB на его интерфейсе TUN1
- Нет Эхо ответа не прибыл на OpenVPN хозяина SiteA на любом из его интерфейсов.
Так что здесь что-то идет не так.
Тест 2
Я отключил сервер OpenVPN на хосте OpenVPN SiteA и отключил клиент OpenVPN на хосте OpenVPN, если SiteB. Другими словами, теперь существует только один туннель. На этот раз мне удалось пропинговать 172.25.215.1 с хоста на SiteA.
Так что, когда у меня есть два туннеля, что-то идет не так.
Фон
Почему не только один туннель? Время от времени мой интернет-провайдер на обоих сайтах перестает назначать мне публичный IP-адрес, оставляя меня позади CGN. Если это происходит на сайте, на котором размещен сервер OpenVPN, связь между сайтами нарушается. Но если на обоих сайтах работает сервер OpenVPN, если один сайт отстает от CGN, проблем нет.
аппендикс
server.conf
хоста OpenVPN SiteA:
; General ; --------------------------------------------------------- dev tun0 proto udp port xxxx client-config-dir /etc/openvpn/ccd keepalive 10 120 max-clients 20 tls-server verb 2 ; Network ; --------------------------------------------------------- topology subnet client-to-client server 10.1.2.0 255.255.255.0 route 172.25.214.0 255.255.255.0 10.1.2.2 30
client.conf
хоста OpenVPN SiteA:
; General ; --------------------------------------------------------- client dev tun1 proto udp remote xxxx resolv-retry infinite connect-retry 5 1800 explicit-exit-notify nobind tls-client verb 2 ; Network ; --------------------------------------------------------- script-security 2 up /etc/openvpn/uppe.sh down /etc/openvpn/nere.sh up-restart up-delay iproute /usr/local/sbin/unpriv-ip
Примечание: настройки безопасности удалены.
uppe.sh
:
#!/bin/bash /usr/local/sbin/unpriv-ip route add 172.25.214.0/24 via 172.25.215.1 dev tun1 metric 20 exit 0
nere.sh
#!/bin/bash /usr/local/sbin/unpriv-ip route del 172.25.214.0/24 via 172.25.215.1 dev tun1 metric 20 exit 0
Эти два относятся к смягчению CGN.
Файлы для хоста OpenVPN на SiteB идентичны, за исключением того, что сетевые адреса различаются.
0 ответов на вопрос
Похожие вопросы
-
9
В чем разница между командами "su -s" и "sudo -s"?
-
4
Требуется хороший бесплатный образ Ubuntu Server VMWare
-
4
Каковы различия между основными дистрибутивами Linux? Я замечу?
-
-
2
Ограничить использование процессора для Flash в Firefox?
-
2
Как мне заставить мой микрофон работать под Debian GNOME?
-
2
Конки установки - образцы / идеи?
-
2
Windows 7 Home Premium запоминает пароли общего доступа к сети?
-
3
Каковы различия между оконными менеджерами Linux?
-
5
Поделитесь XP сетевым подключением без перезагрузки?
-
5
Как мне сказать Windows использовать 802.11 вместо 3G?