show cdn-nodes

Добрый день.
Подскажите, пожалуйста. Используем flashphoner в режиме 1 origin и 1 edge, где edge за aws load balancer
При выполнении команды show cdn-nodes выдаёт много посторонних нод, часть из которых активна и доступна

Code:
% show cdn-nodes
Ip             State   Processing state    Role   Version Group
----------------------------------------------------------------
52.57.218.63   ACTIVE  NEW_STREAMS_ALLOWED EDGE   2.5     null
18.184.253.143 PASSIVE UNKNOWN             ORIGIN 2.0     null
3.124.205.232  PASSIVE UNKNOWN             ORIGIN 2.0     null
3.127.151.146  PASSIVE UNKNOWN             ORIGIN 2.0     null
18.194.147.89  PASSIVE UNKNOWN             ORIGIN 2.0     null
18.185.108.15  PASSIVE UNKNOWN             ORIGIN 2.0     null
3.64.143.115   ACTIVE  NEW_STREAMS_ALLOWED ORIGIN 2.5     null
3.122.216.119  PASSIVE UNKNOWN             ORIGIN 2.0     null
18.185.135.220 PASSIVE UNKNOWN             ORIGIN 2.0     null
18.198.49.114  PASSIVE UNKNOWN             ORIGIN 2.0     null
35.156.230.114 PASSIVE UNKNOWN             ORIGIN 2.0     null
18.195.229.222 PASSIVE UNKNOWN             ORIGIN 2.0     null
18.156.136.134 PASSIVE UNKNOWN             ORIGIN 2.0     null
3.124.218.6    PASSIVE UNKNOWN             ORIGIN 2.0     null
18.156.118.137 PASSIVE UNKNOWN             ORIGIN 2.0     null
18.196.10.189  PASSIVE UNKNOWN             ORIGIN 2.0     null
18.184.16.223  PASSIVE UNKNOWN             ORIGIN 2.0     null
52.59.162.113  PASSIVE UNKNOWN             ORIGIN 2.0     null
18.184.164.90  PASSIVE UNKNOWN             ORIGIN 2.0     null
18.192.45.14   PASSIVE UNKNOWN             ORIGIN 2.0     null
35.159.23.147  PASSIVE UNKNOWN             ORIGIN 2.0     null
18.156.173.218 PASSIVE UNKNOWN             ORIGIN 2.0     null
54.93.174.228  PASSIVE UNKNOWN             ORIGIN 2.0     null
18.195.215.164 PASSIVE UNKNOWN             ORIGIN 2.0     null
18.192.10.23   PASSIVE UNKNOWN             ORIGIN 2.0     null
18.184.105.41  PASSIVE UNKNOWN             ORIGIN 2.0     null
54.93.36.191   PASSIVE UNKNOWN             ORIGIN 2.0     null
172.31.8.6     ACTIVE  NEW_STREAMS_ALLOWED ORIGIN 2.5     null
18.192.37.183  PASSIVE UNKNOWN             ORIGIN 2.0     null
54.93.164.150  PASSIVE UNKNOWN             ORIGIN 2.0     null
52.58.158.122  PASSIVE UNKNOWN             ORIGIN 2.0     null
52.58.116.16   PASSIVE UNKNOWN             ORIGIN 2.0     null
52.59.231.195  PASSIVE UNKNOWN             ORIGIN 2.0     null
18.185.18.209  PASSIVE UNKNOWN             ORIGIN 2.0     null
18.195.215.252 PASSIVE UNKNOWN             ORIGIN 2.0     null
18.184.42.238  PASSIVE UNKNOWN             ORIGIN 2.0     null
3.125.40.15    PASSIVE UNKNOWN             ORIGIN 2.0     null
3.64.51.220    ACTIVE  NEW_STREAMS_ALLOWED ORIGIN 2.5     null
52.59.254.61   PASSIVE UNKNOWN             ORIGIN 2.0     null
3.64.34.105    ACTIVE  NEW_STREAMS_ALLOWED EDGE   2.5     null
3.64.27.31     PASSIVE UNKNOWN             ORIGIN 2.0     null
18.197.145.96  PASSIVE UNKNOWN             ORIGIN 2.0     null
18.198.202.148 PASSIVE UNKNOWN             ORIGIN 2.0     null
54.93.81.196   PASSIVE UNKNOWN             ORIGIN 2.0     null
18.184.107.142 PASSIVE UNKNOWN             ORIGIN 2.0     null
3.65.33.34     PASSIVE UNKNOWN             ORIGIN 2.0     null
35.158.140.124 PASSIVE UNKNOWN             ORIGIN 2.0     null
52.29.198.168  ACTIVE  NEW_STREAMS_ALLOWED ORIGIN 2.5     null
18.156.173.118 PASSIVE UNKNOWN             ORIGIN 2.0     null
18.156.122.93  PASSIVE UNKNOWN             ORIGIN 2.0     null
3.125.115.255  PASSIVE UNKNOWN             ORIGIN 2.0     null
18.185.138.18  PASSIVE UNKNOWN             ORIGIN 2.0     null
52.59.213.167  PASSIVE UNKNOWN             ORIGIN 2.0     null
18.184.222.30  PASSIVE UNKNOWN             ORIGIN 2.0     null
52.28.101.40   PASSIVE UNKNOWN             ORIGIN 2.0     null
3.64.238.48    ACTIVE  NEW_STREAMS_ALLOWED EDGE   2.5     null
54.93.55.204   PASSIVE UNKNOWN             ORIGIN 2.0     null
172.31.39.68   PASSIVE UNKNOWN             ORIGIN 2.0     null
18.196.116.250 PASSIVE UNKNOWN             ORIGIN 2.0     null
18.195.9.93    PASSIVE UNKNOWN             ORIGIN 2.0     null
3.125.119.22   PASSIVE UNKNOWN             ORIGIN 2.0     null
54.93.182.46   PASSIVE UNKNOWN             ORIGIN 2.0     null
18.193.76.115  PASSIVE UNKNOWN             ORIGIN 2.0     null
18.195.135.163 PASSIVE UNKNOWN             ORIGIN 2.0     null
3.120.207.157  PASSIVE UNKNOWN             ORIGIN 2.0     null
18.196.101.48  PASSIVE UNKNOWN             ORIGIN 2.0     null
35.156.44.75   PASSIVE UNKNOWN             ORIGIN 2.0     null
172.31.46.230  PASSIVE UNKNOWN             ORIGIN 2.0     null
3.127.39.160   PASSIVE UNKNOWN             ORIGIN 2.0     null
3.124.11.32    PASSIVE UNKNOWN             ORIGIN 2.0     null
35.156.139.107 PASSIVE UNKNOWN             ORIGIN 2.0     null
35.158.239.31  PASSIVE UNKNOWN             ORIGIN 2.0     null
18.192.13.66   PASSIVE UNKNOWN             ORIGIN 2.0     null
18.185.85.131  PASSIVE UNKNOWN             ORIGIN 2.0     null
3.127.69.106   PASSIVE UNKNOWN             ORIGIN 2.0     null
35.159.46.172  PASSIVE UNKNOWN             ORIGIN 2.0     null
18.193.119.244 PASSIVE UNKNOWN             ORIGIN 2.0     null
172.31.3.147   PASSIVE UNKNOWN             ORIGIN 2.0     null
18.193.130.46  PASSIVE UNKNOWN             ORIGIN 2.0     null
35.157.158.212 PASSIVE UNKNOWN             ORIGIN 2.0     null
18.185.15.217  PASSIVE UNKNOWN             ORIGIN 2.0     null
3.65.104.245   PASSIVE UNKNOWN             ORIGIN 2.0     null
18.194.87.37   PASSIVE UNKNOWN             ORIGIN 2.0     null
54.93.248.237  PASSIVE UNKNOWN             ORIGIN 2.0     null
172.31.43.32   PASSIVE UNKNOWN             ORIGIN 2.0     null
54.93.203.63   PASSIVE UNKNOWN             ORIGIN 2.0     null
18.197.44.28   ACTIVE  NEW_STREAMS_ALLOWED EDGE   2.5     null
18.193.74.21   PASSIVE UNKNOWN             ORIGIN 2.0     null
18.194.46.200  PASSIVE UNKNOWN             ORIGIN 2.0     null
3.127.231.146  PASSIVE UNKNOWN             ORIGIN 2.0     null
52.59.254.195  PASSIVE UNKNOWN             ORIGIN 2.0     null
3.127.65.178   PASSIVE UNKNOWN             ORIGIN 2.0     null
18.192.69.51   PASSIVE UNKNOWN             ORIGIN 2.0     null
18.156.176.45  PASSIVE UNKNOWN             ORIGIN 2.0     null
172.31.12.146  PASSIVE UNKNOWN             ORIGIN 2.0     null
18.195.20.23   PASSIVE UNKNOWN             ORIGIN 2.0     null
35.158.140.4   PASSIVE UNKNOWN             ORIGIN 2.0     null
18.196.42.0    PASSIVE UNKNOWN             ORIGIN 2.0     null
35.159.51.22   PASSIVE UNKNOWN             ORIGIN 2.0     null
35.158.140.73  PASSIVE UNKNOWN             ORIGIN 2.0     null
18.198.201.216 PASSIVE UNKNOWN             ORIGIN 2.0     null
18.156.2.38    PASSIVE UNKNOWN             ORIGIN 2.0     null
3.120.129.47   PASSIVE UNKNOWN             ORIGIN 2.0     null
3.120.199.32   PASSIVE UNKNOWN             ORIGIN 2.0     null
52.59.2.135    PASSIVE UNKNOWN             ORIGIN 2.0     null
18.196.62.195  PASSIVE UNKNOWN             ORIGIN 2.0     null
18.157.182.21  PASSIVE UNKNOWN             ORIGIN 2.0     null
172.31.7.16    PASSIVE UNKNOWN             ORIGIN 2.0     null
52.71.95.197   PASSIVE UNKNOWN             ORIGIN 2.0     null
54.93.73.7     PASSIVE UNKNOWN             ORIGIN 2.0     null
35.159.11.193  PASSIVE UNKNOWN             ORIGIN 2.0     null
3.64.62.40     PASSIVE UNKNOWN             ORIGIN 2.0     null
3.122.227.223  PASSIVE UNKNOWN             ORIGIN 2.0     null
3.127.39.143   PASSIVE UNKNOWN             ORIGIN 2.0     null
3.121.184.233  PASSIVE UNKNOWN             ORIGIN 2.0     null
3.127.151.130  PASSIVE UNKNOWN             ORIGIN 2.0     null
35.156.113.154 PASSIVE UNKNOWN             ORIGIN 2.0     null
18.196.236.9   PASSIVE UNKNOWN             ORIGIN 2.0     null
3.120.138.94   PASSIVE UNKNOWN             ORIGIN 2.0     null
54.93.57.44    PASSIVE UNKNOWN             ORIGIN 2.0     null
18.195.92.34   PASSIVE UNKNOWN             ORIGIN 2.0     null
18.159.246.32  PASSIVE UNKNOWN             ORIGIN 2.0     null
18.196.60.113  PASSIVE UNKNOWN             ORIGIN 2.0     null
52.59.215.89   PASSIVE UNKNOWN             ORIGIN 2.0     null
18.198.51.40   PASSIVE UNKNOWN             ORIGIN 2.0     null
18.185.22.253  PASSIVE UNKNOWN             ORIGIN 2.0     null
52.59.193.165  PASSIVE UNKNOWN             ORIGIN 2.0     null
 

Max

Administrator
Staff member
Пришлите пожалуйста SSH доступ к одному из серверов через приватную форму. Мы проверим конфигурацию.
Пока не понятно откуда эти ноды взялись.

Также вы можете в flashphoner.properties перечислить IP адреса и сети, которые могут участвовать в вашем CDN.
Тогда сторонние сети, даже если они по какой-то причине попали, будут исключены.

Пример:
cdn_allowed_ips=88.198.98.1/24, 88.198.99.219

 

Max

Administrator
Staff member
Скорее всего, эти ноды - предыдущие экземпляры Edge сервера, которые были остановлены балансером при снижении нагрузки. Origin продолжает их помнить. Такие ноды можно удалить REST API запросом /cdn/remove_node
Code:
POST /rest-api/cdn/remove_node HTTP/1.1
Content-Type: application/json                      
Host: origin:8081                      
                                                      
{                                                   
    "nodeIp": "18.184.253.143"
}
Запрос нужно отправлять на Origin сервер
Также Вы можете установить на Origin серверах настройку
Code:
cdn_nodes_timeout=300
В этом случае Origin должен должен "забывать" ноды в статусе PASSIVE через 5 минут после их перехода в этот статус
 
Хорошо, спасибо за подсказку. Но как быть с теми, которые Active (в том числе и Origin). Это не наши экземпляры.
 

Max

Administrator
Staff member
Но как быть с теми, которые Active (в том числе и Origin). Это не наши экземпляры.
Если у Вас только один origin и один edge, вы можете остановить оба сервера, затем запустить origin и затем edge. Если после этого в списке на origin появятся еще "не Ваши" ноды, тогда поможет только настройка cdn_allowed_ips, в которой нужно указать только IP адреса Ваших узлов или Ваших подсетей.
 
Хорошо, спасибо. Вечером проверим. Ещё подскажите, пожалуйста. Проводим нагрузочное тестирование, добавляем ноду в консоль. Если включена rest-авторизация, то данные о потоках не выгружаются. Как там указать авторизацию?
1617628890825.png
 

Max

Administrator
Staff member
Как там указать авторизацию?
Нужно на всех узлах завести одного и того же пользователя (это у вас уже сделано), затем твикнуть код реализации REST API клиента в файле /usr/local/FlashphonerWebCallServer/client2/flashphoner-rest-api.js, добавив заголовок Authorization после строки 343
JavaScript:
/** XHR WRAPPER **/
var send = function(uri, data, responseIsText) {
    return new Promise(function(resolve, reject) {
        var xhr = new XMLHttpRequest();
        if (data) {
            xhr.open('POST', uri, true);
            xhr.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
            xhr.setRequestHeader("Authorization", "Basic " + btoa("username:password")); /// Add this header
        } else {
            xhr.open('GET', uri, true);
        }
        ...
    });
};
После этого REST API запросы из примера Console должны работать
 
Видимо, этого недостаточно. Добавил заголовок, всё равно в консоли браузера 401 (Unauthorized). При это такой же запрос в постмане всё работает нормально
 

Max

Administrator
Staff member
Видимо, этого недостаточно. Добавил заголовок, всё равно в консоли браузера 401 (Unauthorized).
Страницу примера Console нужно обновить, также нужно разрешить CORS для этой страницы
 
Ещё подскажите, пожалуйста. На данный момент три сервера origin. edge и сервер для нагрузочного тестирования. На edge есть поток, когда тянем его (pull streams) с origin , то потоки в статусе playing, Если тянем с сервера для нагрузочного тестирования, то потоки в статусе pending. С чем может быть связано? Может ли на это влиять, что на сервере для нагрузочного тестирования нет сертификата?
 

Max

Administrator
Staff member
Страницу обновляли, CORS разрешены, сервис перезапускали
Проверили еще раз. Действительно, запрос /stream/find_all выполняется как GET, поэтому заголовок нужно добавить и туда тоже
Code:
        if (data) {
            xhr.open('POST', uri, true);
            xhr.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
            xhr.setRequestHeader("Authorization", "Basic " + btoa("user:password")); /// Add this header
        } else {
            xhr.open('GET', uri, true);
            xhr.setRequestHeader("Authorization", "Basic " + btoa("user:password")); /// Add this header
        }
На данный момент три сервера origin. edge и сервер для нагрузочного тестирования. На edge есть поток, когда тянем его (pull streams) с origin , то потоки в статусе playing
Обычный сценарий работы CDN - поток публикуется на Origin, подписчики подключаются к Edge. Соответственно, сервером, который имитирует нагрузку, можно забирать потоки с Edge или, если возможно подключение подписчиков непосредственно к Origin (бывают и такие случаи, но достаточно редко), то с Origin. Подробнее процедура тестирования в CDN описана в документации.
Если Вы пытаетесь забрать поток, опубликованный на Edge, с Origin сервера, то такая операция хоть и осуществима при помощи REST API запроса /pull/pull (который и работает под капотом примера Console), но лишена смысла, поскольку выворачивает CDN наизнанку. CDN сигналинг в этом случае также не работает.
С нагрузочного сервера потоки забирать не нужно, контрольный поток можно играть с того же сервера, к которому подключается нагрузочный сервер (например, с Edge).
 
Спасибо, помогло, авторизация при нагрузочном тестировании работает. Что касается cdn-nodes, перезапуск не помог, настройка cdn_nodes_timeout=300 позволила удалить только неактивные ноды. Можно ли указать в этом параметре cdn_allowed_ips доменные имена?
 

Max

Administrator
Staff member
настройка cdn_nodes_timeout=300 позволила удалить только неактивные нод
Она именно для этого предназначена.
Можно ли указать в этом параметре cdn_allowed_ips доменные имена?
Нет, только Ip адреса и маски подсетей, поскольку в соответствии с этой настройкой проверяются входящие пакеты на CDN порт 8084.
Возможным решением будет завести свою приватную подсеть, назначить ее Origin серверу и Edge серверам за балансером, и прописать эту подсеть в cdn_allowed_ips
 
Подскажите, пожалуйста, еще по нагрузочному тестированию. Начали тестировать edge-ноду, находящуюся за aws load balancer и получаем такие ошибки
1617898986236.png
 

Max

Administrator
Staff member
Такие ошибки (CORS error) обычно обходятся установкой в браузер расширения вроде mybrowseraddon.com/access-control-allow-origin.html для разрешения кроссдоменных запросов.
 
Top