[Guide] Kör Mumble-server i din router eller NAS (eller brödrost)
Tänk följande scenario: Ett gäng kompisar som tycker om att spela dataspel och gärna LAN-ar då och då när tillfälle bjuds men annars har en/flera kvällar i veckan då man träffas över nätet och då hänger i Teamspeak/Ventrilo/Mumble och samtalar. Ofta kör någon i gänget snackservern ifråga antingen på sin egen speldator eller på någon server i en garderob hemma. Om den körs på speldatorn uppstår problem med att denna oftast inte är igång om personen ifråga inte kan vara där. Om den körs på en server så funkar det ju fint men dessa drar i regel förhållandevis mycket ström samt tar upp plats.
Jag kan tänka mig att ovanstående scenario är relativt vanligt, särskilt bland besökare på detta forum...
Tänk dig då att du istället kan köra snackservern på din router eller NAS. Detta har uppenbara fördelar; den är alltid igång, drar lite ström och den har gott om outnyttjad kapacitet. Detta är möjligt med mjukvaran uMurmur, som är en alternativ, minimal implementation av Murmur, som serverdelen till Mumble kallas.
Jag går igenom huvuddragen för att fixa detta här. Vissa steg kräver en del kunskap om Linux och nätverkande som jag inte kommer gå igenom i detalj.
Jag måste förstås lägga in en disclaimer om att jag ej tar på mig något ansvar om du lyckas tegelstena din router genom att följa denna guide.
1. Ordna hårdvara
Ta reda på om din router kan husera ett alternativt router OS. Det finns ett antal att välja bland. DD-WRT är populärt, men jag har själv aldrig provat detta. Ett annat alternativ är en Tomato-variant. Själv kör jag en TP-Link TL-1043ND med OpenWRT Backfire 10.03.1 på vilket fungerar bra för mig.
Tomato och OpenWRT har färdiga paket för installation av uMurmur. DD-WRT behöver en del extra arbete för att installera paket från OpenWRT.
Om du har en Synology-NAS behöver du inte installera något alternativt OS. Det finns det färdiga paket att installera via http://www.synocommunity.com/
Andra tänkbara alternativ att köra på är t.ex. Raspberry Pi som ju kan köra Arch Linux vilket har färdiga paket. Jag har även sett att någon portat till Xtreamer Sidewinder (mediaspelare).
I stort sett allt som kan köra någon variant av Linux eller *BSD kan användas, och det finns ju numera mycket att välja på.
Värt att notera i sammanhanget är vilka bibliotek som krävs:
PolarSSL eller OpenSSL
libconfig
libprotobuf_c
Länkar:
Tomato by Shibby: http://tomato.groov.pl/
DD-WRT: http://www.dd-wrt.com
OpenWRT: https://openwrt.org/
Arch Linux: http://aur.archlinux.org/packages.php?ID=38983
2. Installera
Installation skiljer sig väldigt mycket åt beroende på vilket OS som det görs under. Jag går igenom huvuddragen för hur en installation görs på kommandoraden under OpenWRT:
# opkg update
# opkg install umurmur-polarssl
Färdigt!
Om du kör OpenWRT version Backfire 10.03.1 så får du då ned en något äldre version av uMurmur (0.2.8). För att få senaste kan man ladda ned paket manuellt från ‘trunk’-repositoryt:
http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/
Byt ut ‘ar71xx’ mot din relevanta arkitektur. Det krävs då även att biblioteken som används laddas ned från samma ställe: libpolarssl/openssl, libconfig samt libprotobuf_c.
Efter dessa är nedladdade, kopiera med t.ex. WinSCP till routerns /tmp/ bibliotek och installera sedan varje paket för sig:
# opkg install libpolarssl_1.1.3-1_ar71xx.ipk
# opkg install libconfig_1.4.8-2_ar71xx.ipk
# opkg install libprotobuf-c_0.15-1_ar71xx.ipk
# opkg install umurmur-polarssl_0.2.10-1_ar71xx.ipk
Du kan förstås även ta ned dessa direkt från routern med wget:
# cd /tmp
# wget http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/...
etc...
Om du i stället kör DD-WRT måste ‘optware’ aktiveras på ett för mig okänt sätt. DD-WRT har en wiki som det bör finns instruktioner i. Därefter kan paket från OpenWRT användas. Då behöver man ta ner paketen manuellt, förslagsvis från det s.k. ‘trunk’-repositoryt (se ovan) för att få senaste version. Mer info om detta här: http://code.google.com/p/umurmur/wiki/DDWRT
För installation under andra OS får jag hänvisa till deras resp. informationskanaler.
3. Konfigurera
Konfigurationen görs på hederligt manér via en textfil. Jag länkar till wikin som bör täcka allt: http://code.google.com/p/umurmur/wiki/Configuring02x
4. Test
Starta servern:
# /etc/init.d/umurmur start
Kolla loggen. Under OpenWRT görs det med:
# logread
Något liknande detta bör visas:
Aug 14 22:28:06 router daemon.info uMurmurd[18918]: INFO: PID-file: /var/run/umurmurd2.pid
Aug 14 22:28:06 router daemon.info uMurmurd[18918]: INFO: PolarSSL library version 1.0.0 initialized
Aug 14 22:28:06 router daemon.info uMurmurd[18918]: INFO: Setting default channel 'COH'
Aug 14 22:28:06 router daemon.info uMurmurd[18918]: INFO: Adding channel 'COH' parent 'Root'
Aug 14 22:28:06 router daemon.info uMurmurd[18918]: INFO: Adding channel 'Allies' parent 'COH'
Aug 14 22:28:06 router daemon.info uMurmurd[18918]: INFO: Adding channel 'Axis' parent 'COH'
Aug 14 22:28:06 router daemon.info uMurmurd[18918]: INFO: No channel links found in configuration file.
Aug 14 22:28:06 router daemon.info uMurmurd[18918]: INFO: Setting SCHED_RR prio 1
Aug 14 22:28:06 router daemon.info uMurmurd[18918]: INFO: Bind to *:64738
Aug 14 22:28:06 router daemon.info uMurmurd[18918]: INFO: uMurmur version 0.2.10 ('Bats in the Belfry') protocol version 1.2.3
Aug 14 22:28:06 router daemon.info uMurmurd[18918]: INFO: Visit http://code.google.com/p/umurmur/
5. Öppna brandvägg
För att dina vänner skall komma åt servern måste brandväggen förstås öppnas på rätt port. Mumble-protokollet körs som standard på port 64738, både UDP och TCP. Om du kör uMurmur på routern skall alltså dessa portar öppnas för inkommande trafik. På kommandoraden under OpenWRT lägger man då till följande till filen /etc/config/firewall:
config 'rule'
option 'src' 'wan'
option 'dest_port' '64738'
option 'target' 'ACCEPT'
Och ladda därefter om brandväggskonfigurationen:
# /etc/init.d/firewall reload
Om du istället kör på något bakom routern måste port 64738 vidarebefordras (forwardas) till vederbörandes IP-adress.
6. Aktivera
För att servern skall starta vid uppstart bör följande göras under OpenWRT:
/etc/init.d/umurmur enable
Det var allt. Hoppas det fungerar. Frågor om annat än själva guiden kan med fördel tas på mail-listan. http://groups.google.com/group/umurmur-general
Ha det kul!