Транскодер за NAT

ser

Member
Здравствуйте

у нас есть транскодер в приватной сети RU региона
Code:
#server ip
ip                     =transcoder.public.ip.com
ip_local               =transcoder.public.ip.com
#ip_local               =192.168.1.139

#webrtc ports range
media_port_from        =31001
media_port_to          =32000

#codecs
codecs                   =opus,alaw,ulaw,g729,speex16,g722,mpeg4-generic,telephone-event,h264,vp8,flv,mpv
codecs_exclude_sip       =mpeg4-generic,flv,mpv
codecs_exclude_streaming =flv,telephone-event
codecs_exclude_sip_rtmp  =opus,g729,g722,mpeg4-generic,vp8,mpv

#websocket ports
ws.port                 =8080
wss.port                =8443
http.port=8011
https.port=8444
hls.http.port=8012

cdn_enabled=true
cdn_ip=transcoder.public.ip.com
cdn_point_of_entry=ip.com

cdn_role = transcoder
cdn_nodes_resolve_ip = false



В логах видно такие предупреждения
Code:
17:31:41,223 WARN                     C - CDNOutbound-pool-29-thread-1 Received message on channel without session, ch [id: 0x2db765e8, /192.168.1.139:48704 :> /ip.com:8084]
17:31:42,165 INFO                     C - CDNOutbound-pool-29-thread-1 Exception on channel [id: 0x08636be9, /192.168.1.139:48706 => /ip.com:8084], Could not initialize class com.flashphoner.server.E
17:31:42,223 WARN                     C - CDNOutbound-pool-29-thread-1 Received message on channel without session, ch [id: 0x08636be9, /192.168.1.139:48706 => /ip.com:8084]
17:31:42,224 WARN                     C - CDNOutbound-pool-29-thread-1 Received message on channel without session, ch [id: 0x08636be9, /192.168.1.139:48706 :> /ip.com:8084]
17:31:42,224 WARN                     C - CDNOutbound-pool-29-thread-1 Received message on channel without session, ch [id: 0x08636be9, /192.168.1.139:48706 :> /ip.com:8084]
192.168.1.139 - локальный ип транскодера
статический ип куплен. на других приложениях комп виден из интернета
при проверке стрима через GUI говорит что порты закрыты хотя это не так.
1698158280072.png



можете помочь разобраться:
1 почему сдн не работает на транскодере? ( пробовал менять сдн_транспорт - не помогло)
2 почему скорость загрузки дистрибутива в RU зоне очень низкая? около 100 кбит
 

Max

Administrator
Staff member
Добрый день.
1 почему сдн не работает на транскодере? ( пробовал менять сдн_транспорт - не помогло)
Прежде всего, настройка ip_local должна быть выставлена в локальный IP сервера, иначе севрер не сможет прибиндить порты для прослушивания. Попробуйте сделать автоматическое определение адресов командой
Code:
sudo /usr/local/FlashphonerWebCallServer/bin/webcallserver set-ip
Выглядит так, что закрыт (не проброшен через NAT) порт 8084/tcp, который используется для сигналинга в CDN. Также должен быть открыт порт 8080/tcp и медиа порты (31000-32000/udp, если используется cdn_transport=tcp, то и 31000-32000/tcp)
Кроме того, сервер должен иметь возможность установить исходящее соединение на указанные порты (по логам, он именно это не может сделать).
Проверить доступность портов на сервере можно с помощью netcat и tcpdump: Проверка маршрутизации портов, либо пытаться установить соединение на порт при помощи telnet (это работает для TCP портов).
2 почему скорость загрузки дистрибутива в RU зоне очень низкая? около 100 кбит
Хранилище сборок и CDN для доступа к нему располагается на зарубежных серверах. Возможно, отдельные российские провайдеры ограничивают трафик (например, на серверах в ДЦ Ростелеком такой проблемы нет).
 
Last edited:

ser

Member
Попробуйте сделать автоматическое определение адресов командой
делал. пробовал с обоими вариантами 192.168.1.139 / 172.17.0.1
Code:
root@wowza-System-Product-Name:/usr/local/FlashphonerWebCallServer/bin# sudo ./webcallserver set-ip
IP adresses are already set, re-configure them? [yes/no] yes
We have found these IP on your server

External IP             Local IPs
82.000.000.46           192.168.1.139 172.17.0.1

Is your server located in your LAN? [yes/no] yes
We have found 2 IPs, what should be used for WCS: 192.168.1.139 172.17.0.1 ? 172.17.0.1
172.17.0.1 - это сеть от докера


и еще момент такой не могу там войти в панель управления
Code:
root@wowza-System-Product-Name:/home/wowza# ssh admin@localhost -p 2001
ssh: connect to host localhost port 2001: Connection refused
root@wowza-System-Product-Name:/home/wowza# netstat -tupln |grep java
tcp        0      0 0.0.0.0:1098            0.0.0.0:*               LISTEN      273886/java         
tcp        0      0 0.0.0.0:8011            0.0.0.0:*               LISTEN      273886/java         
tcp        0      0 0.0.0.0:8012            0.0.0.0:*               LISTEN      273886/java         
tcp        0      0 0.0.0.0:1935            0.0.0.0:*               LISTEN      273886/java         
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN      273886/java         
tcp        0      0 0.0.0.0:33299           0.0.0.0:*               LISTEN      273886/java         
tcp        0      0 0.0.0.0:8086            0.0.0.0:*               LISTEN      273886/java         
tcp        0      0 127.0.0.1:50999         0.0.0.0:*               LISTEN      273886/java         
tcp        0      0 0.0.0.0:8888            0.0.0.0:*               LISTEN      273886/java         
tcp        0      0 0.0.0.0:8443            0.0.0.0:*               LISTEN      273886/java         
tcp        0      0 0.0.0.0:8444            0.0.0.0:*               LISTEN      273886/java         
tcp        0      0 0.0.0.0:8445            0.0.0.0:*               LISTEN      273886/java         
tcp        0      0 0.0.0.0:8446            0.0.0.0:*               LISTEN      273886/java         
tcp        0      0 127.0.0.1:39361         0.0.0.0:*               LISTEN      273886/java         
tcp        0      0 0.0.0.0:9091            0.0.0.0:*               LISTEN      273886/java         
udp        0      0 0.0.0.0:1935            0.0.0.0:*                           273886/java
 

ser

Member
и хотел еще спросить

3. как сдн защищен от подключения к нему чужих серверов WCS ?
я же не смогу подключиться к чужой сети сдн со своим сервером
 

Max

Administrator
Staff member
делал. пробовал с обоими вариантами 192.168.1.139 / 172.17.0.1
192.168.1.139 должен быть виден в списке как адрес сетевого адаптера по ip a. Его и нужно проставить как ip_local.
и еще момент такой не могу там войти в панель управления
Скорее всего, в логе сервера есть сообщения вида Failed to bind. Если в качестве ip_local указан внешний адрес, это нормальное поведение. Должен быть указан внутренний.
3. как сдн защищен от подключения к нему чужих серверов WCS ?
Нужно использовать настройку
Code:
cdn_allowed_ips=192.168.1.39,192.168.100.64,192.168.101.65
где перечислить адреса серверов, которые могут соединяться с вашей CDN. Маски поддерживаются
Code:
cdn_allowed_ips=192.168.1.39,192.168.100.0/24
Настройка должна быть проставлена на всех узлах вашей CDN
 

ser

Member
Скорее всего, в логе сервера есть сообщения вида Failed to bind
да , были такие
Code:
root@wowza-System-Product-Name:/usr/local/FlashphonerWebCallServer-5.2.1782/logs/server_logs# grep -rn "Failed to bind." flashphoner.log
13090:Caused by: org.jboss.netty.channel.ChannelException: Failed to bind to: 82.000.000.46/82.000.000.46:8084
13143:Caused by: org.jboss.netty.channel.ChannelException: Failed to bind to: 82.000.000.46/82.000.000.46:8084
понял теперь
Code:
ip_local               =192.168.1.139
оставляю . просто на остальных узлах в сдн я указывал их равными ip = ip_local



Code:
root@wowza-System-Product-Name:~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: enp4s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether d4:5d:64:ab:66:b2 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.139/24 brd 192.168.1.255 scope global dynamic noprefixroute enp4s0
       valid_lft 18025sec preferred_lft 18025sec
    inet6 fe80::1f1e:c48f:11af:bb9c/64 scope link noprefixroute
       valid_lft forever preferred_lft forever
3: eno1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
    link/ether d4:5d:64:ab:66:b1 brd ff:ff:ff:ff:ff:ff
4: wlp2s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    link/ether ac:12:03:9c:9c:49 brd ff:ff:ff:ff:ff:ff
5: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
    link/ether 02:42:04:93:38:c3 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
       valid_lft forever preferred_lft forever
root@wowza-System-Product-Name:~# ifconfig
docker0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 172.17.0.1  netmask 255.255.0.0  broadcast 172.17.255.255
        ether 02:42:04:93:38:c3  txqueuelen 0  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eno1: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether d4:5d:64:ab:66:b1  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 20  memory 0x92d00000-92d20000 

enp4s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.139  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::1f1e:c48f:11af:bb9c  prefixlen 64  scopeid 0x20<link>
        ether d4:5d:64:ab:66:b2  txqueuelen 1000  (Ethernet)
        RX packets 378373635  bytes 311813854411 (311.8 GB)
        RX errors 0  dropped 24723  overruns 0  frame 0
        TX packets 503994728  bytes 670670767741 (670.6 GB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 541476  bytes 336886375 (336.8 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 541476  bytes 336886375 (336.8 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlp2s0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether ac:12:03:9c:9c:49  txqueuelen 1000  (Ethernet)
        RX packets 36713  bytes 35154838 (35.1 MB)
        RX errors 0  dropped 59  overruns 0  frame 0
        TX packets 1202  bytes 742668 (742.6 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
 

ser

Member
после выполнения
cd /usr/local/FlashphonerWebCallServer/bin
sudo ./webcallserver set-ip

в настройках стало так
Code:
ip                     =192.168.1.139
ip_local               =192.168.1.139

cdn_enabled=true
cdn_ip=192.168.1.139
и транскодер стал принимать
я думал что cdn_ip должен быть всегда белым. вчера похоже я руками его менял после выполнения set-ip

спасибо!
 
Top