1

Для входа из Интернета на SIP-сервер, работающий на моем домашнем маршрутизаторе (192.168.1.1), который по нескольким причинам доступен только из моей локальной сети, мне было предложено настроить маршрутизируемый сервер OpenVPN.

Таким образом, я теоретически мог бы заставить свой маршрутизатор думать, что трафик, поступающий с удаленного устройства, а именно с моего мобильного телефона через клиентское приложение Android, пришел с моего собственного сервера OpenVPN. Поскольку сервер будет работать на ПК, подключенном к моей локальной сети (в моем случае, 192.168.1.3), это может эффективно позволить мне войти в SIP-сервер с моего мобильного телефона.

Я установил OpenVPN на настольном компьютере Linux Mint (Ubuntu):

$ uname -a
Linux lorenzo-desktop 3.13.0-37-generic #64-Ubuntu SMP Mon Sep 22 21:28:38 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

и, следуя официальным инструкциям и некоторой информации, которую я нашел в другом месте, я создал файл server.conf (показаны только соответствующие биты):

port 1194
proto udp
dev tun
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "route 192.168.1.0 255.255.255.0"
persist-key
persist-tun
topology subnet

Мне посоветовали от другого пользователя (MariusMatutiae) добавить следующее правило iptables :

sudo iptables -t nat -A POSTROUTING -o eth0 ! -d 10.8.0.0/24 -j MASQUERADE 

Я также включил переадресацию IP на ПК, на котором размещен сервер, и правильно настроил переадресацию портов на домашнем маршрутизаторе. После этого сервер должен работать правильно, но вместо этого происходит следующее:

  • Я могу войти на сервер OpenVPN, работающий на 192.168.1.3 , который назначает моему удаленному клиенту IP 10.8.0.6 ;
  • Я могу пропинговать любое устройство в моей локальной сети, среди которых мой модем / маршрутизатор на 192.168.1.1 работает SIP-сервер;
  • Я могу успешно войти в систему на SIP-сервере (поэтому я предполагаю, что между моим мобильным телефоном и маршрутизатором должно быть какое-то рукопожатие);
  • Я могу звонить с мобильного телефона на другие устройства, подключенные к SIP-серверу, и они меня слышат, но я не слышу звук, который должен исходить от них.

Это вывод из ip route show:

default via 192.168.1.1 dev eth0  proto static 
10.8.0.0/24 dev tun0  proto kernel  scope link  src 10.8.0.1 
192.168.1.0/24 dev eth0  proto kernel  scope link  src 192.168.1.3  metric 1 

а из ip link show dev tun0:

3: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN mode DEFAULT group default qlen 100
    link/none

Наконец, здесь вы можете найти выходные данные из tcpdump -i eth0 и из tcpdump -i tun0.

Мой вопрос: кто-нибудь может догадаться, что может быть не так? Отсутствуют пакеты? Неправильная конфигурация сервера? Пропали записи iptables ?

РЕДАКТИРОВАНИЕ № 1:

К сожалению, я не могу добавить маршруты к своему маршрутизатору; если это может быть полезно, его модель называется Technicolor AG Plus. Знаете, мне не так много места для взлома, мне повезло, что он поддерживает DDNS.

Это единственное активное правило iptables на ПК, на котором размещен сервер OpenVPN:

# iptables -vL -t nat
[...]
Chain POSTROUTING (policy ACCEPT 25 packets, 1672 bytes)
 pkts bytes target     prot opt in     out     source               destination         
   61  3949 MASQUERADE  all  --  any    eth0    anywhere            !10.8.0.0/24

Резюме конфигурации сети

  • [ 192.168.1.1 ] - модем / маршрутизатор, предоставляемый моим провайдером, который я использую для подключения к Интернету; Это довольно элементарное устройство, у него нет средств для настройки маршрутов и нет возможности VPN. Он запускает сервер SIP, к которому я хочу подключиться.
  • [ 192.168.1.2 ] - это маршрутизатор, который я использую в качестве расширителя сети. Он настроен таким образом, что он полностью прозрачен для трафика, проходящего через него. До сих пор у меня не было проблем с этим, и я действительно не думаю, что это имеет какое-либо влияние на мою проблему. Многие SIP-клиенты подключаются через него и могут успешно совершать и принимать звонки.
  • [ 192.168.1.3 ] - это компьютер под управлением Linux Mint, подключенный через кабель Ethernet к 192.168.1.2 , на котором работает сервер OpenVPN. В VPN его адрес - [ 10.8.0.1 ]. Мой домашний маршрутизатор (192.168.1.1) перенаправляет входящий трафик через порт 1194 на это устройство.
  • Мой смартфон подключается к Интернету через сотовую сеть 3G. Он может подключиться к серверу OpenVPN и получить адрес, например [ 10.8.0.6 ]. Он может войти в систему на сервере SIP, работающем на 192.168.1.1 но у меня есть односторонняя передача звука со смартфона на целевое устройство SIP.

0