Monthly Archives: febrer 2011

Dia 8: segona part: escenari Net i NVLC

He creat un escenari que es tracta d’una xarxa local en què hi ha un servidor i un host. El servidor executarà l’icecast2 amb l’ices2 i el client escoltarà el servidor.

Codi de l’escenari:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE vnuml SYSTEM "/usr/share/xml/vnuml/vnuml.dtd">

<vnuml>
  <global>
    <version>1.8</version>
    <simulation_name>net</simulation_name>
    <automac/>
    <vm_mgmt type="none" />
    <vm_defaults exec_mode="mconsole">
       <filesystem type="cow">/usr/share/vnuml/filesystems/root_fs_tutorial</filesystem>
       <kernel>/usr/share/vnuml/kernels/linux</kernel>
       <console id="0">pts</console>
       <!-- <console id="0">xterm</console> -->
    </vm_defaults>
  </global>

  <net name="Net0" mode="uml_switch" hub="yes" sock="/var/run/vnuml/Net0.ctl" />

  <vm name="server">
    <if id="1" net="Net0"></if>
    <exec seq="start" type="verbatim">echo "1" &gt;/proc/sys/net/ipv4/conf/all/accept_source_route</exec>
		<exec seq="netconf_eth_mask24" type="verbatim">ifconfig eth1 192.168.0.32/24</exec>
		<exec seq="netconf_eth_mask25" type="verbatim">ifconfig eth1 192.168.0.32/25</exec>
		<exec seq="netconf_eth_mask26" type="verbatim">ifconfig eth1 192.168.0.32/26</exec>
  </vm>

   <vm name="host">
    <if id="1" net="Net0"></if>
    <exec seq="start" type="verbatim">echo "1" &gt;/proc/sys/net/ipv4/conf/all/accept_source_route</exec>
		<exec seq="netconf_eth_mask24" type="verbatim">ifconfig eth1 192.168.0.96/24</exec>
		<exec seq="netconf_eth_mask25" type="verbatim">ifconfig eth1 192.168.0.96/25</exec>
		<exec seq="netconf_eth_mask26" type="verbatim">ifconfig eth1 192.168.0.96/26</exec>
  </vm>  
</vnuml>

Amb el programari disponible al sistema de fitxers, des del host no puc arribar a sentir l’àudio. Així que el que faré, serà instal·lar el VLC al sistema de fitxers. Amb el VLC ve una versió de consola, que es diu nvlc. Utilitzaré aquesta versió ja que sinó tindré problemes amb el simctl.

cd /usr/share/vnuml/filesystems
mount -o loop root_fs_tutorial /mnt/loop
mount -t proc none /mnt/loop/proc
chroot /mnt/loop
apt-get install vlc

Tancar el terminal. No sé per què però en el filesystem de les màquines virtuals, a usr/bin no apareix el nvlc. L’afegeixo manualment, obrint un nou terminal:

cd ~/usr/bin
cp nvlc /mnt/loop/usr/bin
umount /mnt/loop/proc
umount /mnt/loop

Ara ja es pot iniciar la simulació:

simctl net start
simctl net get host
simctl net get server

en el terminal server configuro la interfície eth1 i inicio el servidor:

root
xxxx
ifconfig eth1 192.168.0.1 netmask 255.255.255.0
/etc/init.d/icecast2 start
ices2 /etc/ices2/ices-playlist.xml

La màquina server

a la màquina host configuro la interfície eth1 i intento captar el flux provinent del port 8000 del servidor (192.168.0.1):

root
xxxx
ifconfig eth1 192.168.0.254 netmask 255.255.255.0
nvlc http://192.168.0.1:8000/example1.ogg

un cop fet això m’apareix el NVLC però no se sent res. El terminal del host es queixa dels ALSA:

Error dels drivers d'àudio

així que demà tocarà investigar cap a aquesta direcció…

Marc

Anuncis

Dia 8: Modificant el sistema de fitxers de les VM

Ei, m’he posat a modificar el sistema de fitxers de les màquines virtuals per tal de poder posar la ràdio. He de modificar els fitxers que ahir vaig crear/modificar.Anem per parts:

Primer montaré el sistema de fitxers utilitzat per, un cop muntat, afegir-hi els arxius clau:

cd /usr/share/vnuml/filesystems
mount -o loop root_fs_tutorial /mnt/loop
mount -t proc none /mnt/loop/proc
chroot /mnt/loop

Un cop muntat el sistema de fitxers, al nou directori arrel(/mnt/loop) ja hi tenim les carpetes necessàries com ara /etc o /var. Considerant els fitxers de configuració penjats ahir, ices i icecast, s’ha de copiar el text i passar-los a un arxiu .xml. Un cop es tenen els fitxers xml, el fitxer icescast.xml ha de ser copiat a /etc/icecast2, substituint l’arxiu anterior ja existent.

Les explicacions parteixen del fet que a l’Escriptori de l’usuari hi ha els fitxers icecast.xml i ices-playlist.xml i la carpeta music amb fixers ogg a dins:

Invocant un terminal nou:

cd ~/Escriptori
sudo cp icecast.xml /mnt/loop/etc/icecast2/

S’ha de canviar el paràmetre ENABLE a true:

cd /mnt/loop/etc/default
gedit icecast2

Posar el valor enable a true i desar.

En un nou terminal, crearé les carpetes necessàries pel bon funcionament de l’ices2, al sistema de fitxers, segons explica el tutorial utilitzat ahir:

cd ..
cd ..
cd /mnt/loop/
sudo -s
chroot /mnt/loop
mkdir /var/log/ices
mkdir /etc/ices2
mkdir /etc/ices2/music

En un nou terminal, copiaré el fitxer ices-playlist.xml (el fitxer ices.pdf, transformat a xml i canviat de nom) a /etc/ices2 del sistema de fitxers muntat (o sigui a: /mnt/loop/etc/ices2). A més afegiré els fitxers de música a la carpeta mnt/loop/etc/ices2/music

cd ~/Escriptori
sudo cp ices-playlist.xml /mnt/loop/etc/ices2
cd music
sudo cp -r *.ogg /mnt/loop/etc/ices2/music/

per últim s’ha de crear un fixer .txt on hi hagi les cançons de la llista. En un nou terminal escriu:

cd /mnt/loop/etc/ices2/
echo /etc/ices2/music/pista1.ogg >> playlist.txt
echo /etc/ices2/music/pista2.ogg >> playlist.txt
echo /etc/ices2/music/pista3.ogg >> playlist.txt
echo /etc/ices2/music/pista5.ogg >> playlist.txt

Arribats a aquest punt, ja tindriem el sistema de fitxers apunt. Ara s’ha de desmuntar el sistema de fitxers des d’un nou terminal:

umount /mnt/loop/proc
umount /mnt/loop

Si falla la simulació, pot ser que s’hagi de netejar la carpeta .vnuml de la carpeta d’usuari. S’eliminen els arxius de dins dels directoris simulations i networks i es torna a iniciar la simulació.

Dia 7: la ràdio sona

Després de suar sang, he aconseguit fer sonar la ràdio. El problema principal que he tingut ha estat fer servir uns fitxers .ogg que estaven fets caldo i no sonaven…ha sigut un etfelicitofill…he configurat l’icecast2 i l’ices2 a partir d’un tutorial que està de conya. Ara el meu proper pas és fer-la sonar amb .mp3 (l’ices2 només crea fluxos pel servidor per fitxers .ogg) amb l’ices0 i aconseguir, un cop instal·lat el software al sistema de fitxers de les màquines virtuals, crear la ràdio “virtual”.

Aquí deixo el fitxer de configuració de l’icecast2 i de l’ices2.

Marc

Dia 4: VNUML i software per fer streaming

Iep!
un cop instal·lat el VNUML, he repassat les pràctiques de XCT per anar refrescant i entenent l’entorn.
Com que al filesystem de l’entorn que tinc no tenia cap programa instal·lat per fer streaming, hi he hagut d’afegir l’IceCast2 i l’IceS2.
Per afegir els programes IceCast2 i IceS2 al sistema de fitxers de les màquines virtuals:

sudo cd /usr/share/vnuml/filesystems
mount -o loop root_fs_tutorial /mnt/loop
mount -t proc none /mnt/loop/proc
chroot /mnt/loop
apt-get update
apt-get install icecast2 ices2
exit
exit

a un nou terminal:

umount /mnt/loop/proc
umount /mnt/loop

Un cop fet això, a les màquines virtuals ja es poden executar els programes

Marc

Dia 1: ordenar tones i tones de conceptes nous

Ja sé més coses sobre el projecte. La seva gestació serà feta a partir d’un entorn virtualitzat: o sigui, que aniré treballant sobre una sèrie de màquines virtuals per tal d’anar ideant el producte final. Mitjançant l’eina VNUML (Virtual Network User Mode Linux) simularé un servei d’streaming d’àudio (una ràdio?) i depèn de com vagi el progrés de tot plegat faré una implementació física…Però primer de tot, m’he de llegir un tou de documentació per intentar entendre ben bé què és VNUML, els escenaris i com no, anar-me familiaritzant més i més amb el Linux.

  • VNUML: És una eina de virtualització que corre sobre SO Linux. Serveix per fer tests de xarxes dissenyades, així que és un entorn de desenvolupament ideal pel projecte. A la carrera, el vam utilitzar en les pràctiques d’Arquitectura de xarxes. Com a eina de virtualització, pots crear diferents xarxes de computadors amb les seves característiques pròpies (escenaris).
  • SIMCTL: És una versió millorada del VNUML. Serà l’entorn utilitzat.
  • Comanda ifconfig: És una comanda de sistemes Linux que serveix per configurar, controlar i gestionar els paràmetres d’una interfície TCP/IP. Considerant que tenim una interfície de xarxa que es diu eth1:
    ifconfig #mostra les característiques de les interfícies de xarxa habilitades
    ifconfig eth1 down #deshabilites eth1 com a interfície de xarxa en el teu sistema
    ifconfig eth1 up #habilites eth1 com a interfícies de xarxa en el teu sistema
    ifconfig -a #veus totes les interfícies de xarxa: tan les habilitades com les deshabilitades
    ifconfig eth1 192.168.1.10 #assignes la direcció IP 192.168.1.10 a la interfície eth1
    ifconfig eth1 192.168.1.10 netmask 255.255.255.0 broadcast 192.168.1.255 #assignes la direcció IP 192.168.1.10 a la interfície eth1, li dónes la màscara de xarxa 255.255.255.0 i dius que té la IP de broadcast 192.168.1.255
    
    

de moment, anar fent simulacions de xarxes, canviant el fitxer xml del vnuml…

Marc

%d bloggers like this: