BigBlueButton için TURN Sunucusu Kurulumu

Selamlar, bu dökümanda güvenlik duvarlarının arkasındaki kullanıcıların BigBlueButon’a bağlanmasına izin vermek ve BigBlueButton sunucunuzu daha az kaynak tüketir hale getirmek için TURN sunucusunun nasıl kurulacağını öğreneceğiz.

Gereksinimler

  • Temiz yapılandırılmış sadece TURN hizmeti kullanılacak bir Ubuntu 18.04 sunucu
  • Sunucu donanımı için minimum 2 GB RAM / 2 CPU önerilir
  • root yetkileri ile SSH erişimi gereklidir
  • TURN sunucu IP adresini hedefleyen bir DNS (A) kaydı (Örneğin: turn.sizinalanadiniz.com gibi…)

Açılması gereken bağlantı noktaları

Portlar Protokol Açıklama
3478 TCP/UDP coturn port
443 TCP/UDP TLS port
49152 ile 65535 arası UDP relay port aralığı

Kurulum adımları

  1. TURN olarak yapılandıracağınız sunucuda root yetkileri ile SSH erişimini açın.
  2. Altta verdiğim komutta turn.sizinalanadiniz.com, 1234abcd ve posta@adresiniz.com alanlarını kendinize göre düzenleyin ve çalıştırın.
wget -qO- https://ubuntu.bigbluebutton.org/bbb-install.sh | bash -s -- -c turn.sizinalanadiniz.com:1234abcd -e posta@adresiniz.com

Kurulum her şeyi (Let’s Encrypt SSL sertifikası dahil) sizin adınıza tamamlayacaktır.

Yapılandırmalar

Hızlı kurulumla otomatik yapılandırma işlemi (BigBlueButton sunucunuz yoksa)

İşlem tamamlandıktan sonra TURN sunucunuzu ayrı bir sunucuda yeni bir BigBlueButton kurulumu yaparak kullanmak isterseniz alttaki komutu girebilirsiniz. Komut yeni TURN sunucunuzuda kullanacak şekilde BigBlueButton’u otomatik kuracak ve yapılandıracaktır:

Komut içerisinde yer alan TURN sunucusu ve BigBlueButton sunucusu ile e-posta adresinizi, TURN sunucusu kurarken belirlediğiniz anahtarı kendinize göre düzenlemeyi unutmayın!

wget -qO- https://ubuntu.bigbluebutton.org/bbb-install.sh | bash -s -- -v xenial-22 -s konferans.sizinalanadiniz.com -e posta@adresiniz.com -g -c turn.sizinalanadiniz.com:1234abcd

Manuel yapılandırma işlemi (Kurulu bir BigBlueButton sunucunuz varsa)

  1. BigBlueButton sunucunuzda root yetkileri ile SSH oturumu açın.
  2. Altta verdiğim komutla düzenlememiz gereken ilgili dosyayı açın:
nano /usr/share/bbb-web/WEB-INF/classes/spring/turn-stun-servers.xml 
  1. Bu dosya içerisinde yer alan tüm turn.example.com kısımlarınızı kendi TURN sunucunuzun adresi ile güncelleyin.

  2. Yine aynı dosya içerisinde yer alan <random value> kısmını TURN sunucusu kurulumundaki gizli anahtarınızla (Bizim örneğimizde hatırlarsanız 1234abcd değerini vermiştik) güncelleyin.

turn-stun-servers.xml dosyasının içeriği varsayılan olarak şu şekildedir:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">

    <bean id="stun0" class="org.bigbluebutton.web.services.turn.StunServer">
        <constructor-arg index="0" value="stun:turn.example.com"/>
    </bean>


    <bean id="turn0" class="org.bigbluebutton.web.services.turn.TurnServer">
        <constructor-arg index="0" value="<random value>"/>
        <constructor-arg index="1" value="turns:turn.example.com:443?transport=tcp"/>
        <constructor-arg index="2" value="86400"/>
    </bean>
    
    <bean id="turn1" class="org.bigbluebutton.web.services.turn.TurnServer">
        <constructor-arg index="0" value="<random value>"/>
        <constructor-arg index="1" value="turn:turn.example.com:443?transport=tcp"/>
        <constructor-arg index="2" value="86400"/>
    </bean>

    <bean id="stunTurnService"
            class="org.bigbluebutton.web.services.turn.StunTurnService">
        <property name="stunServers">
            <set>
                <ref bean="stun0"/>
            </set>
        </property>
        <property name="turnServers">
            <set>
                <ref bean="turn0"/>
                <ref bean="turn1"/>
            </set>
        </property>
    </bean>
</beans>
  1. Değişiklikleri uygulamak için BigBlueButton sunucunuzu yeniden başlatın.

Hepsi bu kadar :slight_smile:

Referanslar:

1 Beğeni

Merhabalar Muhammed Bey,

Turn sunucusu kurulumuna geçmeden önce yanlış bir adım yapmamak adına sormak istediğim bazı şeyler var,

Turn sunucumuzu Kurum içine mi konumlandırmamız gerekiyor, yoksa Bigbluebutton sunucu hizmeti aldığımız yerde konumlandırmamız mı. İkiside olursa hangisi daha avantajlı olur.

Birde öğrenmek için soruyorum. Turn sunucusu Bigbluebutton sisteminin daha hızlı çalışmasına daha az kaynak tüketmesini nasıl sağlıyor ?

Bağlantılarda yaşadığımız görüntü donmasını , kasması sorununu giderebilir mi?

Bu konu hakkında bilgi verirseniz çok memnun olurum.

İyi çalışmalar diliyorum.

Yine hizmet aldığınız bir DC bünyesinde barındırmanız daha sağlıklı olacaktır.

BigBlueButton’a yapılan bağlantılarının daha stabil olmasını sağlayacaktır. BigBlueButton sunucusunda yük daha az olacaktır. Ve donmalarda vs. güvenlik duvarı kaynaklı sorun var ise bunlarda çözülecektir. Normalde her kuruluma öneriyorum ben. Trafiği de tek sunucu değilde aslında 2 farklı hatta yaymış olacaksınız. Donma sorunun sunucu donanımı kaynaklı değil ise bu yöntem çözüm olacaktır kanaatindeyim.

1 Beğeni

BBB Ubuntu 16.04 üzerine kurulmasını öneriyorsunuz, Turn sunucuyuda 18.04 üzerine kurun dediniz,
İkisinide aynı sunucuya kurmak istediğimizde hangi versiyonu kurmalıyız ?

Ayarlarını doğru yaptıysam stun serverin çalışıp çalışmadığını nasıl kontrol edebilirim ?

Bir hata aldım ekran görüntüsü

Merhabalar sorunum çözüldü. Belki olurda biriside aynı hatayı yaşar diye nasıl olduğunu açıklayayım.

Adımların hepsi doğru yalnız son adımda

nano /usr/share/bbb-web/WEB-INF/classes/spring/turn-stun-servers.xml

işleminde içerideki herseye silin ve şunu ekleyin.

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">

    <bean id="stun0" class="org.bigbluebutton.web.services.turn.StunServer">
        <constructor-arg index="0" value="stun:turn.muhyal.com"/>
    </bean>


    <bean id="turn0" class="org.bigbluebutton.web.services.turn.TurnServer">
        <constructor-arg index="0" value="08rv75yhg9d"/>
        <constructor-arg index="1" value="turns:turn.muhyal.com:443?transport=tcp"/>
        <constructor-arg index="2" value="86400"/>
    </bean>
    
    <bean id="turn1" class="org.bigbluebutton.web.services.turn.TurnServer">
        <constructor-arg index="0" value="08rv75yhg9d"/>
        <constructor-arg index="1" value="turn:turn.muhyal.com:443?transport=tcp"/>
        <constructor-arg index="2" value="86400"/>
    </bean>

    <bean id="stunTurnService"
            class="org.bigbluebutton.web.services.turn.StunTurnService">
        <property name="stunServers">
            <set>
                <ref bean="stun0"/>
            </set>
        </property>
        <property name="turnServers">
            <set>
                <ref bean="turn0"/>
                <ref bean="turn1"/>
            </set>
        </property>
    </bean>
</beans>

Muhammed Bey’in , Belirttiği değişikliği yapmayı unutmayın.

Daha sonra bbb-check status kısmında bbb-web kısmı aktif ediliyor anlamıyor geliyormuş. kısa bir süre sonra sistem çalışmaya başladı.

Sanki öncekine göre daha hızlı gibi hissetim belkide psikolojiktir :smile:

Son olarak bugün video görüşmesinde görüntü çok aşırı donuyordu. Sorunun kaynayı kalabalık toplantıda kasmasın diye Bitrate oranlarını 40-50- ye indirmişim. :slight_smile: ondan kaynaklanıyormuş.

Şimdi Medium oranını 150 hight oranını 350 en üst ayarını 600’ e çektim. Görüntü kayıyor resmen :rofl:

Bitrate ayar kısmı
nano /usr/share/meteor/bundle/programs/server/assets/app/config/settings.yml

buradan değiştirebilirsiniz.

Şimdi geldik can alıcı soruya turn serverin çalışıp çalışmadından nasıl emin olabiliriz :smiley:

Psikolojik değildir :slight_smile:

Şu adres, senin soruna yanıt olacaktır :+1:

Merhaba, kendi fiziksel sunucularım üzerinde scalelite ve bbb kullanıyorum. Arada sırada bazı oturumlarda ses kesintileri oluşuyor. Fiziksek sunucumu 20 vds böldüm ve her bir vds 8 cpu, 10 gb ram, 150 gb hdd kapasitede. 1 gb hat var.

Ubuntu 18.04 e otomatik kurulum yapmak istedim ancak 20.04 üzerine kurmam gerektiğine dair mesaj verince 20.04 versiyonunu kurdum, kurulumda bir hata almadım.
Turn sunucunun çalışıp çalışmadığını kontrol etmek için belirttiğiniz siteye girdim ancak bir türlü testi gerçekleştiremedim. Acaba turn server kurulumunda mı hata yaptım bilemedim. Size zahmet geri dönüş sağlayabilirseniz, 20 adet bbb sunucuyu kendi turn sunucuma göre baştan kuracağım.

Merhaba, ekstra bir dış güvenlik duvarı vb. kullanıyor musunuz? TURN oturum bilgilerinizi (root, SSH vb. değil) atar mısınız özelden kontrol edeyim. Komplike bir durum olduğunu sanmıyorum, muhtemelen port, ssl vb. bir durumdur.

1 Beğeni

Merhaba geri dönüşünüz için teşekkür ediyorum Muhammed Bey. Ekstra dış güvenlik duvarı kullanmıyorum. En azından ben bir şey yüklemedim sunucuya bu yönde. Port açmayı çok araştırdım ufw komutu ile yaptım ubuntu 20.04 te port açmayı. Acaba port olayında mı takıldım bilemedim.

Özel mesaj gönderme yerini bulamadım sitede. Profilinize giriyorum özel mesaj gönder diye bir yer göremiyorum. Özel mesaj nereden gönderiliyor? :blush:

Muhammed Bey özel mesaj gönderdim size.

turn.mesem.net olarak kurdum. /etc/turnserver.conf dosyasında
realm=mesem.net
şeklinde görünüyor.
turn.mesem.net olması gerekmez mi?
mesem.net üzerinde de bbb kurulu.

bbb çalışıyor ama turn server devrede mi emin olamadım.