648 просмотров
от (450 баллов) в категории Тонкая настройка
Добрый день.

Какое-то странное поведение наблюдаю на машине. Даже не могу придумать, почему может быть так.

На машине есть 2 интерфейса. Первый смотрит в интернет, а второй - в специальную SIP-сеть провайдера.

Если АТС находится в режиме простоя (никакие звонки не совершаются), то через 3-5 часов (пока не установил точный промежуток) второй интерфейс перестает работать в исходящем направлении. Все транки провайдера ложатся и даже ping с АТС в SIP-сеть перестает работать. При этом (самое интересное!!!) пинг из SIP-сети на АТС идет. Как только АТС перезагружаешь, все начинает работать нормально. Но если опять появляется промежуток простоя (а это каждая ночь), то картина повторяется. Прилагаю tcdump по такой ситуации: https://cloud.mail.ru/public/MKR1/sSegD4vL7.

Состояние брандмауэра (хоть включен, хоть выключен) на поведение не влияет. В защите от взлома заблокированных адресов нет.

Подскажите, в каком направлении копать. Такое ощущение, что что-то типа брандмауэра загоняет. У меня даже версии нет, чтобы копать в каком-то направлении.
от (122 тыс. баллов)

интересно, а проблемный интерфейс настроен через DHCP или статика используется? 

шлюз сети (Gateway) пингуется? 

адрес шлюза можно подсмотреть в выводе команды 

route -n
от (450 баллов)
Добрый день.

Адрес на второй интерфейс приходит по DHCP. У шлюза, к сожалению, пинг закрыт провайдером.
от (122 тыс. баллов)
В январе мы решали схожую проблему:

https://qa.askozia.ru/7039/работает-клиент-askozia-почему-запрашивается-запуске-системы?show=7039#q7039

АТС не обновляла аренду интерфейса. Но в актуальной версии АТС задача была решена.
от (450 баллов)
А как посмотреть срок аренды IP, не подскажите?
от (122 тыс. баллов)

сходу подсказать не могу. тут не просто, он нигде не фиксируется в базе данных.

вы можете проверить запущен ли DHCP клиент для обновления аренды

ps -A -f | grep dhcp

если висят процессы вида

/sbin/udhcpc -t 6 -T 5 -S -b -n -p /var/run/udhcpc_eth0 

, то проблема не в сроке аренды. 

ну а если хотите докопаться до срока аренды, то можно вручную запустить DHCP клиента. 

Перед этим следует описать доп. скрипт 

#!/bin/sh

printenv > /tmp/dhcp_env

Сохраните его по пути "/tmp/dhcp.sh"

Предоставьте права на исполнение

chmod +x /tmp/dhcp.sh

далее запустите клиент

/sbin/udhcpc -t 6 -T 5 -S -b -n -p /var/run/udhcpc_eth0 -s /tmp/dhcp.sh

в файле "/tmp/dhcp_env" можно подсмотреть, что ответил DHCP.

от (450 баллов)

Ура! Нашел проблему! Вот способ воспроизведения.

  1. В "/etc/static-routes" добавляем маршрут.
  2. Перезагружаем АТС.
  3. Даем "route -n", чтобы убедиться, что маршрут присутствует.
  4. Даем "/sbin/udhcpc -t 6 -T 5 -S -b -n -p /var/run/udhcpc_eth1 -i eth1 -x hostname test -s /etc/inc/workers/worker_udhcpc_configure.php", чтобы обновить DHCP-адрес.
  5. Даем "route -n" и видим, что маршрут исчез.

Т.е. обновление аренды DHCP очищает маршрут.

Как вылечить?

1 Ответ

от (122 тыс. баллов)

Т.е. обновление аренды DHCP очищает маршрут.

Такое возможно в том случае, если интерфейс выбран как основной для доступа в интернет. В этом случае при получении адреса через DHCP все маршруты по умолчанию (для этого интерфейса) будут удалены. 

route del default gw 0.0.0.0 dev {$env_vars['interface']}

То есть приоритет отдается к правилам, которые присылает DHCP сервер. 

В вашем случае используется два сетевых интерфейса, возможно ли доступ в интернет разрешить через второй интерфейс? Сработает, если на втором интерфейсе настроена статика. Через "static-routes" можно переопределять правила маршрутов.

от (450 баллов)

Не сходится с моей ситуацией, или я Вас не понял.

В Интернет смотрит eth0 и на нем статика. В сеть провайдера смотри eth1 и на нем динамика. Основной - eth0.

В /etc/static-routes добавлена строка:

route add -net 10.0.0.0 netmask 255.0.0.0 gw 10.28.0.1 dev eth1

Вот эта строка и пропадает после обновления динамического адреса.

Настройки:

от (122 тыс. баллов)

Разобрался, это ошибка / недоработка. 

Попробуйте следующее:

Правим файл "/etc/inc/network.php" функцию "udhcpc_configure_renew_bound"

Добавляем одну строчку:

if('' != $env_vars['router'] && $is_inet == 1){

// ТОЛЬКО, если этот интерфейс для интернет, создаем дефолтный маршрут. 

$routers = explode(' ', $env_vars['router']);

foreach ($routers as $router){

Util::mwexec("route add default gw {$router} dev {$env_vars['interface']}");

}

}

Util::mwexec("/bin/cat /etc/static-routes | /bin/grep '^rout' | /bin/busybox awk -F ';' '{print $1}' | grep '{$env_vars['interface']}' | sh");

Копируем измененный файл в надежное место:

mkdir -p /storage/usbdisk1/mikopbx/patch/

cp /etc/inc/network.php /storage/usbdisk1/mikopbx/patch/network.php

Чтобы после ребута файл восстановился на измененную версию в крон добавить задачу:

1 * * * * /bin/cp /storage/usbdisk1/mikopbx/patch/network.php /etc/inc/network.php > /dev/null 2> /dev/null

На этом сайте можно бесплатно задать вопрос разработчикам MikoPBX и другим членам сообщества. Время ответа не регламентированно, но мы стараемся несколько раз в день заглядывать сюда. Для срочного решения проблем обращайтесь на платную линию поддержки

Популярные теги

askozia входящие-вызовы настройка исходящие маршрутизация провайдер запись-разговоров входящие ivr исходящие-звонки обновление ошибка очередь провайдеры битрикс24 очередь-вызовов переадресация запись установка маршрут история-звонков mikopbx транк панель-телефонии-1с перевод-вызова перевод askozia7 askozia6 битрикс callerid интеграция голосовая-почта логи перехват-вызова ростелеком нерабочее-время факс модуль nat docker запись-разговора веб-интерфейс bitrix24 goip настройка-провайдер история диалплан почта журнал-звонков релиз gsm вызовы звонок внешние-номера web-интерфейс zabbix маршруты cdr sip панель pjsip переадресация-мобильный voicemail ascozia телефонная-книга аон мобильный звонков лицензирование вызовов редактор номер asterisk лицензия ami регистрация оповещения провайдеров время голосовая fax trunk разговоров группы-пользователей #mikopbx пропущенные-звонки донабор beeline monitoring тишина smtp cisco мобильные мультифон мегафон шлюз не-работает электронная-почта не-слышно-звук

2.8 тыс. вопросов

2.4 тыс. ответов

6.7 тыс. комментариев

465 тыс. пользователей

...