Привет, незнакомец!

Похоже, вы здесь новенький. Чтобы принять участие, нажмите одну из кнопок ниже!

Проброс диапазона портов в Cisco 881

отредактировано апреля 2016 Раздел: IP телефония
Приветствую!
Возникла такая вот, на первый взгляд глуповатая, задача:
Есть сервер телефонии (Asterisk) во внутренней сети с серым IP-адресом за TP-Link (на Asterisk NAT включен). К нему по коротким номерам подключаются телефоны из нескольких филиалов, также из-за NAT (у них Cisco 881 стоят). При попытке поставить в офис с сервером телефонии новый шлюз (881), с проброшенным портом 5060 (от компании, обслуживающей астер, были даны указания пробросить UDP-порты 5060 и 10000-20000), нормально проходят звонки наружу, но в филиалах почему-то не слышно голоса, хотя сигналка пролазит. Немного погуглив проблему, на новом шлюзе была дана команда, отключающая SIP ALG, потому что он якобы плохо работает:
no ip nat service sip udp port 5060
...с тем же успехом. Ещё немного погуглив проблему, и вспомнив, что надо пробросить RTP, т.к. с отключенным SIP ALG циска сама его не пробрасывает, столкнулся с интересной задачей: оказывается, в Cisco (IOS 15.4) нет возможности прокинуть диапазон портов с внешнего адреса на определённый серый адрес. Ну, то есть, существуют способы типа:
ip nat pool superpool 192.168.10.1 192.168.10.1 netmask 255.255.255.0 type rotary
ip nat inside destination list 101 pool superpool
access-list 101 permit tcp any any range 1000 2000
Или c route-map, но в моём случае они почему-то не отрабатывают. Помогло только ручное прокидывание 1000 строк (!) из диапазона, используемого телефонами, да и то не до конца - из одного филиала голос так и не забегал :)
Понятное дело, что такой индусский проброс - штука неправильная, потому есть пара вопросов:
1)Как в Cisco проще всего сделать проброс большого диапазона портов с белого на внутренний адрес? (в TP-link за 500 рублей это решается одной командой)
2)По идее, голосовой трафик должен крутиться и без проброса портов, засчёт inspect. Кто-нибудь подскажет, как такой инспект правильно настраивается под данную задачу? Версия системы - 15.4(1r)T1 advsecurity_npe

Комментарии

  • Вероятно отвечу не совсем по-теме, но надеюсь кое что из сказанного Вам поможет:

    Достаточно широко известная проблема прохождения голосового трафика через NAT.
    Проблема заключается в том, что при согласовании звонка в пакетах сигнализации (SIP/Session Initialization Protocol) внутри которого работает протокол SDP (Session Description Protocol), одна из сторон в рамках SDP указывает адрес куда слать RTP пакеты c голосовыми данными. Таким образом, если устройство (например клиент) не знает, что он находится за NAT, он будет в SDP писать свой IP-адрес о котором ему известно в данном случае вероятней всего серый.
    Поэтому, другая (или обе) стороны при согласовании параметров сессии (когда выбирается кодек, диапазон портов и IP-адрес) во время инициализации звонка сообщает информацию о том, что необходимо слать голос на ее серый Ip-адрес. Какой бы вы NAT и проброс портов не делали, если одна из сторон, будет заявлять - шли мне пакеты на мой серый IP, то слышимости у этой стороны не будет.
    Как решить данную проблему:
    1. Использование туннелирования - это априори улучшает безопасность и решает проблемы с необходимостью NAT.
    2. Изменить настройки sip-peer/user/aget на Asterisk и на самих телефонах, указав им то, что они используют NAT, если в филиалах есть static IP его можно и нужно прописать в настройках sip на клиентах.
    3. Использование внешних сторонних STUN-серверов, опять же при включенных настройках NAT на клиентах, это делается в том случае, если в филиалах нет возможности использования static IP.
    4. Касаемо Inspect и SIP ALG, то эти механизмы, на сколько я знаю, как раз и работают на то, чтобы изменять SIP пакеты сигнализации и потом динамически транслировать RTP пакеты.

    Касаемо вариантов проброса пула портов на Cisco самому интересно. Т.к. практического опыта с их роутерами почти нету, все больше Mikrotik в мелком Enteprise сегменте удавалось пощупать. А в нашем ISP таких задач нет и вендоры тоже другие.
  • отредактировано апреля 2016
    http://voxlink.ru/kb/asterisk-configuration/asterisk-nat-solving/
    http://911ua.blogspot.ru/2010/09/nat-sip-asterisk.html

    Попробуйте собрать лабу на http://www.unetlab.com/ и поиграйтесь :)
    Потом свои успехи нам отпишите :)
  • ip nat pool superpool 192.168.10.1 192.168.10.1 netmask 255.255.255.0 type rotary
    ip nat inside destination list 101 pool superpool
    access-list 101 permit tcp any any range 1000 2000

    первый момент:
    Заметьте, тут написано TCP , а Астериск RTP использует UDP.
    второй:
    ip nat inside destination вроде несовсем аналогично работает как с портами TCP, т.е. в случае с Астериском голос не будет слышен.

    Надо дальше копать.

    У меня такая же история. Для теста на циске прописал вручную
    ip nat inside destination ... 10000 ..
    ip nat inside destination ... 10010 ..

    и провели звоки- голос идет.

    Осталось найти решение как же в этой циске пробросить ДИАПАЗОН UDP портов!
  • отредактировано мая 2016
    alee написал:

    ip nat pool superpool 192.168.10.1 192.168.10.1 netmask 255.255.255.0 type rotary
    ip nat inside destination list 101 pool superpool
    access-list 101 permit tcp any any range 1000 2000

    первый момент:
    Заметьте, тут написано TCP , а Астериск RTP использует UDP.

    UDP, конечно. Прошу прощения - опечатка, с UDP также не работает. Проблему удалось решить только туннелями, поэтому вопрос остаётся открытым:
    alee написал:


    Осталось найти решение как же в этой циске пробросить ДИАПАЗОН UDP портов!

  • Hidden написал:

    alee написал:

    ip nat pool superpool 192.168.10.1 192.168.10.1 netmask 255.255.255.0 type rotary
    ip nat inside destination list 101 pool superpool
    access-list 101 permit tcp any any range 1000 2000

    первый момент:
    Заметьте, тут написано TCP , а Астериск RTP использует UDP.

    UDP, конечно. Прошу прощения - опечатка, с UDP также не работает. Проблему удалось решить только туннелями, поэтому вопрос остаётся открытым:
    alee написал:


    Осталось найти решение как же в этой циске пробросить ДИАПАЗОН UDP портов!

    http://www.anticisco.ru/forum/viewtopic.php?f=2&t=147
Войдите или Зарегистрируйтесь чтобы комментировать.