NAT в VoIP

  1. Вступление Этот документ описывает поведение NAT (преобразование сетевых адресов) в маршрутизаторах, работающих как CUBE (Cisco Unified Border Element), CME или CUCME (Cisco Unified Cummunication Manager Express), шлюзы и CUSP (Cisco Unified SIP Proxy). Предпосылки
  2. Используемые компоненты
  3. Исходная информация
  4. Статический NAT
  5. Динамический NAT
  6. Перегрузка NAT (PAT)
  7. Параметры команды NAT
  8. NAT pinhole
  9. ALG
  10. шлюзы
  11. Местный
  12. Локальный к удаленному
  13. Удаленный телеработник
  14. Удаленные телефоны с публичными (читай: маршрутизируемыми) IP-адресами
  15. Удаленные телефоны с частным IP-адресом
  16. Удаленные SIP-телефоны
  17. NAT SBC
  18. Примечания к дизайну
  19. конфигурация
  20. Поток вызовов с SBC NAT
  21. Регистрация SIP
  22. симптомы
  23. Команды показа и отладки
  24. Основной NAT
  25. SIP ALG

Вступление

Этот документ описывает поведение NAT (преобразование сетевых адресов) в маршрутизаторах, работающих как CUBE (Cisco Unified Border Element), CME или CUCME (Cisco Unified Cummunication Manager Express), шлюзы и CUSP (Cisco Unified SIP Proxy).

Предпосылки

Требования

Cisco рекомендует ознакомиться с этими темами:

  • SIP (протокол инициации сеанса)
  • Голос по IP (Интернет-протокол)
  • Протоколы маршрутизации

Используемые компоненты

Информация в этом документе основана на

  • Любая версия IOS 12.4T и выше.
  • Любая версия CME

Сведения в этом документе были созданы с устройств в определенной лабораторной среде. Все устройства, использованные в этом документе, были запущены с очищенной (по умолчанию) конфигурацией. Если ваша сеть работает, убедитесь, что вы понимаете потенциальное влияние любой команды.

Исходная информация

Трансляция сетевых адресов - это широко используемый метод преобразования IP-адресов в пакетах, которые передаются между сетями с использованием разных адресных пространств. Целью этого документа не является рассмотрение NAT. Скорее, этот документ стремится предоставить всесторонний обзор NAT, поскольку он используется в сетях VoIP Cisco. Кроме того, область применения ограничена компонентами, составляющими технологию MS-Voice.

  • NAT в основном заменяет IP-адрес в пакетах другим IP-адресом
  • Позволяет нескольким хостам в частной подсети совместно использовать (т.е. выглядеть как) один публичный IP-адрес для доступа в Интернет.
  • Как правило, конфигурации NAT изменяют только IP-адрес внутренних хостов.
  • NAT является двунаправленным - если A переводится в B на внутреннем интерфейсе, B, поступающий на внешний интерфейс, переводится в A!
  • RFC1631

RFC1631

Рисунок 1

Примечание . Это может помочь рассматривать NAT как средство для маршрутизации IP-пакетов в сети и из сетей с использованием частного адресного пространства. Другими словами, NAT делает не маршрутизируемые адреса маршрутизируемыми.

На рисунке 2 показана топология, на которую ссылаются иллюстрации, приведенные ниже.

На рисунке 2 показана топология, на которую ссылаются иллюстрации, приведенные ниже

фигура 2

Этот глоссарий является фундаментальным для понимания и описания NAT

  • Внутренний локальный адрес - IP-адрес, назначенный узлу во внутренней сети. Как правило, адрес из частного адресного пространства.
  • Внутренний глобальный адрес - маршрутизируемый IP-адрес, назначенный сетевой платой или поставщиком услуг, который представляет один или несколько внутренних локальных IP-адресов для внешнего мира.
  • Внешний локальный адрес - IP-адрес внешнего хоста, который отображается во внутренней сети. Не обязательно допустимый адрес, он выделяется из адресного пространства, маршрутизируемого изнутри.
  • Внешний глобальный адрес - IP-адрес, назначенный узлу во внешней сети владельцем узла. Адрес выделяется из глобально маршрутизируемого адреса или сетевого пространства.

Примечание : освоитесь с этими условиями. Любые заметки или документы по NAT обязательно ссылаются на них

Статический NAT

Это простейшая форма NAT, где в каждом внутреннем адресе статически транслируется внешний адрес (и наоборот).

Рисунок 3

CLI для конфигурации для приведенного выше перевода выглядит следующим образом

интерфейс Ethernet0 / 0

IP-адрес 10.1.1.3 255.255.255.0

ip nat inside

!

интерфейс Serial0 / 0

IP-адрес 200.1.1.251 255.255.255.252

ip nat outside <- обязательно! [2]

ip nat inside source static 10.1.1.2 200.1.1.2

ip nat inside source static 10.1.1.1 200.1.1.1

Динамический NAT

В динамическом NAT каждый внутренний хост сопоставляется с адресом из пула адресов.

  • Выделяет IP-адрес из пула внутренних глобальных адресов.
  • Если новый пакет поступает от еще одного внутреннего хоста и ему требуется запись NAT, но все объединенные IP-адреса используются, маршрутизатор просто отбрасывает пакет.
  • По сути, пул внутренних глобальных адресов должен быть таким же большим, как максимальное количество одновременно работающих хостов, которым необходимо одновременно использовать Интернет.

Следующий CLI иллюстрирует настройку динамического NAT

Перегрузка NAT (PAT)

Когда пул (IP-адресов) меньше, чем набор адресов, которые необходимо преобразовать, эта функция оказывается полезной.

  • Несколько внутренних адресов NAT привязаны только к одному или нескольким внешним адресам
  • PAT (преобразование адресов портов) использует уникальные номера портов источника на внутреннем глобальном IP-адресе для различения переводов. Поскольку номер порта закодирован в 16 битах, общее число теоретически может достигать 65 536 на IP-адрес. PAT попытается сохранить исходный исходный порт, если этот исходный порт уже выделен PAT попытается найти первый доступный номер порта
  • Перегрузка NAT может использовать более 65 000 портов, что позволяет хорошо масштабировать ее, не требуя большого количества зарегистрированных IP-адресов - во многих случаях требуется только один внешний глобальный IP-адрес.

Рисунок 4 иллюстрирует PAT.

Рисунок 4

Параметры команды NAT

Реализация Cisco NAT очень универсальна с множеством вариантов. Некоторые из них перечислены ниже, но, пожалуйста, обратитесь к Http: // www.cisco.com /en/US/partner/technologies/tk648/tk361/tk438/technologies_white_paper09186a0080091cb9.html для получения подробной информации о полном списке улучшений.

  • Статические трансляции с портами - входящие пакеты, адресованные определенному порту (например, порт 25, для SMTP-сервера), отправленные конкретному серверу.
  • Поддержка карт маршрутов - Гибкость в настройке фильтров / ACL
  • Более гибкие конфигурации пула - для разрешения прерывистых диапазонов адресов.
  • Сохранение номера хоста - переведите часть «сеть», оставьте часть «хост».

NAT pinhole


Пинхол на языке NAT относится к отображению между кортежами <host IP, port> и <global address, global port>. Это позволяет устройству NAT использовать номер порта назначения (который будет глобальным портом) входящих сообщений для сопоставления пункта назначения с IP-адресом хоста и портом, который инициировал сеанс. Важно отметить, что по истечении периода неиспользования тайм-ауты теряют время, и публичный адрес возвращается в пул NAT.

Итак, каковы проблемы и проблемы с NAT в сетях VoIP? Напомним, что NAT, который мы обсуждали до сих пор (ранее называвшийся базовым NAT), только преобразует IP-адрес в заголовок IP-пакета и, конечно, пересчитывает контрольную сумму, но VoIP-сигнализация переносит адреса, встроенные в тело сигнализации. Сообщения. Другими словами, на уровне 5

На рисунке 5 показан эффект от того, что встроенные IP-адреса не переведены. Сигнализация вызова завершается успешно, но прокси-сервер SIP у поставщика услуг не может попытаться направить мультимедийные (RTP) пакеты на медиа-адрес, отправленный агентом вызова!

Рисунок 5

Другим примером может быть использование конечной точки SIP поля Contact: в SDP для передачи адреса, по которому конечная точка хотела бы получать сообщения сигнализации для новых запросов.

Эти проблемы решаются с помощью функции под названием Application Layer Gateway (ALG).

ALG

ALG понимает протокол, используемый конкретными приложениями, которые он поддерживает (например, SIP), и выполняет проверку пакетов протокола и «исправление» трафика через него. Для хорошего описания того, как различные поля установлены для сигнализации вызова SIP, обратитесь к http://www.voip-info.org/wiki/view/Routers+SIP+ ALG.

На маршрутизаторах Cisco поддержка ALG SIP включена по умолчанию на стандартном порте TCP 5060. Можно настроить ALG для поддержки нестандартных портов для сигнализации SIP. Ссылаться на http://www.cisco.com/en/US/docs/ios-xml/ios/ipaddr_nat/configuration/15-mt/nat-tcp-sip-alg.html.

Осторожно ! Осторожно! Не существует RFC или другого стандарта, который бы указывал, какие встроенные поля следует переводить для различных протоколов VoIP. В результате реализации варьируются среди поставщиков оборудования, что приводит к проблемам взаимодействия (и случаи TAC).

шлюзы

Поскольку шлюзы по определению не являются устройствами ip-to-ip, NAT не применяется.

В этом разделе документа рассматриваются сценарии вызовов с CME, чтобы понять, почему необходимо использовать NAT.

Сценарий 1. Местные телефоны

Сценарий 2. Удаленные телефоны (с публичными IP-адресами)

Сценарий 3. Удаленный телеработник

Примечание . Во всех случаях для передачи звука IP-адрес CME должен быть маршрутизируемым.

Местный

В этом сценарии (рисунок 6) два телефона, участвующие в вызове, являются тощими телефонами с частными IP-адресами.

Рисунок 6

Примечание : Помните, что тощий телефон, который подключен к вызову с другим тощим телефоном в той же системе CME, отправляет свои медиапакеты непосредственно на другой телефон; т.е. RTP для локального телефона на локальный телефон НЕ проходит через CME.

Следовательно, NAT не применяется или требуется в этом случае.

Примечание : CME определяет, должен ли носитель (RTP) напрямую или нет, основываясь на том, являются ли оба телефона, участвующие в вызове, одинаковыми или находятся в одном сегменте сети. В противном случае CME вставляет себя в путь RTP.

Локальный к удаленному

В этом сценарии (рисунок 7) CME вставляет себя в поток RTP так, что RTP от телефонов будет завершен на CME. CME перезапустит потоки к другому телефону. Поскольку CME находится как во внутренней (частной) сети, так и во внешней сети и отправляет свой внутренний адрес на внутренний телефон, а внешний (публичный) адрес на внешний телефон, NAT здесь также не требуется.

Однако обратите внимание, что порты UDP / TCP (сигнализация, а также RTP) должны быть открыты между удаленным IP-телефоном и IP-адресом источника CME. Это означает, что брандмауэры или другие устройства фильтрации настроены для разрешения соответствующих портов.

Это означает, что брандмауэры или другие устройства фильтрации настроены для разрешения соответствующих портов

Рисунок 7

Примечание : обратите внимание, что сигнализация [сообщения] всегда завершается на CM

Удаленный телеработник

Это относится к IP-телефонам, соединяющимся с CME через WAN для поддержки удаленных сотрудников, у которых есть офисы, удаленные от маршрутизатора CME. Наиболее распространенные модели - это телефоны с маршрутизируемыми IP-адресами и телефоны с частными IP-адресами.

Удаленные телефоны с публичными (читай: маршрутизируемыми) IP-адресами

Если оба телефона, участвующие в вызове, настроены с общедоступными маршрутизируемыми IP-адресами, мультимедиа может передаваться между телефонами напрямую (рисунок 8). Поэтому, опять же, нет необходимости в NAT!

Рисунок 8

Удаленные телефоны с частным IP-адресом

В этом случае вызов передается между тощими телефонами, настроенными с частными IP-адресами. Маршрутизаторы домашнего офиса (SOHO), как правило, не «осведомлены о SCCP». то есть не в состоянии транслировать IP-адреса, встроенные в сообщения SCCP. Это означает, что после завершения настройки вызова телефоны в конечном итоге получают частный IP-адрес друг друга. Поскольку оба телефона являются частными, CME будет сигнализировать о вызове между ними так, чтобы аудио передавалось непосредственно между телефонами. Это, однако, приведет к одностороннему или непроходному аудио (поскольку частные IP-адреса по определению не могут быть направлены в Интернет!), Если не будет реализован один из следующих обходных путей:

· Настройка статических маршрутов на маршрутизаторах SOHO.

· Установить IPsec VPN соединение с телефонами

Лучший способ решить эту проблему - настроить «mtp». Команда mtp гарантирует, что мультимедийные (RTP) пакеты с удаленных телефонов проходят через маршрутизатор CME (рисунок 9).

Рисунок 9

Решение «mtp» лучше из-за сложностей с открытием портов брандмауэра. Медиапакеты, проходящие через WAN, могут быть заблокированы брандмауэром. Это означает, что вам нужно открыть порты на брандмауэре, но какие именно? С CME, передающим аудио, межсетевые экраны могут быть легко настроены для передачи пакетов RTP. Маршрутизатор CME использует определенный порт UDP (2000!) Для пакетов мультимедиа. Таким образом, просто разрешая пакеты в порт 2000 и из него, можно передавать ВСЕ RTP-трафик.

На рисунке 10 показано, как настроить mtp.

телефон 1

mac 1111.2222.3333

тип 7965

мтп

кнопка 1: 1

Рисунок 10

Не все замечательно с MTP. Есть ситуации, когда MTP может быть нежелательным

  • MTP не щадит загрузку процессора
  • Multicast MOH, как правило, не может быть переадресован через WAN. Функция Multicast MOH проверяет, включен ли MTP для телефона, и, если это так, не отправляет MOH на этот phoneL.

Таким образом, если у вас есть конфигурация WAN, которая может пересылать многоадресные пакеты, и вы можете разрешить пакеты RTP через брандмауэр, вы можете решить не использовать MTP.

Удаленные SIP-телефоны

Обратите внимание, что SIP-телефоны не упоминались в вышеупомянутых сценариях. Это связано с тем, что если один из телефонов является SIP-телефоном, CME вставляет себя в аудиопуть. Затем это становится сценарием локального-удаленного, описанного ранее, в котором NAT не требуется.

CUBE по своей природе выполняет функции NAT и PAT, поскольку он завершает и повторно инициирует все сеансы. CUBE заменяет свой собственный адрес на адрес любой конечной точки, с которой он связывается, тем самым эффективно скрывая (переводя) адрес этой конечной точки.

Таким образом, NAT не требуется с функцией CUBE. Существует сценарий обслуживания VoIP, в котором требуется NAT на CUBE, как описано в следующем разделе.

Краткая справка о службе размещенной телефонии поможет понять суть этой функции.

Служба размещенной телефонии - это новая форма службы VoIP, в которой большая часть оборудования находится в месте нахождения поставщика услуг. Они работают с домашними шлюзами (HGW), которые реализуют только базовый NAT (то есть NAT на L3 / L4). Например, Verizon устанавливает терминал оптической сети (ONT), который предоставляет услуги FiOS в домашних условиях; голосовой вызов сигнализируется с использованием процесса SIP, встроенного в ONT. Сигнализация SIP передается по частной IP-сети Verizon новым программным коммутаторам, которые обеспечивают обслуживание и контроль для установления голосовой связи с другими клиентами FiOS Digital Voice или с традиционными клиентами телефонов.

В число основных требований к поставщику услуг размещенной телефонии входят:

  • Удаленный обход NAT: возможность доставки услуг класса 5 на конечные точки, использующие NAT (который может выполнять только NAT уровня 3!) И устройства брандмауэра (выполняя «ALG» удаленно!)
  • Поддержка мультимедиа: возможность отправки мультимедиа между совместно расположенными устройствами, когда нет смысла направлять мультимедиа обратно в IP-сеть
  • Нет добавленного оборудования, что устраняет необходимость добавлять CPE.

Учитывая вышесказанное, какие варианты существуют для реализации такого сервиса?

  • Замените HGW дорогим ALG,
  • Используйте контроллер границы сеанса (SBC) для изменения встроенных заголовков SIP для пакетов. Это включает в себя размещенный в сети продукт операторского уровня, поддерживающий SIP в очень безопасной и отказоустойчивой конфигурации. Это решение называется NAT SBC.

Параметр NAT SBC удовлетворяет требованиям поставщика, перечисленным выше.

NAT SBC

NAT SBC работает следующим образом (рисунок 11)

  1. Access Router транслирует только IP-адрес L3 / L4
  2. IP-адрес в сообщении SIP не переведен
  3. SBC NAT перехватывает и переводит встроенный IP-адрес. В тот момент, когда SBC видит пакеты SIP, предназначенные для 200.200.200.10 , он запускает код nat-sbc.
  4. Медиа не переводится и идет прямо между телефонами [5]

Медиа не переводится и идет прямо между телефонами   [5]

Рисунок 11

Примечания к дизайну

  • IP-адрес 200.200.200.10 (рисунок 12) не назначен ни одному интерфейсу на NAT SBC. Он настроен как адрес «прокси», на который SIP-телефон A и SIP-телефон B отправляют сообщения сигнализации.
  • Домашние устройства не переводят определенные поля только для адресов SIP / SDP (например, Call-Id:, O =, Warning: headers & branch = parameter. Maddr = и receive = параметры были обработаны только в определенных сценариях.). Эти поля обрабатываются NAT SBC, за исключением прокси-авторизации и трансляции авторизации, поскольку они нарушают аутентификацию.
  • Если домашние устройства настроены на выполнение PAT, пользовательские агенты (телефоны и прокси-сервер) должны поддерживать симметричную сигнализацию. [6] и симметричные и ранние СМИ. Вы должны настроить порт переопределения на маршрутизаторе NAT SBC.
  • При отсутствии поддержки симметричной сигнализации и симметричных и ранних носителей промежуточные маршрутизаторы должны быть настроены без PAT, а адрес переопределения должен быть настроен в NAT SBC.

конфигурация

Пример конфигурации для типичного NAT SBC приведен ниже.

ip nat sip-sbc

прокси 200.200.200.10 5060 15.3.33.22 протокол 5060 UDP

call-id-pool call-id-pool

время ожидания сеанса 300

режим разрешения обтекания

переопределить порт

!

ip nat pool sbc1 15.3.33.61 15.3.33.69 маска сети 255.255.0.0

ip nat pool sbc2 15.3.33.91 15.3.33.99 маска сети 255.255.0.0

ip nat pool call-id-pool 1.1.1.1 1.1.255.254 маска сети 255.255.0.0

ip nat pool outside-pool 200.200.200.100 200.200.200.200 netmask 255.255.255.0

ip nat внутри списка источников 1 пул sbc1 перегрузка

ip nat внутри списка источников 2 пул sbc2

ip nat external source list 3 пул внешнего пула add-route

ip nat внутри списка источников 4 pool call-id-pool

!

разрешение доступа к списку 1 10.1.1.0 0.0.0.255

разрешение доступа к списку 1 171.1.1.0 0.0.0.255

разрешение access-list 2 20.1.1.0 0.0.0.255

разрешение access-list 2 172.1.1.0 0.0.0.255

разрешение access-list 3 15.4.0.0 0.0.255.255

разрешение доступа к списку 3 15.5.0.0 0.0.255.255

access-list 4 allow 10.1.0.0 0.0.255.255

access-list 4 allow 20.1.0.0 0.0.255.255

Поток вызовов с SBC NAT

Рисунок 13 и Рисунок 14 иллюстрируют поток вызовов с точки зрения переводов. Следует отметить следующие моменты:

  • После регистрации программный переключатель записывает два телефона как

- SIP-телефон A - 15.3.33.62 2001

- SIP-телефон B - 15.3.33.62 2002

  • В этом потоке вызовов SBC NAT фактически оставляет медиа-IP-адрес нетранслированным.

В этом потоке вызовов SBC NAT фактически оставляет медиа-IP-адрес нетранслированным

Рисунок 13

Рисунок 13

Рисунок 14

Регистрация SIP

В более ранних версиях (SBC NAT) конечным точкам SIP приходилось отправлять пакеты поддержки активности, чтобы сохранить открытую дыру в регистрации SIP (чтобы позволить потоку входить-> в трафик, например, входящие вызовы). Пакеты поддержания активности могут быть любыми пакетами SIP, отправленными конечной точкой или регистратором (программный коммутатор). Последние версии устраняют необходимость в этом, поскольку сам NAT-SBC (в отличие от программных переключателей) вынуждает конечные точки часто перерегистрироваться, чтобы сохранить открытые отверстия.

Примечание . Симптомы просроченной регистрации могут быть неясными из-за случайных ошибок сигнализации.

CUSP имеет понятие логической сети, которая относится к набору локальных интерфейсов, которые обрабатываются аналогично для целей маршрутизации (например, интерфейса, порта, транспорта для прослушивания). При настройке логической сети на CUSP вы можете настроить ее для использования NAT. После настройки SIP ALG автоматически включается. Это полезно при определенных логических сетях.

симптомы

Очевидным симптомом может быть отказ вызова в одном или обоих направлениях. Менее очевидные симптомы могут включать,

  • Односторонний звук
  • Одностороннее аудио при передаче
  • Нет звука
  • Потеря регистрации SIP

Команды показа и отладки

  • deb ip nat [sip | тощий]
  • покажи статистику ip nat
  • покажи переводы ip nat

Вещи, чтобы проверить

  • Убедитесь, что конфигурация включает подкоманду ip nat inside или ip nat outside interface. Эти команды включают NAT на интерфейсах, и внутреннее / внешнее обозначение важно.
  • Для статического NAT убедитесь, что команда ip nat source static сначала перечисляет внутренний локальный адрес, а затем внутренний глобальный IP-адрес.
  • Для динамического NAT убедитесь, что ACL, настроенный на сопоставление пакетов, отправленных внутренним хостом, соответствует пакетам этого хоста, прежде чем произойдет трансляция NAT. Например, если внутренний локальный адрес 10.1.1.1 должен быть переведен в 200.1.1.1, убедитесь, что ACL соответствует адресу источника 10.1.1.1, а не 200.1.1.1.
  • Для динамического NAT без PAT убедитесь, что в пуле достаточно IP-адресов. Симптомы отсутствия достаточного количества адресов включают растущее значение во втором счетчике пропусков в выходных данных команды show ip nat statistics , а также отображение всех адресов в диапазоне, определенном в пуле NAT, в списке динамических преобразований.
  • Для PAT легко забыть добавить опцию перегрузки в команде ip nat inside source list . Без этого NAT работает, а PAT - нет, что часто приводит к тому, что пользовательские пакеты не транслируются и хосты не могут получить доступ в Интернет.
  • Возможно, NAT был настроен правильно, но ACL существует на одном из интерфейсов, отбрасывая пакеты. Обратите внимание, что IOS обрабатывает ACL до NAT для пакетов, входящих в интерфейс, и после преобразования адресов для пакетов, выходящих из интерфейса.
  • Не забудьте настроить «ip nat outside» на интерфейсе, обращенном к глобальной сети (даже если не переводите внешний адрес)!
  • Как только NAT настроен, трансляции show ip nat ничего не показывают. Пинг один раз, а затем проверьте еще раз.
  • Захватите wireshark Следы на внутренних и внешних интерфейсах NAT-SBC

Сценарии

Отладочный вывод для пары сценариев показан ниже. Они в основном говорят сами за себя!

Основной NAT


Строки конфигурации и отладки для базового NAT показаны ниже.

SIP ALG

Выводятся строки отладки из ip nat sip . В этом случае встроенный IP-адрес в исходящем пакете преобразуется.

Обзор:

VoiP и NAT

NAT Feature Matrix

Размещенный NAT обход:

NAT SBC

ALG:

CME