По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Вопрос о балансировке нагрузки на WAN-линках встает довольно часто, и, к сожалению, в отличие от некоторых других вещей, которые можно настроить на оборудовании MikroTik быстро и безболезненно - в случае настройки Load Balancing придется немного постараться. Тема относительно сложная, наличие нескольких WAN-линков и задача по настройке балансировки нагрузки включает в себя настройку нескольких шлюзов и маршрутов по умолчанию, множество правил трансляции NAT и так далее. Настройка маршрутизатора Итак, в наличие у нас имеется один маршрутизатор MikroTik, который подключен к двум провайдерам - Тарс Телеком и Милайн на портах ether1 и ether2 соответственно, и локальной сетью на порту ether3. Трафик из локальной сети будет NATирован из обоих WAN портов и будет сбалансирован по нагрузке. Топология ниже: Настраиваем локальные IP-адреса: /ip address add address=1.1.1.199/24 interface=ether1 comment="Tars" add address=2.2.2.199/24 interface=ether2 comment="Meeline" add address=192.168.1.1/24 interface=ether3 comment="LAN Gateway" Настраиваем шлюзы по умолчанию: /ip route add dst-address=0.0.0.0/0 check-gateway=ping gateway=1.1.1.1,2.2.2.1 Настраиваем NAT на WAN портах для исходящего направления: /ip firewall nat add action=masquerade chain=srcnat comment="Tars" out-interface=ether1 add action=masquerade chain=srcnat comment="Meeline" out-interface=ether2 Если на данном этапе перестать настраивать роутер, то это будет являть собой пример настройки отказоустойчивости. Если один из линков “отвалится”, то вместо него будет использоваться второй. Однако, никакой балансировки нагрузки здесь нет и в помине, и, с экономической точки зрения, это является плохой идеей - вряд ли найдется компания, которая захочет платить абонентскую плату за второй канал и использовать его только в случае аварии. Исходящая и входящая Mangle маркировка Одной из типичных проблем при использовании более одного WAN-соединения является то, что пакеты принятые на одном WAN интерфейсе, могут тут же быть отправлены через другой WAN-интерфейс, что может, к примеру, сломать VPN-based сеть. Нам нужно чтобы пакеты “принадлежащие” одному и тому же соединению принимались и отправлялись через один и тот же WAN порт. В случае аварии у одного из провайдеров, все подключения на порту “умрут” и затем будут переподключены на другом WAN порту. Для этого необходимо промаркировать соединения: /ip firewall mangle add action=mark-connection chain=input comment="Tars Input" in-interface=ether1 new-connection-mark="Tars Input" add action=mark-connection chain=input comment="Meeline Input" in-interface=ether2 new-connection-mark="Meeline Input" Это поможет маршрутизатору отслеживать порт для каждого входящего подключения. Теперь мы будем использовать отметку подключения для входящих пакетов для вызова отметки маршрутизации. Это отметка маршрутизации будет использована позднее на маршруте, который будет сообщать подключению через какой WAN-порт необходимо слать пакеты наружу. add action=mark-routing chain=output comment="Tars Output" connection-mark="Tars Input" new-routing-mark="Out Tars" add action=mark-routing chain=output comment="Meeline Output" connection-mark="Meeline Input" new-routing-mark="Meeline Telecom" Помеченные подключения затем получают метку маршрута, так что роутер сможет маршрутизировать пакеты так, как нам необходимо. В следующем шаге мы настроим роутер таким образом, чтобы помеченные пакеты отправлялись наружу из корректного WAN-подключения. Маркировка LAN маршрута Понадобится также настроить несколько Mangle правил - они необходимы, чтобы сообщить роутеру о необходимости балансировки пакетов, которые отправляются из локальной сети. Сам механизм балансировки в этой статье не описывается, можно только сказать что происходить много операций хеширования - если же интересно копнуть глубже, то вы можете обратиться к официальной документации MikroTik. В соответствии с этими правилами маршрутизатор будет балансировать трафик приходящий на порт ether3 (LAN-порт), который направлен на любой нелокальный адрес в Интернете. Мы захватываем трафик в цепочке предварительной маршрутизации для перенаправления его на необходимый нам WAN-порт в соответствии с меткой маршрутизации. Следующие команды балансируют трафик на LAN-интерфейсе через две группы: add action=mark-routing chain=prerouting comment="LAN load balancing 2-0" dst-address-type=!local in-interface=ether3 new-routing-mark= "Out Tars" passthrough=yes per-connection-classifier= both-addresses-and-ports:2/0 add action=mark-routing chain=prerouting comment="LAN load balancing 2-1" dst-address-type=!local in-interface=ether3 new-routing-mark= "Out Meeline" passthrough=yes per-connection-classifier= both-addresses-and-ports:2/1 Настройка меток маршрутизации выше была выполнена точно такие же как и в предыдущем шаге и соответствуют тем маршрутам, которые будут созданы в следующем шаге. Особые маршруты по умолчанию. В данный момент у нас должны быть помечены соединения поступающие на WAN-порты и эти метки были использованы для создания меток маршрутизации. Балансировка нагрузки в LAN, описанная в предыдущем шаге, также создает метки маршрутизации в соответствии со следующим шагом, в котором будут созданы маршруты по умолчанию, которые будут захватывать трафик с данными метками маршрутизации. /ip route add distance=1 gateway=1.1.1.1 routing-mark="Out Tars" add distance=1 gateway=2.2.2.1 routing-mark="Out Meeline" Данные маршруты используются только при наличии необходимой метки маршрутизации. Непомеченные пакеты используют обычный маршрут по умолчанию. Маршруты, относящиеся к Тарс Телеком получают метку подключения, которая вызывает метку маршрутизации. Эта метка маршрутизации совпадает с меткой в маршруте выше и обратный пакет выходит из того же интерфейса, на котором был получен изначальный пакет. Заключение Итого, какие шаги по настройке роутера были выполнены: Маркировка новых подключений в WAN Соединения с этой маркировкой получают метку маршрутизации Исходящий из локальной сети трафик балансируется с теми же метками маршрутизации Метки маршрутизации соответствуют маршрутам по умолчанию и отправляются из соответствующего интерфейса Если количество WAN-линков более 2 - необходимо проделать такие же действия для остальных подключений. Итого, теперь у вас настроена балансировка трафика для двух WAN-соединений.
img
Web real-time communication (WebRTC) стандарт, который появился совсем недавно и нацелен на осуществление общения в реальном времени с помощью веб-браузера с использованием одно ранговой сети. Проект WebRTC является открытым и его целью является позволить браузерам нативно поддерживать пиринговую передачу данных в реальном времени. В настоящее время много веб-сервисов используют RTC (связь в режиме реального времени), но при этом требуется установка приложений или специальных плагинов. К примеру – Skype, Facebook (так же работает через Skype) и Google Hangouts (использует плагин Google Talk). Установка и обновление плагинов может быть достаточно трудоёмким и нудным процессом, после которого могут появляться новые ошибки. С этой точки зрения технология WebRTC действительно привносит множество новшеств, таких как: Нет необходимости в лицензировании Интеграция являет собой процесс с использованием стандартных Web API Отсутствие проприетарных плагинов Нет необходимости в скачивании и установке чего-либо, достаточно просто зайти на веб-страницу. Целями данной технологии являются, главным образом – минимум трудозатрат при связи, поддержка большинства браузеров, поддержка популярных в данный момент сервисов для голосовой или видеосвязи – Skype, WhatsApp и т.д. Главное – уменьшение капитальных затрат и повышение эффективности связи при использовании данной разработки. Основные моменты До первой коммуникации браузеры «не знают» о существовании друг друга JavaScript управляет процессом установки соединения через сервер Потоки медиа-данных используют кратчайшие пути с целью уменьшения задержки. На схеме ниже изображен процесс соединения абонентов: Для веб-приложения WebRTC необходима следующая информация: Получение доступа к потоковой передачи голоса иили видео данных Получение сетевой информации – сетевой адрес, порт и обмен данной информацией с другими пирами Синхронизация сигнальной информации для открытия и закрытия сессий, выявления ошибок Обмен информацией о совместимости таких параметров как: тип браузера, разрешение и тип кодека Соединение входящего и исходящего потока медиа-данных Что касается сигнализации при использовании данной технологии, первоначальной идеей было использовать SDP (Session Description Protocol), однако данный подход выявил несколько неразрешимых проблем. IETF принял решение стандартизировать протокол JSEP (Javascript Session Establishment Protocol), что дословно переводится как протокол открытия сессии с помощью Javascript. JSEP предоставляет интерфейс для приложения, позволяющий оперировать локальными и удаленными описаниями сессий. Подход с использованием данного протокола делегирует ответственность по управлению состоянием сигнализации исключительно приложению. Что же с точки зрения безопасности? Есть несколько путей, которыми может быть скомпрометировано приложение или плагин RTC: Незашифрованные медиа-данные могут быть перехвачены между абонентами или между абонентом и сервером Приложение может записывать звонки и распространять их без ведома пользователя Вирусы могут установлены вместе с приложением или плагином при установке из неблагонадежного источника В технологии WebRTC было добавлено несколько функций, которые позволяют избежать вышеописанного: Реализации WebRTC используют безопасные протоколы, такие как DTLS и SRTP Шифрование обязательно для всех компонентов WebRTC, включая сигнальные механизмы. WebRTC не является плагином или отдельной программой – всего компоненты запускаются в браузере, причем не являясь отдельным процессом. Компоненты WebRTC обновляются при обновлении браузера. Конечно, вышеописанное справедливо только при использовании поддерживаемых браузеров и соблюдении обычных правил безопасности в интернете. Преграды для быстрого развития Необходимость наличия сервера для осуществления четырех задач: Поиск пользователей Сигнализация Механизмы прохождения сигнальной и медиа информации через NAT Механизмы обеспечения прохождения информации через межсетевой экран Отсутствие нативных приложений и SDK – WebRTC технология для связи абонентов через браузер, однако нет SDK, позволяющего разработать нативное приложение для IOS и Android Невозможность конференций – благодаря своей пиринговой натуре (peer-to-peer), WebRTC является чрезвычайно легко масштабируемой технологией, но при этом отсутствует необходимый инструментарий для организации аудио и видеоконференций. Выводы Стандартизация различных API для WebRTC может снизить цены на связь и позволит использовать WebRTC во многих индустриях – телекоммуникационной, игровой, новостной и так далее. Кроме того, можно с уверенностью сказать, что WebRTC окажет сильное влияние на Интернет в общем – разработки веб-приложений с открытым кодом, на рост совместимости между браузерами и т.д
img
При настройке телефонной маршрутизации очень часто возникает необходимость изменения (корректировки) телефонных номеров, как набираемого (Б-номер), так и инициатора вызова (А-номер, АОН). Например, абоненты вашей станции набирают междугородние/федеральные номера через префикс "8", а вышестоящему оператору связи необходимо передавать номер без префикса, в десятизначном формате. Или вызовы на вашу станцию приходят с кодом зоны, а внутри станции используются номера в 6 или 7 знаков, и лишние символы необходимо удалить. Для корректировки номеров в SoftX3000 существует множество инструментов, применяемые в зависимости от конкретных случаев. Рассмотрим некоторые из них. Таблица корректировки символов DNC Для любых операций с изменением номера используются правила таблицы DNC. Эти правила используются для непосредственной корректировки символов, а все прочие команды определяют, в отношении какого поля (А-номер или Б-номер), на каком направлении (входящее/исходящее) и на какой транк-группе будет применено это правило. Для добавления правила в эту таблицу используется команда ADD DNC. Назначение атрибутов и применение этой команды: Number change index порядковый номер правила. Используется для идентификации правила Number change type тип преобразования номера, принимает значения: NONE номер не изменяется. Используется, если нужно изменить только тип номера MOD изменение цифр номера DEL удаление цифр из номера, указываем позицию, начиная с которой удаляются цифры (Change location) и количество цифр (Change length) INS добавление цифр в номер, указываем позицию, куда вставляем цифры (Change location) и сами цифры (New number) RPL замена цифр в номере, указываем позицию, с которой начинаются цифры для замены (Change location) и сами цифры (New number) Change location позиция цифр, которые подлежат корректировке. Nature of address indicator тип номера, принимает значения: NONE тип номера не изменяется IDN международный номер NDN национальный номер UDN местный номер UNN неизвестный номер SDN специальный номер New number добавляемые (изменяемые) цифры. Для наглядности приведем реальные примеры таких правил: В таблице выше: Правило №2 изменяет первый символ в номере (Change location 0) на цифру 8 (New number). Правило №4 удаляет первые (Change location 0) два символа (Change length - 2) в номере и преобразует тип номера в международный. Правило №9 заменяет первые (Change location 0) шесть символов (Change length - 6) на номер 29xxxx. В системе можно создать 65535 правил, правило под №0 системное, изменению не подлежит. Изменение А и Б номеров на исходящем направлении Для корректировки номеров вызовах в исходящих направлениях используется две таблицы: TGLD здесь компонуются правила для А и Б номера. TGLDIDX указывает транк, в отношении которого применяется правило TGLD и условия, при которых оно применяется. При добавлении записи командой ADD TGLD, необходимо задать следующие обязательные параметры: Bearer index номер правила по порядку. Этот номер будет использоваться для идентификации в таблице TGLDIDX. Trunk seizure point минимальная длина набираемого номера. Caller sending change index правило из таблицы DNC, которое будет применено к А-номеру. Callee sending change index правило из таблицы DNC, применяемое к Б-номеру. Примеры записей TGLD: Здесь запись TGLD=1 изменяет А-номер по правилу DNC=3 и Б-номер по правилу DNC=12. Далее, необходимо привязать созданное правила TGLD к транкам. Для этого используем команду ADD TGLDIDX: Указываем следующие параметры: Trunk group number номер транка, к которому применяется данное правило. Call source code callsource источника вызова, по которому срабатывает правило. Если код отличается, правило не применится. Чтобы применить правило ко всем callsrc, необходимо указать 65534. Local DN set код Local DN set, к которому принадлежат номера/транки, совершающие вызов. Call prefix префикс, при наборе которого срабатывает правило. Bearer index номер правила из таблицы TGLD, которое было создано предыдущей командой. Пример: Рассмотрим правила, применяемые к транку №7 (столбец Trunk group number): Для вызовов с callsource=5 при наборе "8" будет применено правило TGLD=2. Для вызовов с любых прочих callsource при наборе 8 будет применено правило TGLD=17. Для вызовов с любых callsource при наборе 810 будет применено правило TGLD=1. Изменение А и Б номеров на входящем направлении Для изменения атрибутов вызова во входящем направлении применительно ко всем входящим вызовам с определенным callsrc (это может быть группа транков или группа абонентов, объединённых этим параметром), используется таблица PFXPRO. Рассмотрим назначение параметров команды ADD PFXPRO сразу на примере: Параметры имеют следующее назначение: Call source code = 0 правило будет применяться к входящим вызовам с callsrc=0 и только к ним. Call prefix = 871229 правило применяется, если Б-номер начинается с этого префикса (871229). Local DN set = 0 набор номера должен производится с транка или абонента, привязанного к Local DN set = 0. Следует отметить, что вышеуказанный префикс (871229) должен присутствовать в таблице CNACLD с любым атрибутом в указанном Local DN set. Called number change flag = true означает, что Б-номер подлежит изменению. Called number change index = 1 Б-номер будет изменен по правилу DNC=1, которое, для наглядности, приведено ниже: Согласно данному правилу, из номера Б будут удалены первые 4 символа. Reanalysis = true после всех изменений вызов снова будет обработан как вновь поступивший и смаршрутизирован согласно новым параметрам А и Б номеров. Таким образом, вызов, поступивший с атрибутом callsrc=0, в котором Б-номер соответствует шаблону 871229хххх, вновь поступит на обработку, но уже с Б-номером 29хххх, то есть будет вызван 6-значный номер внутреннего абонента станции. Таблица PFXPRO так же позволяет корректировать и А-номер (поля Caller number change flag и Caller number change index), назначить новое значение источника вызова (New call source code) и изменять некоторые другие поля. В нашей станции данная таблица используется в нескольких целях: Приведение Б-номеров по входящему направлению к виду, который мы можем маршрутизировать, то есть: от операторов связи приходит вызов на номер 871229xxxx, а номера абонентов нашей станции 29xxxx, соответственно, нам нужно отрезать первые 4 символа, чтобы распознать нашего абонента. Номера некоторых экстренных служб имеют общий вид (6-значный городской номер), однако абонент набирает короткий номер службы (01, 02, 03). Нам нужно распознать такой набор и подменить номер на реальный. Кроме того, в зависимости от того, в какой местности расположен абонент, номера одной и той же службы могут быть разными. Для того, чтобы учесть этот аспект, мы и используем атрибут callsrc (назначаем каждому району свой callsrc и в соответствии с ним осуществляем подмену набранного номера). Изменение атрибутов вызова на входящем направлении на определенном транке Для корректировки атрибутов вызова на входящем транке используется таблица CLRDSN. Запись CLRDSN привязывается к определенному транку командой ADD TGDSG. В самой команде CLRDSN можно создать несколько правил корректировки, которые будут срабатывать в зависимости от А-номера: Для добавления правила даем команду ADD CLRDSN: Здесь заполняем следующие поля: Discrimination group number номер правила, по этому номеру выполняется привязка к транку в команде ADD TGDSG (в предыдущем примере, например, мы рассматривали параметры правила №5). Caller number номер вызывающего, то есть А-номер. Можем указать конкретный номер или начальный префикс (например, если указать 995, правило будет действовать на все вызовы, которые совершаются с номеров, начинающихся на 995). Есть возможность использовать так называемый символ "Wildcard", то есть применить к любым возможным номерам, для этого вводим символ "E". Префикс в данном поле должен быть таким же, как он приходит из транка. Например, если установить префикс 906, а из транка номер буден приходить 8906 или 7906 правило не сработает. Address nature тип А-номера. Позволяет ограничить применение правила только к А-номерам определенного типа, то есть, только для Unknown неизвестный International международный National междугородный Subscriber местный All все типы номеров Function code тип действия с вызовом. Выбираем ATT(Modify caller attribute), то есть изменение атрибутов А-номера. Call source code если установить значение, код callsource будет изменен. Если оставит пустым, будет установлен callsource = 0. (Однажды потратил полдня, пока не обнаружил эту особенность). Number change index правило DNC, которое будет применено к А-номеру. Если дать команду с тем же номером Discrimination group number, но другими параметрами, правило будет добавлено в ту же группу. Таким образом, мы добавим правила для разных номеров (или разных типов номеров) в одну группу и сможем привязать ее к транку. Как было сказано ранее, привязку правила CLRDSN к транку выполняется командой ADD TGDSG. Мы используем данную функцию для нескольких сценариев. Сценарий 1 Подмена номера от подключенной УПАТС. Например, имеем некоторую УПАТС, которая подключена к нашей станции. Мы выдали им номер из нашей емкости, которую они, в том числе, должны использовать в качестве А-номера (29хххх). Однако, по какой-то причине, в поле А-номера абонент присылает нам внутренние номера своей станции (101, 102 и т.д.). а) Добавим правило DNC, которое выполнит полную подмену номера на тот, который должен быть: б) Создадим правило, в котором применим правило DNC=15 (number change index = 15), ко всем входящим вызовам (number = E, Adress nature = All number): в) Привяжем правило CLRDSN=30 к транку №30 командой ADD TGDSG: Сценарий 2 Блокировка нежелательных вызовов с транка (например, для спам-звонков). Для блокировки вызовов в станции создан Local DNset с пустой таблицей маршрутизации (в таблице CNACLD нет никаких записей), и создан callsource (callsrc=4), привязанный к этому Local DNset. При совпадении А-номера с нежелательным, вызову назначается callsrc=4, тем самым вызов не сможет быть смаршрутизирован и будет отбит. Сценарий 3 Фильтрация входящих вызовов с транка. В данном случае, изначально присваиваем траку callsrc=4, тем самым, по-умолчанию, все входящие вызовы будут запрещены. Затем создаются правила CLRDSN с определенными условиями, при соблюдении которых входящий вызов может быть смаршрутизирован. При выполнении этих условий код callsrc заменяется на разрешенный и вызов проходит. Условиями для проверки обычно выступают префикс А-номера. Например, при входящих вызовах от сотового оператора все А-номера должны начинаться на с символа "9". При входящих вызовах с наших УПАТС А-номер должен начинаться с цифр "29" и т.д. Изменение атрибутов вызова по Б-номеру для внутренних абонентов Данная функция может использоваться для разных задач. Одна из них ограничение исходящих вызовов для определенного абонента на определенный номер. В нашем примере это будут исходящие вызовы на префикс 810, то есть международные вызовы (эту задачу можно решить и другими способами). Используем команду ADD CNACLR: Здесь выделим следующие параметры: Call source code код callsrc, к которому принадлежит номер. Call prefix префикс, при наборе которого срабатывает правило. Caller number номер телефона абонента, к которому применяется правило. Здесь так же применимо выражение wildcard, то есть применить правило к любому номеру, установив символ "E". Function code тип обработки вызова. В данном случае используем изменение Б-номера, выбрав Modify caller attribute. Caller number change index правило DNC, которое применяется к А-номеру. Called number change index правило DNC, которое применяется к Б-номеру. Reanalysis flag = true устанавливаем данный флаг для повторной обработки вызова в таблице маршрутизации с новыми параметрами. Приведенное правило используется в следующем сценарии. В организации приобретен номер 8-800, вызовы на которые переадресуются на локальный номер станции 29хххх. При помощи данного правила мы можем обнаружить набор этого номера 8800 локальными абонентами и подменить его на локальный номер назначения внутри станции, тем самым избежав тарификации этих вызовов на платформе 8800, а так же снизив внешний трафик. Применение данных функций и команд не ограничивается приведенными сценариями, и ограничено только фантазией и лицензиями оборудования. Версия станции Huawei SoftX3000 V300R600, но команды будут применимы на более свежих версиях, а принцип их применения такой же.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59