В этой статье
хочу рассказать о простом способе
настройки резервирования asterisk
при помощи heartbeat.
Мы имеем два
сервера с установленым астериском и
имеющим один сетевой интерфейс.
asterisk1 192.168.1.34
asterisk2 192.168.1.94
Певрое что мы
делаем на каждом узле устанавливаем
heartbeat
apt-get
install heartbeat
после установки
создадим файл ha.cf
touch /etc/ha.d.ha.cf
ha.cf должен
содеражать следующие параметры
logfile /var/log/ha-lognode asterisk1node asterisk2keepalive 1 # Send one heartbeat each seconddeadtime 20 # Declare nodes dead after 10 secondsbcast eth0auto_failback on # при восстановлении «упавшего» сервера адрес вернутьrespawn hacluster /usr/lib/heartbeat/ipfail # Failover on network failures
asterisk1 asterisk2
hostname имена, их
можно узнать командой
uname -n
далее создадим
файл haresources
touch /etc/ha.d/haresources
содержимое файла
на asterisk1
asterisk2 Ipaddr::192.168.1.94/24/eth0
содержимое
файла на asterisk2
asterisk1 Ipaddr::192.168.1.34/24/eth0
далее создадим
файл authkeys на asterisk1
touch /etc/ha.d/authkeys
содержимое
файла должно быть примерно таким
auth 11 sha1 ffde5356f5ea5589ee0dc84b7b116543
даем права
600
chmod 600 /etc/ha.d/authkeys
копируем
ключ на другой узел
scp -P22 /etc/ha.d/authkeys root@192.168.1.94:/etc/ha.d/
запускаем heartbeat
на обоих севрерах
/etc/init.d/heartbeat start
Теперь при
падении asterisk1 (192.168.1.34)
резервный сервер asterisk2
(192.168.1.94) возьмет на себя
роль asterisk1
для проверки
выключим asterisk1
shutdown
-h now
через некоторое
время мы увидим что asterisk2
начал принимать
запросы на интерфейсе eth0:0
с адресом 192.168.1.34
eth0 Link encap:Ethernet HWaddr b8:27:eb:28:e0:38inet addr:192.168.1.94 Bcast:192.168.1.255 Mask:255.255.255.0UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1RX packets:212607 errors:0 dropped:0 overruns:0 frame:0TX packets:150011 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000RX bytes:45470191 (43.3 MiB) TX bytes:35285006 (33.6 MiB)eth0:0 Link encap:Ethernet HWaddr b8:27:eb:28:e0:38inet addr:192.168.1.34 Bcast:192.168.1.255 Mask:255.255.255.0UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
обратите внимание
что на asterisk2 сервис asterisk
должен быть запущен. После того как asterisk1 будет снова доступен запросы на адрес 192.168.1.34 будут приходить на как и прежде.
Так же в sip.conf в секции general на asterisk2 я прописал следующие параметры
media_address=192.168.1.34 # RTP трафик будет идти с адреса 192.168.1.34
bindaddr=192.168.1.34:5060 # если не указать bindaddr запросы отправленые на адрес 192.168.1.34 будут уходить с адреса 192.168.1.94
Так же в sip.conf в секции general на asterisk2 я прописал следующие параметры
media_address=192.168.1.34 # RTP трафик будет идти с адреса 192.168.1.34
bindaddr=192.168.1.34:5060 # если не указать bindaddr запросы отправленые на адрес 192.168.1.34 будут уходить с адреса 192.168.1.94
А я могу второй астериск держать в другой подсети? (например, хочу чтобы он был в другом конце города, или у другого провайдера)
ОтветитьУдалитьК сожалению не проверял
Удалить