Курсы по использованию Asterisk

IP-телефония — технология будущего. Обучитесь работе с IP-АТС Asterisk для того чтобы внедрить и профессионально использовать при решении коммуникационных задач.

Работайте с Asterisk профессионально!

Многоуровневая защита IP-АТС Asterisk

Телефонные станции очень часто становятся объектами хакерских атак. Узнайте, каким образом необходимо строить многоуровневую защиту для Вашей IP-АТС.

Не оставьте хакерам шансов. Защитите свой Asterisk от атак.

Используйте Веб-Интерфейс для удобства настройки

Панель управление FreePBX позволяет легко и удобно управлять всей системой. Научитесь эффективно использовать FreePBX для решения своих задач.

Управление станцией и статистика в окне браузера.

Научитесь работать с Asterisk из консоли

Для понимания работы с Asterisk необходимо уметь настраивать его вручную с конфигурационными файлами и командной строкой CLI Asterisk.

Научитесь «тонкой» настройке Asterisk

Цель курсов - максимум практики.

Обучение нацелено на практическую работу с IP-оборудованием: платы потоков E1, VoIP-телефонные аппараты, голосовые шлюзы FXS и прочее.

Обучение на реальном оборудовании — залог успеха.

Резервирование интернет-канала на маршрутизаторах Mikrotik

База знаний Настройка VoIP-оборудования

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

1 Исходные данные

2 Настройка портов

3 Настройка IP адресов на интерфейсах

4 Создание маршрутов

5 Настройка файервола

6 Скрипт для переключения провайдера

7 Настройка расписания

Исходные данные:


Провайдер 1:
   IP-адрес — 1.1.1.2/30
   Шлюз по умолчанию — 1.1.1.1
Провайдер 2:
   IP-адрес — 2.2.2.2/30
   Шлюз по умолчанию — 2.2.2.1
Локальная сеть:
   IP-адрес — 192.168.1.1/24   

   Приведены шаги настройки через консоль. В примере рассматривается настройка 5-портового роутера со стандартными настройками «из коробки».

Настройка портов


Сделаем первые два порта самостоятельными, к ним будут подключены провайдеры (по умолчанию, только первый порт является самостоятельным, все остальные объединены в свитч).

Добавляем 3-й порт к мосту bridge-local (Здесь предполагается, что кабель, который Вы используете для подключения к роутеру, подключен именно к 3-му порту роутера. Этот шаг делается для предотвращения потери доступа к роутеру после изменения ролей портов)
  

 /interface bridge port
   add bridge=bridge-local interface=ether3-slave-local


Меняем роли и имена портов

/interface ethernet
set 0 name=ether1-gateway1
set 1 name=ether2-gateway2
set 2 master-port=none name=ether3-master-local
set 4 master-port=none
set 5 master-port=ether3-master-local
set 4 master-port=ether3-master-local


Удаляем порт ether2-gateway2 из моста bridge-local

Настраиваем IP-адреса на интерфейсах:


/ip address
add address=192.168.1.1/24 interface=bridge-local
add address=1.1.1.2/30 interface=ether1-gateway1
add address=2.2.2.2/30 interface=ether2-gateway2



ПРИМЕЧАНИЕ: На интерфейсе ether1-gateway, по умолчанию включен DHCP-клиент, который следует отключить. Также, на интерфейсе bridge-local, по умолчанию, включен DHCP-сервер, раздающий IP-адреса из диапазона 192.168.88.0/24, его следует отключить или перенастроить.

Создаем маршруты.


Будет создано две дополнительные таблицы маршрутов (ISP1 и ISP2), в каждую из которых войдет маршрут в локальную сеть, чтобы трафик, адресованный хостам локальной сети наверняка не уходил к провайдерам.

/ip route
# Таблица для первого провайдера
add dst-address=0.0.0.0/0 gateway=1.1.1.1 routing-mark=ISP1
add dst-address=192.168.1.0/24 gateway=bridge-local routing-mark=ISP1

# Таблица для второго провайдера
add dst-address=0.0.0.0/0 gateway=2.2.2.1 routing-mark=ISP2
add dst-address=192.168.1.0/24 gateway=bridge-local routing-mark=ISP2

# Маршруты по умолчанию в таблице main, переключение будет осуществляться скриптом
add comment=MainGW distance=1 dst-address=0.0.0.0/0 gateway=1.1.1.1
add comment=RsrvGW distance=2 dst-address=0.0.0.0/0 gateway=2.2.2.1



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

/ip route rule
add action=lookup routing-mark=to-ISP1 table=ISP1
add action=lookup routing-mark=to-ISP2 table=ISP2

Настройка файервола


Создаем правила файрвола для маркировки соединений, установленных через разные WAN-интерфейсы. Это делается для того, чтобы роутер отправлял ответные пакеты через тот же интерфейс, через который соединение было установлено.

/ip firewall mangle
# Метки в цепочке output для соединений с самим роутером
add action=mark-routing chain=output connection-mark=from-ISP1 new-routing-mark=to-ISP1
add action=mark-routing chain=output connection-mark=from-ISP2 new-routing-mark=to-ISP2
add action=mark-routing chain=output new-routing-mark=to-ISP1 src-address=1.1.1.2
add action=mark-routing chain=output new-routing-mark=to-ISP2 src-address=2.2.2.2

# Метки в цепочке prerouting для соединений с хостами в локальной сети и с роутером
add action=mark-connection chain=prerouting connection-state=new in-interface=ether1-gateway1 new-connection-mark=from-ISP1
add action=mark-connection chain=prerouting connection-state=new in-interface=ether2-gateway2 new-connection-mark=from-ISP2
add action=mark-routing chain=prerouting connection-mark=from-ISP1 new-routing-mark=to-ISP1
add action=mark-routing chain=prerouting connection-mark=from-ISP2 new-routing-mark=to-ISP2

Создание скрипта для переключения провайдеров.


/system script
add name=check_isp policy=read,write,test



Текст скрипта лучше добавить через редактор командой:
edit check_isp source

Скрипт:

:local MainIf ether1-gateway1
:local RsrvIf ether2-gateway2
:local PingCount 1
:local PingTargets {194.87.0.50; 87.250.250.203; 8.8.8.8; 93.158.134.11}

:local MainIfInetOk false

:local RsrvIfInetOk false

:local MainPings 0

:local RsrvPings 0

foreach host in=$PingTargets do={

 : local res [/ping $host count=$PingCount interface=$MainIf]

 : set MainPings ($MainPings + $res)

 : local res [/ping $host count=$PingCount interface=$RsrvIf]

 : set RsrvPings ($RsrvPings + $res)

}

:set MainIfInetOk ($MainPings >= 1)

:set RsrvIfInetOk ($RsrvPings >= 1)

:local MainGWDistance [/ip route get [find comment= «MainGW»] distance]

:local RsrvGWDistance [/ip route get [find comment= «RsrvGW»] distance]

if ($MainIfInetOk && ($MainGWDistance >= $RsrvGWDistance)) do={

 /ip route set [find comment= «MainGW»] distance=1

 /ip route set [find comment= «RsrvGW»] distance=2

 foreach i in=[/ip firewall connection find] do={/ip firewall connection remove $i}

 /log info «switched to main internet connection»

}

if (!$MainIfInetOk && $RsrvIfInetOk && ($MainGWDistance ≤ $RsrvGWDistance)) do={

 /ip route set [find comment= «MainGW»] distance=2

 /ip route set [find comment= «RsrvGW»] distance=1

 foreach i in=[/ip firewall connection find] do={/ip firewall connection remove $i}

 /log info «switched to reserve internet connection»
}



ПРИМЕЧАНИЕ: Скрипт сделан на основе скрипта, приведенного в статье http://habrahabr.ru/post/141785/. Единственным существенным отличием является строка
foreach i in=[/ip firewall connection find] do={/ip firewall connection remove $i}
Эта строка вычищает таблицу соединений после смены маршрута по умолчанию. Если этого не делать, существующие соединения продолжат использовать старый маршрут.

Настройка расписания


Добавляем расписание для выполнения скрипта каждую минуту (можно поставить более частое выполнение если требуется более быстрое переключение).

/system scheduler 
add interval=1m name=check_isp_every_min on-event=check_isp policy=read,write,test

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

сервер, sip, настройка, шлюз, Провайдеры, трафик, Event