@Yuhter

Как пробросить SIP с помощью iptables между двумя VPN?

Добрый день. Никогда не имел дело с iptables и вот опять))

Ситуация такая: Есть машина с UBUNTU, она стоит за роутером, на роутере белый айпи. На этой машине поднято два VPN, одна к сети предприятия kvnet (10.10.0.0/24), вторая на смартфон wghub (10.20.0.0/24) и локальный интерфейс enp0s3 (192.168.0.0/24).

Разрешаю форвардинг:

sudo sysctl -q -w net.ipv4.ip_forward=1

Разрешаю форвардинг между VPN интерфейсами (но похожу это совсем необязательно):

sudo iptables -A FORWARD -i wghub -o kvnet -j ACCEPT
sudo iptables -A FORWARD -i kvnet -o wghub -j ACCEPT

Включаю полный маскарад)):

sudo iptables -t nat -A POSTROUTING -o wghub -j MASQUERADE
sudo iptables -t nat -A POSTROUTING -o kvnet -j MASQUERADE
sudo iptables -t nat -A POSTROUTING -o enp0s3 -j MASQUERADE

В итоге имею:

Со смартфона пингуются все машины домашней и все машины рабочей сети. RDP работает. Часть задачи выполнена.

Но хочется чтобы еще работала Voip звонилка на смартфоне, подключенная к АТС предприятия, а она этого не хочет. Дозвон проходит и даже собеседник меня слышит, а вот я его нет. В статистике звонка видно, что входящих пакетов нет вобще. Делаю вывод что для SIP нужно входящее соединение и через мой импровизированный NAT оно не пролазит, сервер шлет пакеты на UBUNTU, а дальше что с ними делать ей неизвестно. И тут бы я и успокоился, да вот странная штука, несколько звонков удалось выполнить с двухсторонней связью, при этом я так и не понял как это произошло, разобраться как такое повторить не получилось))

Пытался вместо маскарада прописывать жесткие правила, но ничего это не дало.
Включаю NAT:
sudo iptables -t nat -A POSTROUTING -s 10.20.0.0/24 -o kvnet -j SNAT --to-source 10.10.0.2

Правила для форвардинга sip и rtp портов на смартфон:
sudo iptables -t nat -A PREROUTING -i kvnet -p udp -m udp --dport 5004:5089 -j DNAT --to-destination 10.20.0.2:5004-5089
sudo iptables -t nat -A PREROUTING -i kvnet -p udp -m udp --dport 10000:20000 -j DNAT --to-destination 10.20.0.2:10000-20000

Подтолкните пожалуйста в нужном направлении, опыта работы с iptables совсем нет((

UPD: Вопрос решен. Посмотрел открытые соединения в свою сторону с сервера VPN предприятия и увидел, что RTP пакеты идут не по портам диапазона 10000-20000, а по одному порту 8000. Почему так не знаю, в настройках АТС указан стандартный диапазон, но уже не суть. В итоге прописал одно единственное правило: sudo iptables -t nat -A PREROUTING -i kvnet -p udp -m udp --dport 8000 -j DNAT --to-destination 10.20.0.2:8000 и все пошло как надо.

Всем спасибо!
  • Вопрос задан
  • 231 просмотр
Пригласить эксперта
Ответы на вопрос 1
@nApoBo3
Зачем вам nat между этими сетями? Уберите nat и все заработает. NAT и sip не очень друг друга любят.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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