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

Ключ

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

...

Для написания условий можно использовать регулярные выражения PCRE.

Возможность перехода между таблицами маршрутизации (каскадирование таблиц маршрутизации)

В конфигурации таблицы маршрутизации реализована команда switch-route-table <route-table-name> для продолжения маршрутизации SIP-запроса через другую таблицу маршрутизации.

Использование каскадного принципа таблиц маршрутизации позволяет гибко настраивать маршрутизацию между направлениями.

Примеры использования каскадных таблиц маршрутизации

Допускается использовать каскадный переход из нескольких таблиц маршрутизации, например:

Маршрутизация на разные направления через общую таблицу маршрутизации

Для всех транков (например, TRUNK_1, TRUNK_2, TRUNK_3) указать одну таблицу маршрутизации (например, MAIN). Все правила и условия для маршрутизации в конкретный транк указаны в отдельной таблице маршрутизации для этого транка (таблицы маршрутизации RT_1, RT_2, RT_3).  При добавлении транков в конфигурации необходимо создать соответствующую таблицу маршрутизации и добавить новое правило в таблицу MAIN.

Image Added


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

route-table MAIN rule 5 action switch-
3
     condition 0 cdpn '300'
   exit
 exit
   trunk sip TRUNK_1
   route-table MAIN
   ...
 exit
   trunk sip TRUNK_2
   route-table MAIN
   ...
 exit
   trunk sip TRUNK_3
   route-table MAIN
  
exit
 ...
 exit
Блок кода
route-table MAIN
   rule 0
     action switch-route-table RT_1
   exit
   rule 1
     action switch-route-table RT_2
   exit
   rule 2
    
Блок кода
languagec#
vesbc# configure 
vesbc(config)# esbc

#Создание таблицы маршрутизации ROUTE_TABLE_1 и добавление правила с действием сменить таблицу маршрутизации на ROUTE_TABLE_2:
vesbc(config-esbc)# route-table ROUTE_TABLE_1
vesbc(config-esbc-route-table)# rule 5
vesbc(config-esbc-route-table-rule)# action switch-route-table ROUTE_TABLE_2
vesbc(config-esbc-route-table-rule)# exit
vesbc(config-esbc-route-table)# exit

#Создание таблицы маршрутизации ROUTE_TABLE_2 и добавление правила с действием сменить таблицу маршрутизации на ROUTE_TABLE_3:
vesbc(config-esbc)#RT_3
   exit
 exit
 route-table RT_1
   rule 0
     action direct-to-trunk TRUNK_1
     condition 0 cdpn '100'
   exit
 exit
 route-table ROUTERT_TABLE_2
vesbc(config-esbc-route-table)#   rule 5
vesbc(config-esbc-route-table-rule)#0
     action switchdirect-routeto-tabletrunk ROUTE_TABLE_3
vesbc(config-esbc-route-table-rule)# exit
vesbc(config-esbc-route-table)# exit

#Создание таблицы маршрутизации ROUTE_TABLE_3 и добавление правила с действием сменить таблицу маршрутизации на ROUTE_TABLE_4:
vesbc(config-esbc)#TRUNK_2
     condition 0 cdpn '200'
   exit
 exit
 route-table ROUTERT_TABLE_3
vesbc(config-esbc-route-table)#   rule 5
vesbc(config-esbc-route-table-rule)#0
     action switchdirect-routeto-tabletrunk ROUTETRUNK_TABLE_4
vesbc(config-esbc-route-table-rule)# exit
vesbc(config-esbc-route-table)# exit

#Создание таблицы маршрутизации ROUTE_TABLE_4 и добавление правила с действием отправить вызов в транк TRUNK_1:
vesbc(config-esbc)# route-table ROUTE_TABLE_4
vesbc(config-esbc-route-table)# rule 5
vesbc(config-esbc-route-table-rule)# action direct-to-trunk TRUNK_1
Примечание

Запрещено указывать в правиле action switch-route-table название той таблицы, в которой указывается данное правило.

Пример:

Блок кода

Маршрутизация на разные направления через общую таблицу маршрутизации

Для всех транков (например, TRUNK_1, TRUNK_2, TRUNK_3) указать одну таблицу маршрутизации (например, MAIN). Все правила и условия для маршрутизации в конкретный транк указаны в отдельной таблице маршрутизации для этого транка (таблицы маршрутизации RT_1, RT_2, RT_3).  При добавлении транков в конфигурации необходимо создать соответствующую таблицу маршрутизации и добавить новое правило в таблицу MAIN.

Image Removed

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

В таком случае маршрутизация любого вызова из любого направления будет осуществляться по всем правилам всех таблиц маршрутизации до первого совпадения CdPN. Если совпадение не будет найдено, то вызов завершится кодом SIP 404 "Not Found".

Смена таблиц маршрутизации

В конфигурации таблицы маршрутизации реализована команда switch-route-table <route-table-name> для продолжения маршрутизации SIP-запроса через другую таблицу маршрутизации.

Использование каскадного принципа таблиц маршрутизации позволяет гибко настраивать маршрутизацию между направлениями.

Примеры использования каскадных таблиц маршрутизации

Допускается использовать каскадный переход из нескольких таблиц маршрутизации, например:

Блок кода
languagec#
vesbc# configure 
vesbc(config)# esbc

#Создание таблицы маршрутизации ROUTE_TABLE_1 и добавление правила с действием сменить таблицу маршрутизации на ROUTE_TABLE_2:
vesbc(config-esbc)# route-table ROUTE_TABLE_1
vesbc(config-esbc-route-table)# rule 5
vesbc(config-esbc-route-table-rule)#
Блок кода
route-table MAIN
   rule 0
     action switch-route-table RT_1
   exit
   rule 1
     action switch-route-table RTROUTE_TABLE_2
   exit
   rule 2
     action switch-route-table RT_3
   exit
 exit
 route-table RT_1
   rule 0
     action direct-to-trunk TRUNK_1
     condition 0 cdpn '100'
   exit
 exit
 route-table RT_2
   rule 0
     action direct-to-trunk TRUNK_2
     condition 0 cdpn '200'
   exit
 exit
 route-table RT_3
   rule 0
     action direct-to-trunk TRUNK_3
     condition 0 cdpn '300'
   exit
 exit
   trunk sip TRUNK_1
   route-table MAIN
   ...
 exit
   trunk sip TRUNK_2
   vesbc(config-esbc-route-table-rule)# exit
vesbc(config-esbc-route-table)# exit

#Создание таблицы маршрутизации ROUTE_TABLE_2 и добавление правила с действием сменить таблицу маршрутизации на ROUTE_TABLE_3:
vesbc(config-esbc)# route-table ROUTE_TABLE_2
vesbc(config-esbc-route-table)# rule 5
vesbc(config-esbc-route-table-rule)# action switch-route-table ROUTE_TABLE_3
vesbc(config-esbc-route-table-rule)# exit
vesbc(config-esbc-route-table)# exit

#Создание таблицы маршрутизации ROUTE_TABLE_3 и добавление правила с действием сменить таблицу маршрутизации на ROUTE_TABLE_4:
vesbc(config-esbc)# route-table ROUTE_TABLE_3
vesbc(config-esbc-route-table)# rule 5
vesbc(config-esbc-route-table-rule)# action switch-route-table ROUTE_TABLE_4
vesbc(config-esbc-route-table-rule)# exit
vesbc(config-esbc-route-table)# exit

#Создание таблицы маршрутизации ROUTE_TABLE_4 и добавление правила с действием отправить вызов в транк TRUNK_1:
vesbc(config-esbc)# route-table ROUTE_TABLE_4
vesbc(config-esbc-route-table)# rule 5
vesbc(config-esbc-route-table-rule)# action direct-to-trunk TRUNK_1
Примечание

Запрещено указывать в правиле action switch-route-table название той таблицы, в которой указывается данное правило.

Пример:

Блок кода
route-table MAIN
  rule 
...
5
 
exit
   
trunk
 
sip TRUNK_3
action switch-route-table MAIN
  
...
exit
exit

...

Маршрутизация на разные направления через последовательный каскад таблиц маршрутизации

...

При получении сообщений REGISTER на абонентский интерфейс USERS_VIA_RADIUS, ESBC будет отправлять абоненту параметры для digest-аутентификации в сообщении 401 Unauthorized, далее эти параметры и digest response, полученный от абонента, будет передаваться на RADIUS-сервер 192.168.113.200 в сообщении Access-Request. При

 При получении от сервера Access-Accept, сообщение сообщение REGISTER от абонента будет направлено на вышестоящий SIP-сервер. При получении :

Image Added

При получении Access-Reject, будет отправлено сообщение 403 Forbidden:

Image Added



. При недоступности RADIUS-сервера 192.168.113.200, после таймаута, сообщение Access-Request будет отправлено на резервный RADIUS-сервер 192.168.113.201.:

Image Added


Настройка локальной аутентификации запросов
Якорь
local auth
local auth

...

Примечание

Если в профиле учётных данных не будет подходящего номера, то ESBC перешлёт 401/407 ответ на первое плечо.

Схема работы:

Image RemovedImage Added

Пример настройки локальной аутентификации абонента:

...

При отсутствии регистраций направление будет считаться недоступным.

Схема работы:

Image RemovedImage Added

Алгоритм настройки транка для транка для работы функции:

  1. Добавить аутентификационные данные в профиль учётных данных.
  2. Привязать профиль учётных данных к AAA-профилю.
  3. Привязать AAA-профиль к транку.
  4. Включить клиентский режим работы регистрации транка.

...

Блок кода
languagec#
vesbc(config-esbc)# 
vesbc(config-esbc)# media resource MEDIA_TRUNK_1
vesbc(config-esbc-media-resource)# ip address 192.168.113.207
vesbc(config-esbc-media-resource)# exit
vesbc(config-esbc)# sip transport TRANSPORT_TRUNK_1
vesbc(config-esbc-sip-transport)# ip address 192.168.113.207
vesbc(config-esbc-sip-transport)# port 5090
vesbc(config-esbc-sip-transport)# exit
vesbc(config-esbc)# route-table TO_PPTP_USER
vesbc(config-esbc-route-table)# rule 1
vesbc(config-esbc-route-table-rule)# action direct-to-trunk PPTP_USER
vesbc(config-esbc-route-table-rule)# exit
vesbc(config-esbc-route-table)# exit
vesbc(config-esbc)# trunk sip TRUNK_1
vesbc(config-esbc-trunk-sip)# sip transport TRANSPORT_TRUNK_1
vesbc(config-esbc-trunk-sip)# route-table TO_PPTP_USER
vesbc(config-esbc-trunk-sip)# media resource 1 MEDIA_TRUNK_1
vesbc(config-esbc-trunk-sip)# remote address 192.168.113.200
vesbc(config-esbc-trunk-sip)# remote port 5091
vesbc(config-esbc-trunk-sip)# exit
vesbc(config-esbc)# exit
vesbc(config)# 

Пример настройки PPTP-клиента для подключения SIP-транков.

Задача 

Организовать подключение в режиме PPTP-клиента к вышестоящему серверу и использовать это подключения в качестве SIP-транка.

IP-адрес сервера PPTP - 10.30.101.150

Учетная запись для подключения клиента  – логин: pptp_user, пароль: simplepass.

Решение

Выполнить настройку сетевых интерфейсов:

Настроить маршрутизацию вызовов из транка PPTP_USER в транк TRUNK_1:

Блок кода
vesbc(config)# esbc
Блок кода
vesbc# configure 
vesbc(config-esbc)# interface gigabitethernet 1/0/route-table TO_TRUNK_1
vesbc(config-esbc-ifroute-gitable)# descriptionrule LAN1
vesbc(config-esbc-route-table-rule)# action direct-to-trunk TRUNK_1
vesbc(config-esbc-route-table-rule)# exit
vesbc(config-esbc-route-table)# exit
vesbc(config-esbc)# trunk sip PPTP_USER
vesbc(config-esbc-trunk-sip)# route-table TO_TRUNK_1
vesbc(config-esbc-trunk-sip)# exit
vesbc(config-esbc)# exit

Настройка маршрутизации для транка PPTP_USER2 выполняется аналогино.


Пример настройки PPTP-клиента для подключения SIP-транков.

Задача 

Организовать подключение в режиме PPTP-клиента к вышестоящему серверу и использовать это подключения в качестве SIP-транка.

IP-адрес сервера PPTP - 10.30.101.150

Учетная запись для подключения клиента  – логин: pptp_user, пароль: simplepass.

Решение

Выполнить настройку сетевых интерфейсов:

Блок кода
vesbc# configure 
vesbc(config)# interface gigabitethernet 1/0/1
vesbc(config-if-gi)# description LAN
vesbc(config-if-gi)# ip address 192.168.113.208/20
vesbc(config-if-gi)# exit
vesbc(config)# interface gigabitethernet 1/0/2
vesbc(config-if-gi)# description WAN
vesbc(config-if-gi)# ip address 10.30.101.151/24
vesbc(config-if-gi)# exit
vesbc(config)#

Выполнить настройку firewal для разрешения прохождения протокола PPTP на интерфейс gigabitethernet 1/0/2Создать зону безопасности для PPTP-тунеля:

Блок кода
vesbc(config)# security zone WANPPTP_TENNEL
vesbc(config-security-zone)# exit
vesbc(config)# security zone-pair WAN self
vesbc(config-security-zone-pair)# rule 10

Создать и настроить PPTP-тунель:

Блок кода
languagec#
vesbc(config)# 
vesbc(config-security-zone-pair-rule)# tunnel actionpptp permit1
vesbc(config-pptp)# security-zone-pair-rule)# match protocol gre PPTP_TENNEL
#Указать учетные данные пользователя pptp_user
vesbc(config-security-zone-pair-rulepptp)# enable
vesbc(config-security-zone-pair-rule)# exit
vesbc(config-security-zone-pair)# rule 20
vesbc(config-security-zone-pair-rule)# action permitusername pptp_user password ascii-text simplepass
#Указать IP-адрес PPTP-сервера
vesbc(config-security-zone-pair-rulepptp)# matchremote protocol tcpaddress 10.30.101.150
vesbc(config-security-zone-pair-rulepptp)# matchignore destination-port port-range 1723default-route
vesbc(config-security-zone-pair-rulepptp)# enable
vesbc(config-security-zone-pair-rulepptp)# exit
vesbc(config-security-zone-pair)# exit
vesbc(config)#

Поместить интерфейс gigabitethernet 1/0/2 в зону безопасности WAN:

)# 
Примечание

Для использования подключенных PPTP-клиентов в качестве SIP-транков следует указывать IP-адрес, который будет выдвваться сервером PPTP каждому клиенту, в явном виде (команда remote address в конфигурации ppp-user ). Иначе IP-адреса, выдаваемые PPTP-клиентам будут выдаваться в случайном порядке из диапазона указанного в настроках PPTP-сервера. В таком случае невозможно будет настроить SIP-транк до конкретного клиента, т.к. для работы в режиме транка требуется указание адреса встречной стороны.

Для использования подключенных PPTP-клиентов в качестве SIP-абонентов, указывать IP-адрес в явном виде не требуется.

Выполнить настройку транка ESBC для работы через PPTP-тунель:

Блок кода
languagec#
vesbc# configure 
Блок кода
vesbc(config)#   esbc
vesbc(config-esbc)# interface gigabitethernet 1/0/2 media resource MEDIA_PPTP
#Указать тунель pptp 1
vesbc(config-ifesbc-media-giresource)# security-zone WAN ip address interface pptp 1
vesbc(config-ifesbc-media-giresource)# exit 
vesbc(config)#

Создать зону безопасности, к которой будут относиться сессии пользователей:

Блок кода
vesbc(config)# 
vesbc(config)# security zone VPN_USERS-esbc)# sip transport PPTP
#Указать тунель pptp 1
vesbc(config-esbc-sip-transport)# ip address interface pptp 1
vesbc(config-esbc-sip-transport)# port 5080
vesbc(config-securityesbc-sip-zonetransport)# exit
vesbc(config)#

Выполнить настройку PPTP-сервера:

Блок кода
languagec#
vesbc(config-esbc)# remote-accesstrunk pptpsip PPTP_SERVER
vesbc(config-esbc-pptptrunk-serversip)# authenticationsip mode local
#IP-адрес PPTP-сервераtransport PPTP
vesbc(config-pptpesbc-trunk-serversip)# local-address ip-address 20.20.20.1 
#Диапазон IP-адресов которые будут выдаваться PPTP-клиентамmedia resource 0 MEDIA_PPTP
#Указать Remote IP PPTP-тунеля  
vesbc(config-pptpesbc-trunk-serversip)# remote-address address-range 20.20.20.5-20.20.20.6 
#IP-адрес ESBC для организации подключения по протоколу PPTP1
vesbc(config-esbc-trunk-sip)# remote port 5070
vesbc(config-esbc-pptptrunk-serversip)# outside-address ip-address 10.30.101.150exit
vesbc(config-pptp-serveresbc)# security-zone VPN_USERS
#Создание и настройка учетной записи клиента pptp_user
vesbc(config-pptp-server)# username pptp_user 
vesbc(config-ppp-user)# password ascii-text simplepass
# Указать какой именно IP-адрес из диапазона будет выдан клиенту pptp_user 
vesbc(config-ppp-user)# remote address 20.20.20.5 
vesbc(config-ppp-user)# enable
vesbc(config-ppp-user)# exit
#Создание и настройка учетной записи клиента pptp_user2
vesbc(config-pptp-server)# username pptp_user2 
vesbc(config-ppp-user)# password ascii-text simplepass2
# Указать какой именно IP-адрес из диапазона будет выдан клиенту pptp_user2
vesbc(config-ppp-user)# remote address 20.20.20.6
vesbc(config-ppp-user)# enable
vesbc(config-ppp-user)# exit
vesbc(config-pptp-server)# enable
vesbc(config-pptp-server)# exit
vesbc(config)#
Примечание

Для использования подключенных PPTP-клиентов в качестве SIP-транков следует указывать IP-адрес, который будет выдвваться сервером PPTP каждому клиенту, в явном виде (команда remote address в конфигурации ppp-user ). Иначе IP-адреса, выдаваемые PPTP-клиентам будут выдаваться в случайном порядке из диапазона указанного в настроках PPTP-сервера. В таком случае невозможно будет настроить SIP-транк до конкретного клиента, т.к. для работы в режиме транка требуется указание адреса встречной стороны.

Для использования подключенных PPTP-клиентов в качестве SIP-абонентов, указывать IP-адрес в явном виде не требуется.

Выполнить настройку транков ESBC для работы с клиентами 1 и 2:

Примечание
IP-адреса (Local и Remote) PPTP-тунеля можно узнать командой show tunnels status 
Блок кода
vesbc# show tunnels status 
Tunnel             Admin        Link    MTU      Local IP           Remote IP          Last change     
                   State        State                                                  (d,h:m:s)       
----------------   ----------   -----   ------   ----------------   ----------------   -------------   
pptp 1             Up           Up      1500     20.20.20.5         20.20.20.1         00,00:13:35   
Блок кода
languagec#
esbc(config)# esbc 
vesbc(config-esbc)# media resource MEDIA_PPTP
#Указать IP-адрес сервера PPTP
vesbc(config-esbc-media-resource)# ip address 20.20.20.1
vesbc(config-esbc-media-resource)# exit
vesbc(config-esbc)# sip transport PPTP_1
#Указать IP-адрес сервера PPTP
vesbc(config-esbc-sip-transport)# ip address 20.20.20.1
vesbc(config-esbc-sip-transport)# port 5070
vesbc(config-esbc-sip-transport)# exit
vesbc(config-esbc)# sip transport PPTP_2
#Указать IP-адрес сервера PPTP
vesbc(config-esbc-sip-transport)# ip address 20.20.20.1
vesbc(config-esbc-sip-transport)# port 5071
vesbc(config-esbc-sip-transport)# exit
vesbc(config-esbc)# trunk sip PPTP_USER
vesbc(config-esbc-trunk-sip)# sip transport PPTP_1
vesbc(config-esbc-trunk-sip)# media resource 1 MEDIA_PPTP
#Указать IP-адрес PPTP-клиента pptp_user
vesbc(config-esbc-trunk-sip)# remote address 20.20.20.5
vesbc(config-esbc-trunk-sip)# remote port 5080
vesbc(config-esbc-trunk-sip)# exit
vesbc(config-esbc)# trunk sip PPTP_USER2
vesbc(config-esbc-trunk-sip)# sip transport PPTP_2
vesbc(config-esbc-trunk-sip)# media resource 1 MEDIA_PPTP
#Указать IP-адрес PPTP-клиента pptp_user2
vesbc(config-esbc-trunk-sip)# remote address 20.20.20.6
vesbc(config-esbc-trunk-sip)# remote port 5081
vesbc(config-esbc-trunk-sip)# exit

Выполнить настройку ESBC для транка TRUNK_1:

Блок кода
languagec#
vesbc(config-esbc)# esbc 
vesbc(config-esbc)# media resource MEDIA_TRUNK_1
vesbc(config-esbc-media-resource)# ip address 192.168.113.207208
vesbc(config-esbc-media-resource)# exit
vesbc(config-esbc)# sip transport TRANSPORT_TRUNK_1
vesbc(config-esbc-sip-transport)# ip address 192.168.113.207208
vesbc(config-esbc-sip-transport)# port 50905091
vesbc(config-esbc-sip-transport)# exit
vesbc(config-esbc)# route-table TO_PPTP_USER
vesbc(config-esbc-route-table)# rule 1
vesbc(config-esbc-route-table-rule)# action direct-to-trunk PPTP_USER
vesbc(config-esbc-route-table-rule)# exit
vesbc(config-esbc-route-table)# exit
vesbc(config-esbc)# trunk sip TRUNK_1
vesbc(config-esbc-trunk-sip)# sip transport TRANSPORT_TRUNK_1
vesbc(config-esbc-trunk-sip)# route-table TO_PPTP_USER
vesbc(config-esbc-trunk-sip)# media resource 1 MEDIA_TRUNK_1
vesbc(config-esbc-trunk-sip)# remote address 192.168.113.200
vesbc(config-esbc-trunk-sip)# remote port 50915092
vesbc(config-esbc-trunk-sip)# exit
vesbc(config-esbc)# exit
vesbc(config)# 

Настроить маршрутизацию вызовов из транка PPTP в транк TRUNK_1:

Блок кода
vesbc(config)# esbc 
vesbc(config-esbc)# route-table TO_TRUNK_1
vesbc(config-esbc-route-table)# rule 1
vesbc(config-esbc-route-table-rule)# action direct-to-trunk TRUNK_1
vesbc(config-esbc-route-table-rule)# exit
vesbc(config-esbc-route-table)# exit
vesbc(config-esbc)# trunk sip PPTP
vesbc(config-esbc-trunk-sip)# route-table TO_TRUNK_1
vesbc(config-esbc-trunk-sip)# exit
vesbc(config-esbc)# exit















Примеры настройки ESBC 
Якорь
ESBC_set_examples
ESBC_set_examples
 

...