408 | | == Настраиваем общий адрес == |
409 | | |
410 | | Общий адрес - это IP адрес, используя который один из двух серверов (активный) будет предоставлять сервис. Пусть для определенности это будет адрес {{{192.168.0.63}}}. |
411 | | |
412 | | Для начала установим пакет arping: |
413 | | |
414 | | {{{ |
415 | | $ sudo apt-get install arping |
416 | | }}} |
417 | | |
418 | | В файле /etc/network/interfaces обоих серверов добавляем настройку для общего адреса: |
419 | | |
420 | | {{{ |
421 | | iface eth0:0 inet static |
422 | | address 192.168.0.63 |
423 | | netmask 255.255.255.0 |
424 | | }}} |
425 | | |
426 | | где вместо "eth0" следует вписать имя используемого сетевого интерфейса. |
427 | | |
428 | | Отредактируем файл /etc/default/arping, вписав в него {{{IPUP=1}}} и {{{DOWN=1}}}. |
429 | | |
430 | | На первом сервере выполняем команду |
431 | | |
432 | | {{{ |
433 | | $ sudo ifup eth0:0 |
434 | | }}} |
435 | | |
436 | | Выполнение этой команды на втором сервере должно дать ошибку, так как адрес уже присутствует в сети: |
437 | | |
438 | | {{{ |
439 | | $ sudo ifup eth0:0 |
440 | | * Using arping to check duplicity of 192.168.0.63... |
441 | | ...fail! |
442 | | run-parts: /etc/network/if-up.d/arping exited with return code 1 |
443 | | Failed to bring up eth0:0. |
444 | | }}} |
445 | | |
446 | | Теперь необходимо изменить настройки odbc таким образом, чтобы оба сервера !FreeSwitch подключались к базе данных используя общий адрес и, таким образом, подключались к одному и тому же серверу mysql. Для этого в ранее созданном файле /etc/odbc.ini указываем адрес сервера {{{192.168.0.63}}}. |
447 | | |
448 | | Устанавливаем параметр sysctl net.ipv4.ip_nonlocal_bind в значение 1 чтобы дать возможность неактивному серверу !FreeSwitch слушать адрес, отсутствующий на его интерфейсах: |
449 | | |
450 | | {{{ |
451 | | $ sudo sysctl net.ipv4.ip_nonlocal_bind=1 |
452 | | }}} |
453 | | |
454 | | Для автоматической установки этого значения в файл /etc/sysctl.conf добавляем строку |
455 | | |
456 | | {{{ |
457 | | net.ipv4.ip_nonlocal_bind=1 |
458 | | }}} |
459 | | |
460 | | В конфигурации профилей !FreeSwitch устанавливаем параметры {{{sip-ip}}}, {{{rtp-ip}}}, {{{presence-hosts}}}, {{{ext-sip-ip}}} и {{{ext-rtp-ip}}} в значение {{{192.168.0.63}}}. |
461 | | |
462 | | Теперь можно запустить сервера !FreeSwitch: |
463 | | |
464 | | {{{ |
465 | | $ sudo service freeswitch start |
466 | | }}} |
467 | | |
598 | | На данном этапе у нас настроен переход сервера из резерва в активное состояние по единственному критерию - недоступности мастера, определяемой по протоколу VRRP. Теперь добавим сюда контроль работоспособности !FreeSwitch. Для этого создаем скрипт /etc/keepalived/ka-status.sh: |
| 540 | Теперь необходимо изменить настройки odbc таким образом, чтобы оба сервера !FreeSwitch подключались к базе данных используя общий адрес и, таким образом, подключались к одному и тому же серверу mysql. Для этого в ранее созданном файле /etc/odbc.ini указываем адрес сервера {{{192.168.0.63}}}. |
| 541 | |
| 542 | Устанавливаем параметр sysctl net.ipv4.ip_nonlocal_bind в значение 1 чтобы дать возможность неактивному серверу !FreeSwitch слушать адрес, отсутствующий на его интерфейсах: |
| 543 | |
| 544 | {{{ |
| 545 | $ sudo sysctl net.ipv4.ip_nonlocal_bind=1 |
| 546 | }}} |
| 547 | |
| 548 | Для автоматической установки этого значения в файл /etc/sysctl.conf добавляем строку |
| 549 | |
| 550 | {{{ |
| 551 | net.ipv4.ip_nonlocal_bind=1 |
| 552 | }}} |
| 553 | |
| 554 | В конфигурации профилей !FreeSwitch устанавливаем параметры {{{sip-ip}}}, {{{rtp-ip}}}, {{{presence-hosts}}}, {{{ext-sip-ip}}} и {{{ext-rtp-ip}}} в значение {{{192.168.0.63}}}. |
| 555 | |
| 556 | Теперь можно запустить сервера !FreeSwitch: |
| 557 | |
| 558 | {{{ |
| 559 | $ sudo service freeswitch start |
| 560 | }}} |
| 561 | |
| 562 | На данном этапе у нас настроен переход сервера из резерва в активное состояние по единственному критерию - недоступности мастера, определяемой по протоколу VRRP. Теперь добавим сюда контроль работоспособности !FreeSwitch. Для этого сначала установим пакет arping: |
| 563 | |
| 564 | {{{ |
| 565 | $ sudo apt-get install arping |
| 566 | }}} |
| 567 | |
| 568 | Теперь создадим скрипт /etc/keepalived/ka-status.sh: |
| 642 | |
| 643 | В этой схеме сервер, на котором поднят общий адрес, определяется командами администратора. Общий адрес - это IP адрес, используя который один из двух серверов (активный) будет предоставлять сервис. Пусть для определенности это будет адрес {{{192.168.0.63}}}. |
| 644 | |
| 645 | Для начала установим пакет arping: |
| 646 | |
| 647 | {{{ |
| 648 | $ sudo apt-get install arping |
| 649 | }}} |
| 650 | |
| 651 | В файле /etc/network/interfaces обоих серверов добавляем настройку для общего адреса: |
| 652 | |
| 653 | {{{ |
| 654 | iface eth0:0 inet static |
| 655 | address 192.168.0.63 |
| 656 | netmask 255.255.255.0 |
| 657 | }}} |
| 658 | |
| 659 | где вместо "eth0" следует вписать имя используемого сетевого интерфейса. |
| 660 | |
| 661 | Отредактируем файл /etc/default/arping, вписав в него {{{IPUP=1}}} и {{{DOWN=1}}}. |
| 662 | |
| 663 | На первом сервере выполняем команду |
| 664 | |
| 665 | {{{ |
| 666 | $ sudo ifup eth0:0 |
| 667 | }}} |
| 668 | |
| 669 | Выполнение этой команды на втором сервере должно дать ошибку, так как адрес уже присутствует в сети: |
| 670 | |
| 671 | {{{ |
| 672 | $ sudo ifup eth0:0 |
| 673 | * Using arping to check duplicity of 192.168.0.63... |
| 674 | ...fail! |
| 675 | run-parts: /etc/network/if-up.d/arping exited with return code 1 |
| 676 | Failed to bring up eth0:0. |
| 677 | }}} |
| 678 | |
| 679 | Теперь необходимо изменить настройки odbc таким образом, чтобы оба сервера !FreeSwitch подключались к базе данных используя общий адрес и, таким образом, подключались к одному и тому же серверу mysql. Для этого в ранее созданном файле /etc/odbc.ini указываем адрес сервера {{{192.168.0.63}}}. |
| 680 | |
| 681 | Устанавливаем параметр sysctl net.ipv4.ip_nonlocal_bind в значение 1 чтобы дать возможность неактивному серверу !FreeSwitch слушать адрес, отсутствующий на его интерфейсах: |
| 682 | |
| 683 | {{{ |
| 684 | $ sudo sysctl net.ipv4.ip_nonlocal_bind=1 |
| 685 | }}} |
| 686 | |
| 687 | Для автоматической установки этого значения в файл /etc/sysctl.conf добавляем строку |
| 688 | |
| 689 | {{{ |
| 690 | net.ipv4.ip_nonlocal_bind=1 |
| 691 | }}} |
| 692 | |
| 693 | В конфигурации профилей !FreeSwitch устанавливаем параметры {{{sip-ip}}}, {{{rtp-ip}}}, {{{presence-hosts}}}, {{{ext-sip-ip}}} и {{{ext-rtp-ip}}} в значение {{{192.168.0.63}}}. |
| 694 | |
| 695 | Теперь можно запустить сервера !FreeSwitch: |
| 696 | |
| 697 | {{{ |
| 698 | $ sudo service freeswitch start |
| 699 | }}} |