URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID10
Нить номер: 2206
[ Назад ]

Исходное сообщение
"Прокинуть порты в ipfw для ip-телефона."

Отправлено Marquez , 28-Июл-05 15:45 
Задача подключить IP-телефон. Провайдер попросил "прокинуть" определённые порты (udp и tcp) "туда и обратно". В кавычках - цитаты провайдера. Во фре я не особо разбираюсь, но думаю, что имеется в виду divert.

Добавил в ipfw следующие правила:

add 460 divert natd tcp from Z.Z.Z.Z to any XXX out via xl1
add 461 divert natd udp from Z.Z.Z.Z to any YYY out via xl1
add 462 divert natd tcp from any to Z.Z.Z.Z XXX in via xl1
add 463 divert natd udp from any to Z.Z.Z.Z YYY in via xl1

xl1 - интерфейс, смотрящий в инет.
Z.Z.Z.Z - внутренний ip телефона
XXX - tcp-порты
YYY - udp-порты

Включили телефон, пров сообщил что от них ко мне пакет пришёл, но от меня - не вернулся. Перегрузили телефон - вообще тишина.

Возможно, я что-то не так сделал - поправьте, отцы :)

Содержание

Сообщения в этом обсуждении
"Прокинуть порты в ipfw для ip-телефона."
Отправлено Виктор , 28-Июл-05 16:04 
>Задача подключить IP-телефон. Провайдер попросил "прокинуть" определённые порты (udp и tcp) "туда
>и обратно". В кавычках - цитаты провайдера. Во фре я не
>особо разбираюсь, но думаю, что имеется в виду divert.
>
>Добавил в ipfw следующие правила:
>
>add 460 divert natd tcp from Z.Z.Z.Z to any XXX out via
>xl1
>add 461 divert natd udp from Z.Z.Z.Z to any YYY out via
>xl1
>add 462 divert natd tcp from any to Z.Z.Z.Z XXX in via
>xl1
>add 463 divert natd udp from any to Z.Z.Z.Z YYY in via
>xl1
>
>xl1 - интерфейс, смотрящий в инет.
>Z.Z.Z.Z - внутренний ip телефона
>XXX - tcp-порты
>YYY - udp-порты
>
>Включили телефон, пров сообщил что от них ко мне пакет пришёл, но
>от меня - не вернулся. Перегрузили телефон - вообще тишина.
>
>Возможно, я что-то не так сделал - поправьте, отцы :)


Используйте redir


"Прокинуть порты в ipfw для ip-телефона."
Отправлено Marquez , 28-Июл-05 16:11 
redir? Разве оно поможет? У меня тут появилась идея: нельзя ли использовать natd для моей цели? Сделать типа redirect_port udp внешний_ip:XXXX Z.Z.Z.Z:XXXX ?

"Прокинуть порты в ipfw для ip-телефона."
Отправлено Виктор , 28-Июл-05 16:23 
>redir? Разве оно поможет? У меня тут появилась идея: нельзя ли использовать
>natd для моей цели? Сделать типа redirect_port udp внешний_ip:XXXX Z.Z.Z.Z:XXXX ?
>


не пробовал так.
везде redir использую. мне нравиТся.


"Прокинуть порты в ipfw для ip-телефона."
Отправлено Marquez , 28-Июл-05 16:35 
>>redir? Разве оно поможет? У меня тут появилась идея: нельзя ли использовать
>>natd для моей цели? Сделать типа redirect_port udp внешний_ip:XXXX Z.Z.Z.Z:XXXX ?
>>
>
>
>не пробовал так.
>везде redir использую. мне нравиТся.

Где используете redir? Разве в ipfw есть "оно"? Я почитал здесь - http://www.opennet.me/man.shtml?topic=ipfw&russian=0&categor...

и не нашёл.


"Прокинуть порты в ipfw для ip-телефона."
Отправлено Виктор , 28-Июл-05 16:42 
>>>redir? Разве оно поможет? У меня тут появилась идея: нельзя ли использовать
>>>natd для моей цели? Сделать типа redirect_port udp внешний_ip:XXXX Z.Z.Z.Z:XXXX ?
>>>
>>
>>
>>не пробовал так.
>>везде redir использую. мне нравиТся.
>
>Где используете redir? Разве в ipfw есть "оно"? Я почитал здесь -
>http://www.opennet.me/man.shtml?topic=ipfw&russian=0&categor...
>
>и не нашёл.


Использую на работе, на халтуре и в домашней сети.
/usr/ports/net/redir

man redir - этого достаточно


"Прокинуть порты в ipfw для ip-телефона."
Отправлено Marquez , 28-Июл-05 16:45 
>Использую на работе, на халтуре и в домашней сети.
>/usr/ports/net/redir
>
>man redir - этого достаточно

Т.е. это дополнительная програмулина?


"Прокинуть порты в ipfw для ip-телефона."
Отправлено Moralez , 29-Июл-05 09:51 
Marquez, тебе надо наоборот, в NAT НЕ загонять пакеты.


"Прокинуть порты в ipfw для ip-телефона."
Отправлено Marquez , 30-Июл-05 00:36 
1. В итоге я добавил в natd.conf строки типа такой:

redirect_port tcp 192.168.0.1:123 123

Это правило пробрасывает 123-ий порт внутреннего ip на 123-ий порт моего сервера с freebsd. Аналогично с другими портами. Но сей ip-телефон продолжает не совсем верно работать. Почему-то с одим портом, скажем 7070 всё ОК, а с диапазоном 7001-7005 все плохо (со слов провайдера).

Для меня не понятно, почему, если одно правило у меня точно работает, не работают другие? Есть такой правило, что в конфиге natd.conf я должен перечислять правила от меньшего порта к большему? Я что-то сомневаюсь :)

2. Обязательно ли в /etc/rc.conf указывать natd_flags="-f /etc/natd.conf" ? Или natd при старте "читает" свой конфиг?


"Прокинуть порты в ipfw для ip-телефона."
Отправлено Marquez , 02-Авг-05 12:48 
В итоге сделал так:

rc.conf:

natd_enable="YES"
natd_interface=xl1
natd_flags="-u -redirect_port tcp 192.168.1.20:123 123 -redirect_port udp 192.168.1.20:5004-5008 5004-5008 -redirect_port 192.168.1.20:5060 5060
firewall_enable="YES"
firewall_type="/etc/firewall.sh"

Где 192.168.1.20 - ip телефона. Можно ли использовать несколько аргументов в natd_flags, как я и сделал?

P.S. Я так понимаю, что для работы redirect в natd надо правильно указать это в ipfw, rc.conf и natd.conf (я его не использовал). Может ещё где-то какой-то параметр необходимо проверить?

P.P.S. Не подскажите софтину которой можно было бы из вне проверять работает ли редирект порта?


"Прокинуть порты в ipfw для ip-телефона."
Отправлено wano , 13-Сен-05 11:04 
>В итоге сделал так:
>
>rc.conf:
>
>natd_enable="YES"
>natd_interface=xl1
>natd_flags="-u -redirect_port tcp 192.168.1.20:123 123 -redirect_port udp 192.168.1.20:5004-5008 5004-5008 -redirect_port 192.168.1.20:5060 5060
>
>firewall_enable="YES"
>firewall_type="/etc/firewall.sh"
>
>Где 192.168.1.20 - ip телефона. Можно ли использовать несколько аргументов в natd_flags,
>как я и сделал?
>
>P.S. Я так понимаю, что для работы redirect в natd надо правильно
>указать это в ipfw, rc.conf и natd.conf (я его не использовал).
>Может ещё где-то какой-то параметр необходимо проверить?
>
>P.P.S. Не подскажите софтину которой можно было бы из вне проверять работает
>ли редирект порта?


Флагов для natd можно использовать много, а чтобы проверить редирект нужно запустить natd с параметром -v