LINUX.ORG.RU
ФорумAdmin

роутинг, iproute2, разные сети

 , ,


1

2

Приветствую.

Сейчас попытаюсь обрисовать, что имеется и задачу.

Имеется шлюз под управлением linux и роутинг на нем настроен через iproute2. В шлюз приходит два провайдера - основной с серой сетью 10.152.111.0, второй с белой сетью 194.135.22.0. (сети взяты от балды). Каждый на свой физический интерфейс. Маршрут по умолчанию для NAT выхода (да и вообще для выхода в свет) через провайдера с серой сетью.

Шлюз обслуживает сервисы в отдельной сети 192.168.200.0/24, локальные сети 192.168.0.0/24, 192.168.10.0/24, 192.168.15.0/24 - все через VLAN на одном интерфейсе.

В сети сервисов есть Asterisk - 192.168.200.50, слушает 5060 и принимает всех клиентов из локальных сетей 192.168...../24. Сам он выходит в интернет по маршруту по умолчанию - через провайдера с серой сетью, транк на сипнет.

Задача пробраться к Asterisk из белой сети. При этом сохранить транк через провайдера серой сети, не забыть про подключения из локалок. Шаманить с маркировкой пакетов?

Пробросить порт 5060 шлюза на сервер астериска.

 iptables -I PREPROUTING -t nat -d {ROUTER_WHITE_IP} --dport 5060 -j DNAT --to-destination 192.168.200.50:5060.

Не забывай про фаервол и хорошие пароли для клиентов, которых обслуживает астериск, а лучше разреши им подключаться только из локалки. Ибо из интернета начнут ломиться, желающих звонить забесплатно в мире до фига.

Yur4eg ★★ ()
Последнее исправление: Yur4eg (всего исправлений: 1)

Шаманить с маркировкой пакетов?

Да. rp_filter для all и для интерфейса с белым ип в 0 поставь только, иначе не заработает.

anonymous ()
Ответ на: комментарий от Yur4eg

Простая проброска работать не будет. Я же не зря описал схему - роутит все iproute2.

Ладно, буду шаманить с маркировкой пакетов. По другому не знаю как вырулить.

smserg ()
Ответ на: комментарий от smserg

Я же не зря описал схему - роутит все iproute2

хз что это значит, но раз ты настаиваешь, то показывай

ip a
ip r
ip ru
iptables-save

zolden ★★★★★ ()
Ответ на: комментарий от zolden

Да я сделал уже. Проброс порта на Asterisk. Все исходящие от Asterisk порта 5060 для сетей кроме 192.168.0.0/16 маркирую. Все с этим маркером загнал через правило в белый провайдер. Пришлось правда дописать, что к IP сипнета надо подключаться через серого провайдера (не очень удобно, так как сипнет может его сменить).

Теоретически с RTP портами надо сделать тоже самое.

Вообще я пока не очень понимаю Asterisk в плане NAT. У меня клиенты есть, которые и в прямой его видимости (в одной сети) и те, которые хотят придти с внешки имея белый IP. А еще клиенты, которые тоже хотели бы заходить с внешки, но они тоже за натом. =)

smserg ()
Ответ на: комментарий от smserg

Проще помечать соединения, которые пришли на белый адрес. Т.е.,

iptables -t mangle -A PREROUTING -d $IP -p udp --dport 5060 -j CONNMARK --set-xmark 1
iptables -t mangle -A PREROUTING -d $IP -p udp --dport 10000:20000 -j CONNMARK --set-xmark 1
iptables -t mangle -A PREROUTING -m connmark --mark 1 -j MARK --set-xmark 1 
10000:20000 - диапазон портов, используемых для RTP. Как-то так.

anonymous ()
Ответ на: комментарий от anonymous

Я вот вчера читал про CONNMARK как раз, так как никогда не пользовал его. Попробую с ним, так как это будет хороший выход от привязки к адресам. Правда случится это теперь только когда вернусь из командировки. =)

Спасибо за пример.

smserg ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.