Gatekeeper - это важная часть средних и крупных H.323 VoIP Networks.
Главная функция Gatekeeper - это возможность масштабирования диалплана, что позволяет содержать диалплан в одном месте, а не распылять усилия на локальные устройства.
Основными функциями Gatekeeper являются:
Дополнительными функциями Gatekeeper являются:
При каждом запуске Endpoint пытается зарегистрироваться на Gatekeeper. Если Endpoint хочет позвонить на другую Endpoint, она, набирая номер, фактически запрашивает admission на инициирование звонка. Если Gatekeeper даёт разрешение, он возвращает этой Endpoint destination IP address.
Этот адрес есть либо фактический адрес destination endpoint, либо адрес посредника например proxy или gatekeeper.
Gatekeeper использует сигнализацию RAS (Registration, Admission, and Status).
RAS - это подмножество протокола H.225 и использует в качестве транспорта UDP.
Для инициации соединения между самими H.323 endpoints используется протокол H.225.
Как показано на рисунке, изначально Gateway запрашивает admission, используя сигнализацию H.225 RAS (UDP). Эта сигнализация используется для взаимодействия с Gatekeeper и основными функциями этого канала являются Registration, Admission, и Status (RAS). Gatekeeper даёт "добро" и возвращает инициирующему шлюза IP адрес второго шлюза.
Далее уже между шлюзами устанавливается сигнализация H.225 Call Setup (TCP). H.225 позволяют создать соединение между H.323 endpoints. Для создания соединения должны быть выполнены call setup procedures, которые базируются на ISDN ITU Q.931.
Далее негоциируется H.245. H.245 это control signaling protocol, который используется для сигнализации и управления собственно самими потоками Аудио или Видео. H.245 использует отдельный logical channel 0, который всегда в открытом состоянии.
H.245 используется для таких функций как:
- Logical channel signaling - открывает/закрывает потоки RTP, RTCP
- Capabilities exchange - Негоциация аудио, видео, кодеков.
- Master or responder determination
- Mode request
Таким образом H.245 устанавливает и сопровождает и закрывает сессию звонка.
После того, как звонок между шлюзами установлен номера портов RTP UDP устанавливаются динамически из диапазона 16384–32767.
Gatekeeper взаимодействует через RAS channel используя различные типы RAS messages.
Общий список сообщений ниже.
Gatekeeper Discovery
Gatekeeper Request (GRQ)
Gatekeeper Confirmation (GCF)
Gatekeeper Reject (GRJ)
Terminal and Gateway Registration
Registration Request (RRQ)
Registration Confirmation (RCF)
Registration Reject (RRJ)
Terminal and Gateway Unregistration
Unregistration Request (URQ)
Unregistration Confirmation (UCF)
Unregistration Reject (URJ)
Resource Availability
Resource Availability Indicator (RAI)
Resource Availability Confirmation (RAC)
Bandwidth
Bandwidth Request (BRQ)
Bandwidth Confirmation (BCF)
Bandwidth Reject (BRJ)
Location
Location Request (LRQ)
Location Confirmation (LCF)
Location Reject (LRJ)
Call Admission
Admission Request (ARQ)
Admission Confirmation (ACF)
Admission Reject (ARJ)
Disengage
Disengage Request (DRQ)
Disengage Confirmation (DCF)
Disengage Rejection (DRJ)
Request in Progress
Request in Progress (RIP)
Status
Info Request (IRQ)
Info Request Response (IRR)
Info_Request_Acknowledge (IACK)
Info_Request_Neg_Acknowledge (INAK)
Information Confirm (ICF)
Endpoints пытаются обнаружить Gatekeeper а также Zone, к которой они принадлежат.
Discovery призводится через протокол RAS message protocol, который поддерживает Discovery message.
Discovery message отсылается с использованием multicast или unicast.
Unicast Discovery
- Использует UDP port 1718
- В Endpoint прописывают адрес Gatekeeper, и собственно Endpoint сразу может регистрироваться на
Gatekeeper.
- Gatekeeper отвечает сообщениями GCF либо GRJ.
Multicast Discovery
- UDP Multicast address 224.0.1.41
- Здесь не требуется вручную прописывать адрес Gatekeeper, т.к. его получают по мультикасту.
- Gatekeeper отвечает сообщениями GCF либо GRJ.
- Связь устанавливается с первым Gatekeeper кто ответил на запрос
- Gatekeeper может быть настроен отвечать только запросам с определённых подсетей. Это даст предсказуемую регистрацию и делается через команду zone subnet
После того, как endpoint произвёл процедуру Gatekeeper discovery, проводится попытка регистрации на этом Gatekeeper.
RRQ message - это запрос от terminal или gateway на gatekeeper на регистрацию, register.
На этот запрос возможны два ответа: RCF message - Registration Confirmation, либо RRJ message - Registration Reject.
При регистрации Gateway или Terminal отдаёт Gatekeeper информацию о своем ID или E.164 address, например:
■ H323 ID: gatewayname@domain.com
■ E.164 address: 4085551212
До H.323 v2 Cisco Gateways каждые 30 секунд регистрировались на Gatekeeper, затрачивая при этом массу ресурсов и трафика.
H.323 version 2 определил процедуру lightweight registration, которая значительно упрощает этот процесс. При этом полная регистрация требуется только вначале. Далее Gateway периодически отсылает Keepalive на Gatekeeper, подтверждая свою доступность
Перед тем как поднимается сессия звонка Gateway_A отсылает ARQ на Gatekeeper.
Gatekeeper проверят статус и возвращает ACF message или ARJ message.
Если получено ACF message (добро), непосредственно между шлюзами уже поднимается H.225 call setup.
Таким образом, Admission messages позволяют гейткиперу контролировать пропускную способность канала: например он разрешает или запрещает звонок, не давая каналу переполниться.
Admission Request может быть разрешен или запрещён через сообщения ACF message или ARJ message, при этом причины могут быть различными, и соответственно различные типы ARJ message, например calledPartyNotRegistered, resourceUnavailable, incompleteAddress и т.д.
К каждой зарегистрированной endpoint, gatekeeper периодически отсылает IRQ message. IRQ отсылается в случае если от endpoint ничего не приходило в течение определённого времени. Если Gatekeeper не получает ответное IRR, регистрация для данного endpoint обнуляется.
Вообще, Location messages обычно используются между interzone gatekeepers для получения IP адреса endpoint, находящейся в другой зоне.
H.323 LRQ message отсылаются одним gatekeeper другому gatekeeper для запроса информации об terminating endpoint.
При этом в запросе содержится номер назначения E.164.
Второй Gatekeeper обнаруживает и высылает адрес соответствующей terminating endpoint за которым находится абонент с номером назначения.
Для обеспечения redundancy и load-sharing, мы можем настроить несколько gatekeeper для обслуживания одной и той же зоны или technology prefix. В этом случае LRQ будет отдаваться нескольким гейткиперам последовательно (sequentially) согласно matching-list, либо параллельно (blast).
Рассмотрим пример LRQ Sequential:
Sequential forwarding, в отличие от Blast LRQ Forwarding, позвляет настроить приоритеты в маршрутах.
На рисунке GatewayA производит Admission Request(ARQ) у Gatekeeper_A.
Gatekeeper_A в свою очередь производит Sequential forwarding начиная с Gatekeeper_B.
B, C и D в ответ могут возвратить LCF или LRJ. Если Gatekeeper_B отдаёт LCF, LRQ Forwarding process
терминируется, в случае отказа отправляется запрос на следующий по списку Gatekeeper_С. И так далее.
Blast LRQ Forwarding производится одновременно на все гейткиперы в списке.
Обратите внимание, в кофигурации выбрана опция blast, означающая что к поиску данного префикса будет
применён Blast LRQ Forwarding. Если команду blast не указать, будет применён метод по умолчанию -
Sequential forwarding.
Если все ответят LCF, то приоритет между ними настраивается на уровне cost и priority.
Gatekeeper с наименьшей cost будет выбран раньше.
Gatekeeper с наибольшей priority будет выбран раньше.
Например в следующей конфигурации сначала будет выбран GKB, затем GKC, и последним будет GKC.
GKA(config-gk)#zone remote GKB cisco.com cost 50 priority 50 GKA(config-gk)#zone remote GKC cisco.com cost 51 priority 49 GKA(config-gk)#zone remote GKD Cisco.com cost 52 priority 48
Как видно, маршрутизаторы вначале используют Gatekeeper для Admission, но затем происходит обычная процедура звонка H.323.
Zone - это группа устройств H.323, контролируемая одним логическим Gatekeeper.
Только один активный Gatekeeper может контролировать отдельно взятую зону.
В отдельно взятой зоне могут быть клиенты из различных IP-подсетей. Например в разные зоны могут входить клиенты из одной и той же подсети.
Endpoints всегда проходят процедуру discover, в процессе которой они определяют свой Gatekeeper, а также свою зону.
Как уже упоминалось, Gatekeeper discovery может быть Unicast или Multicast.
Для успешной Gatekeeper discovery, а также Registration сама Endpoint должен быть прописан на Gatekeeper, в противном случае гейткипер ответит Gatekeeper Reject (GRJ).
Zone Prefix - это код зоны, т.е. часть номера, идентифицирующий эту зону. Обычно Area Code совпадает с префиксом зоны(Zone Prefix).
В процессе обработки звонка Cisco IOS gatekeeper определяет куда необходимо маршрутизировать данный звонок: remote zone или local zone.
На данном примере Gatekeeper1 маршрутизирует звонки 408XXXXXXX на Gateway_B, а звонки в area code 801 обрабатываются локально.
Конфигурация Gatekeeper для данного примера будет выглядеть следующим образом:
GK-A(config)#gatekeeper GK-A(config-gk)#zone local Houston cisco.com 172.22.2.3 1719 GK-A(config-gk)#zone local SanJose cisco.com GK-A(config-gk)#zone prefix Houston 801....... GK-A(config-gk)#zone prefix SanJose 408.......
Понятно что H.323 endpoint с соответствующим E.164 address должен быть зарегистрирован на своём Gateway.
Technology Prefixes - это необязательная настройка, поддерживаемая Cisco gateways и gatekeepers.
Technology Prefixes добавляет определённой гибкости в маршрутизацию звонков в сетях H.323 VoIP network.
Technology Prefixes используется для группирования шлюзов по типу(voice или video): на основании этой информации gatekeeper может маршрутизировать звонки на соответствующие этому типу шлюзы.
В конфигурации gatekeeper задаются допустимые Technology Prefixes. Gateway затем настраивается на регистрацию на этот Gatekeeper с его Technology Prefix.
Например шлюзы могут регистрироваться со следующими префиксами:
Более одного шлюза могут быть зарегистрированы с одинаковым префиксом. В этом случае Gatekeeper делает между ними случайный выбор.
Если Caller знает тип девайса куда он звонит, он может включить Technology Prefix в тело destination address.
Например если номер для голосового звонка 2125551111, то можно использовать destination address 1#2125551111.
Когда голосовой шлюз получает такой звонок, то при обработке он отрезает от номера префикс и затем осуществляет соединение уже непосредственно с абонентом на искомый номер 2125551111.
Cisco IOS gatekeepers используют Technology Prefixes в случае, если called number не совпадает ни с одним зарегистрированным E.164 address. При этом E.164 address регаются на гейткипере by a gateway.
Такая ситуация может быть довольно частой, например CUCME и SRST могут зарегистрировать свои внутренние ephone-dns на Gatekeeper с номерами не в формате E.164. В этом случае у Gatekeeper есть два выбора:
Gatekeeper использует default technology prefix для маршрутизации всех звонков у которых не указан technology prefix, либо для Gateways не указавших свой technology prefix.
Zone prefix определяет в какую зону осуществлять маршрутизацию, также как и technology prefix определяет Gateway уже внутри зоны.
Если большинство звонков в нашей среде идут на определённый тип шлюзов, мы можем настроить наш Gatekeeper использовать этот тип как default type. Это избавит абонентов в каждом звонке указывать technology prefix.
Например если в нашей сети преимущественно используются голосовые шлюзы с настроенным technology prefix 1#, мы можем настроить наш Gatekeeper с таким же дефолтным префиксом:
Router(config-gk)#gw-type-prefix 1#* default-technology
Добавить комментарий