Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

...

Для реализации данной схемы общий алгоритм настройки следующий:

  1. Настроить сетевые интерфейсы на ESBC в сторону SSW и в сторону SIP-абонентов.
  2. Настроить внешний сервис.
  3. Создать SIP-транспорт в сторону SSW и SIP-транспорт для SIP-абонентов.
  4. Создать медиаресурсы для обоих направлений, назначить им диапазон портов для передачи голоса.
  5. Создать абонентский интерфейс и SIP-транк в динамическом режиме.
  6. Создать правила, по которым будут маршрутизироваться вызовы от абонентов до SSW.

Использование DNS в качестве внешнего сервиса:

1. Настроить адрес DNS:

Блок кода
vesbc(config)# domain lookup enable
vesbc(config)# domain nameserver 192.168.16.200
vesbc(config)# 

...

  1. IP-адрес на интерфейсе в сторону SSW:
    Блок кода
    vesbc# configure
    vesbc(config)# interface gigabitethernet 1/0/1
    vesbc(config-if-gi)# description "SSW"
    vesbc(config-if-gi)# ip address 192.168.16.113/24
    vesbc(config-if-gi)# ip firewall disable

...

  1. Настроить IP-адрес на внешнем интерфейсе в сторону абонентов:
    Блок кода
    vesbc# configure
    vesbc(config)# interface gigabitethernet 1/0/2
    vesbc(config-if-gi)# description "ABONENTS"
    vesbc(config-if-gi)# ip address 192.168.20.120/24

...

  1. Создать SIP-транспорт в сторону SSW: 
    Блок кода
    vesbc#
    vesbc# configure
    vesbc(config)# esbc
    vesbc(config-esbc)# sip transport TRANSPORT_SSW
    vesbc(config-esbc-sip-transport)# ip address 192.168.16.113
    vesbc(config-esbc-sip-transport)# port 5061

Scroll Pagebreak

...

  1. Создать SIP-транспорт в сторону абонентов:
    Блок кода
    vesbc#
    vesbc# configure
    vesbc(config)# esbc
    vesbc(config-esbc)# sip transport TRANSPORT_ABONENTS
    vesbc(config-esbc-sip-transport)# ip address 192.168.20.120
    

...

  1. Создать медиаресурсы для согласования и передачи голоса на плече SSW --- ESBC:
    Блок кода
    vesbc#
    vesbc# configure
    vesbc(config)# esbc
    vesbc(config-esbc)# media resource MEDIA_SSW
    vesbc(config-esbc-media-resource)# ip address 192.168.16.113
    
    #Указать диапазон портов, который будет выделяться на ESBC для передачи голоса. Данная команда необязательная. Если ее не указывать, будет использоваться диапазон портов 8000–65535.
    vesbc(config-esbc-media-resource)# port-range 1024-65535

...

  1. Создать медиаресурсы для согласования и передачи голоса на плече ESBC --- Абонентский шлюз/SIP-абоненты:
    Блок кода
    vesbc#
    vesbc# configure
    vesbc(config)# esbc
    vesbc(config-esbc)# media resource MEDIA_ABONENTS
    vesbc(config-esbc-media-resource)# ip address 192.168.20.120

...

8. Создать динамический SIP-транк, в качестве адреса указать подсеть, в которой находятся SSW:

...

...

  1. Создать абонентский интерфейс в сторону абонентов:
    Блок кода
    vesbc#
    vesbc# configure
    vesbc(config)# esbc
    vesbc(config-esbc)# user-interface sip ABONENTS
    vesbc(config-esbc-trunk-sip)# sip transport TRANSPORT_ABONENTS
    vesbc(config-esbc-trunk-sip)# media resource 0 MEDIA_ABONENTS
    
    #Если абоненты находятся за NAT, выполнить команду:
    vesbc(config-esbc-user-interface-sip)# nat comedia-mode on

...

  1. Настроить внешний сервис, создать SIP-транк в динамическом режиме и настроить маршрутизацию

DNS

1. Настроить DNS:

Блок кода
vesbc(config)# domain lookup enable
vesbc(config)# domain nameserver 192.168.16.200
vesbc(config)# 

Описание всех доступных настроек DNS приведено в разделе Настройка DNS Справочника команд CLI.

2. Создать динамический SIP-транк, в качестве адреса указать подсеть, в которой находятся SSW:

Блок кода
vesbc#
vesbc# configure
vesbc(config)# esbc
vesbc(config-esbc)# trunk sip SSW_DYNAMIC
vesbc(config-esbc-trunk-sip)# sip transport TRANSPORT_SSW
vesbc(config-esbc-trunk-sip)# remote address 192.168.16.0/24
vesbc(config-esbc-trunk-sip)# remote port 5060
vesbc(config-esbc-trunk-sip)# dynamic-mode dns
vesbc(config-esbc-trunk-sip)# media resource 0 MEDIA_SSW

3. Создать таблицу

...

маршрутизации и добавить туда правила, по которым вызовы, приходящие с абонентов будут маршрутизироваться на SIP-транк с динамическим режимом:

Блок кода
vesbc# 
vesbc# configure 
vesbc(config)# esbc 
vesbc(config-esbc)# route-table TO_SSW
vesbc(config-esbc-route-table)# rule 0
vesbc(config-esbc-route-table-rule)# action direct-to-trunk SSW_DYNAMIC

...

4. Привязать созданную таблицу маршрутизации к абонентскому интерфейсу:

Блок кода
vesbc# 
vesbc# configure 
vesbc(config)# esbc 
vesbc(config-esbc)# user-interface sip ABONENTS 
vesbc(config-esbc-user-interface-sip)# route-table TO_SSW

...

5. Применить конфигурацию и подтвердить изменения:

Блок кода
vesbc# commit
vesbc# confirm

...

SIP-абонент отправляет сообщение REGISTER, в hostname RURI указывает ssw125_2.domain. ESBC отправляет запрос на DNS-сервер (192.168.16.200) для определения адреса назначения, внешний сервис в ответ присылает адрес SIP-сервера (192.168.16.125), на который нужно отправить запрос. ESBC отправляет регистрацию на указанный адрес, подставляя в заголовки To и From ssw125_2.domain, последующие запросы с этого абонента при указании того же домена будут отправляться в транк 192.168.16.125 без предварительного обращения к внешнему сервису.
Image RemovedImage Added

Примечание

Исходящий запрос на динамический транк будет отправлен на тот же порт, что указан в RURI входящего запроса. Если порт явно не указан, то запрос отправится на стандартный порт 5060.

Для определения входящего запроса из транка с динамическим режимом используется адрес/маска подсети из remote address и порт/диапазон портов из remote port.

...

RADIUS

...

1. Настроить RADIUS сервер

...

Пример конфигурации freeradius:

Блок кода
Файл clients.conf:
client ESBC {
	ipaddr = 192.168.16.131113 #адрес интерфейса ESBC, с которого будут отправляться запросы на RADIUS сервер
	secret = password #Ключ для аутентификации клиента
}

Файл users:
ssw125_2.domain Cleartext-Password := "domain_resolve" #обязательный пароль при использовании динамического режима
	Framed-IP-Address = 192.168.16.125 #адрес, который сервер отправит в ответе на Access-Request с User-Name: ssw125_2.domain

...

2. Задать параметры RADIUS сервера на ESBC:

Блок кода
vesbc(config)# radius-server host 192.168.16.250
vesbc(config-radius-server)# key ascii-text password #должен совпадать с secret на сервере
vesbc(config-radius-server)# usage voip

2. Настроить IP-адрес на интерфейсе в сторону SSW:

Блок кода
vesbc# configure
vesbc(config)# interface gigabitethernet 1/0/1
vesbc(config-if-gi-radius-server)# description "SSW"
vesbc(config-if-gi)# ip address 192.168source-address 192.168.16.113/24
vesbc(config-if-gi)# ip firewall disable

3. Настроить IP-адрес на внешнем интерфейсе в сторону абонентов:

Блок кода
vesbc# configure
vesbc(config)# interface gigabitethernet 1/0/2
vesbc(config-if-gi)# description "ABONENTS"
vesbc(config-if-gi)# ip address 192.168.20.120/24

4. Создать SIP-транспорт в сторону SSW: 

Блок кода
vesbc#
vesbc# configure
vesbc(config)# esbc
vesbc(config-esbc)# sip transport TRANSPORT_SSW
vesbc(config-esbc-sip-transport)# ip address 192.168.16.113
vesbc(config-esbc-sip-transport)# port 5061

Scroll Pagebreak

5. Создать SIP-транспорт в сторону абонентов:

Блок кода
vesbc#
vesbc# configure
vesbc(config)# esbc
vesbc(config-esbc)# sip transport TRANSPORT_ABONENTS
vesbc(config-esbc-sip-transport)# ip address 192.168.20.120

6. Создать медиаресурсы для согласования и передачи голоса на плече SSW --- ESBC:

Блок кода
vesbc#
vesbc# configure
vesbc(config)# esbc
vesbc(config-esbc)# media resource MEDIA_SSW
vesbc(config-esbc-media-resource)# ip address 192.168.16.113

#Указать диапазон портов, который будет выделяться на ESBC для передачи голоса. Данная команда необязательная. Если ее не указывать, будет использоваться диапазон портов 8000–65535.
vesbc(config-esbc-media-resource)# port-range 1024-65535

7. Создать медиаресурсы для согласования и передачи голоса на плече ESBC --- Абонентский шлюз/SIP-абоненты:

 #адрес интерфейса, с которого будут отправляться запросы

Описание всех доступных настроек RADIUS сервера приведено в разделе Настройка AAA Справочника команд CLI.

3. Создать RADIUS профиль, добавить в его конфигурацию RADIUS сервер:

Блок кода
Блок кода
vesbc#
vesbc# configure
vesbc(config)# esbc
vesbc(config-esbc)# mediaradius resourceprofile MEDIARADIUS_ABONENTSPROFILE
vesbc(config-esbcradius-media-resourceprofile)# ipradius-server addresshost 192.168.20.120

...

.16.250

Описание всех доступных настроек RADIUS профиля приведено в разделе Настройка ESBC Справочника команд CLI.

4. Создать динамический SIP-транк, в качестве адреса указать подсеть, в которой находятся SSW:

Блок кода
vesbc#
vesbc# configure
vesbc(config)# esbc
vesbc(config-esbc)# trunk sip SSW_DYNAMIC
vesbc(config-esbc-trunk-sip)# sip transport TRANSPORT_SSW
vesbc(config-esbc-trunk-sip)# remote address 192.168.16.0/24
vesbc(config-esbc-trunk-sip)# remote port 5060
vesbc(config-esbc-trunk-sip)# dynamic-mode dns
vesbc(config-esbc-trunk-sip)# media resource 0 MEDIA_SSW

9. Создать абонентский интерфейс в сторону абонентов:

Блок кода
vesbc#
vesbc# configure
vesbc(config)# esbc
vesbc(config-esbc)# user-interface sip ABONENTSradius RADIUS_PROFILE
vesbc(config-esbc-trunk-sip)# sip transport TRANSPORT_ABONENTS
vesbc(config-esbc-trunk-sip)# media resource 0 MEDIA_ABONENTS

#Если абоненты находятся за NAT, выполнить команду:
vesbc(config-esbc-user-interface-sip)# nat comedia-mode on

...

SSW

5. Создать таблицу маршрутизации и добавить туда правила, по которым вызовы, приходящие с абонентов будут маршрутизироваться на SIP-транк с динамическим режимом:

Блок кода
vesbc# 
vesbc# configure 
vesbc(config)# esbc 
vesbc(config-esbc)# route-table TO_SSW
vesbc(config-esbc-route-table)# rule 0
vesbc(config-esbc-route-table-rule)# action direct-to-trunk SSW_DYNAMIC

...

6. Привязать созданную таблицу маршрутизации к абонентскому интерфейсу:

Блок кода
vesbc# 
vesbc# configure 
vesbc(config)# esbc 
vesbc(config-esbc)# user-interface sip ABONENTS 
vesbc(config-esbc-user-interface-sip)# route-table TO_SSW

...

7. Применить конфигурацию и подтвердить изменения:

Блок кода
vesbc# commit
vesbc# confirm

...

SIP-абонент отправляет сообщение REGISTER, в hostname RURI указывает ssw125_2.domain. ESBC для определения адреса назначения отправляет запрос(Access-Request) на DNSRADIUS-сервер (192.168.16.200) для определения адреса назначения, внешний сервис в ответ присылает адрес 250) c аттрибутом User-Name, в котором содержится домен ssw125_2.domain.
RADIUS сервер присылает Access-Accept с адресом SIP-сервера (192.168.16.125) , на который нужно отправить запрос. в аттрибуте Framed-IP-Address.
ESBC отправляет регистрацию на указанный адрес, подставляя в заголовки To и From ssw125_2.domain, последующие запросы с этого абонента при указании того же домена будут отправляться в транк 192.168.16.125 :5060 без предварительного обращения к внешнему сервису.
Image RemovedImage Added

Примечание

Исходящий запрос на динамический транк будет отправлен на тот же порт, что указан в RURI входящего запроса. Если порт явно не указан, то запрос отправится на стандартный порт 5060.

...