Doncs la veritat és que amb els anys que fa que uso linux que no són pocs ja, havia sentit ha parlar moltes vegades d’eines com l’screen però no sé per quin motiu mai m’havia dedicat a mirar-les a fons. Doncs bé aprofitant que ara mateix estic a Andorra més sol que un mussol, que no fan res a la TV i que no tinc cap peli en DIVX per mirar al portatil m’he llegit un article de NOVELL que tenia descarregat sobre el tema de l’screen i realment m’he quedat sorprés de la potència i la de coses interessants que ens permet fer.
Havia pensat en reescriure el manual que acabo de llegir en anglès en català però crec que no val la pena perquè el manual és molt simple. Així que us recomano que el mireu: Turbocharge an SSH Connection with screen (cache local)a més és molt fàcil de llegir i ple de captures de pantalla. El que si que faré és argumentar-vos perquè l’heu de llegir i què té de bo l’screen.
Una de les avantatges que més m’han agradat és el fet de poder mantenir sessions amb aplicatius de linia de comanda sense que aquestes es perdin quan perdem una sessió remota. O sigui, que podem fer el mateix que fem amb la comanda nohup (man nohup) deixar aplicacions funcionant quan sortim de la sessió però a més aquestes aplicacions poden ser interactives i les podem recuperar quan vulguem. Bàsicament la diferència esta en que nohup llença comandes sense associar-les a un tty i screen treballa amb pseudo-ttys (pts).
L’altre avantatge que m’ha agradat molt és el fet de poder tenir multiples sub-consoles dins de la propia consola remota. O sigui, que només obrint un SSH (un sol socket) podem tenir més d’un programa funcionant a la vegada (encara que sigui interactiu) i podem anar canviant de l’un a l’altre sense haver d’obrir més sessions. En el document de NOVELL usen d’exemple 3 comandes simultanees: top, vi i ps. A més ens permet saltar d’una sessió a l’altre o fer coses tan espectaculars com partir la pantalla i veure la sortida de les dues aplicacions simultaneament.
La potència de la comanda no acaba aquí, podeu copiar i enganxar texte entre consoles i moltes altres coses així que us recomano que us passeu pel wiki del programa i aprofundiu en el tema si us ha agradat tan com a mi.
Tal com s’explicava a comesfa, el nostre mestre de les manualitats en Toni amb la incalculable ajuda del Jordi tal com explica el Toni al seu propi blog s’han currat una anteneta a base de Nesquik. Així que ja hem substituït un dels colls de d’ampolla que teniem a la xarxa per un enllaç tipus g que de moment rendeix a 36Mbps.
Hi ha una comanda dels routers Cisco que sempr se m’oblida de fet és una tonteria però cansat de perdre sempre 5min buscant-la quan la necessito m’he decidit a escriure aquest post al blog.
Quan tenim regles de DNAT, SNAT o simplement NAT a un router Cisco si aquesta regla està en ús no podem desactivar-la amb la típica instrucció:
no ip nat {inside | outside}
Ja que dona el següent error: Dynamic mapping in use, cannot remove així que el que primer hem de fer és el següent:
Així es diu aquesta foto que va fer l’Oriol Mercadé el nostre figura de la web de la TMB, que a més com ja comentava en aquell post va guanyar un concurs amb la mateixa i li van publicar en un llibre… guapa,eh!?
Aquest agost vaig ‘postejar’ el nou mapa de la xarxa de Torrelavit. Doncs bé com haureu vist en el gràfic els APs tenen en molts casos múltiples interficies virtuals i rutes estàtiques. Ja que degut a la naturalesa de la nostre petita i modesta xarxa ciutadana no ens encaixa gaire el tema de l’enrutament dinàmic per OSPF i coses d’aquestes tan xules. Així doncs, vam trobar-nos en el dilema de com posar més d’una IP per cada interficie, cosa que la interficie web del router no permet. A més per afegir rutes estàtiques sense usar un adreçament dinàmic com RIP2 o OSPF la interficie gràfica tampoc ens ho permet.
Per tal de solucionar aquests problemes i de centralitzar el sistema de configuració dels APs en un punt. El que hem fet és montar un servidor TFTP al firewall. Amb accés només de les IPs dels APs. Un bon manual per configurar el atftp en gentoo: Gentoo Linux based Netboot HOWTO (cache)mireu-vos només la secció: The tftpd Daemon.
Una de les coses interessants que hem fet és usar només un fitxer de configuració per tots els APs de forma que aquest script sigui prou espavilat per poder configurar les particularitats diferents de cada AP. Després us explico com ho hem fet. Abans d’entrar en materia també us comento que tot el que explico només ho hem provat amb Alchemy. Imagino que amb altres firmwares també es deu poder fer però no ho hem provat.
La primera dificultat és com dir-li al Linksys que després d’arrencar s’ha de connectar al servidor TFTP s’ha de baixar el fitxer de configuració i l’ha d’executar després de baixar-lo. A més el que no voliem és que pas del TFTP pogués fallar i l’AP quedes desconfigurat a l’espera de que el tornessim a resetejar. O sigui, que el TFT s’ha de repetir fins que aconsegueixi connectar-se i agafar el fitxer. Tampoc cal una solució perfecte però si amb un mínim de control d’errors.
Com sabreu, si accedim per telnet al Linksys podem fer un nvram show per veure les variables que es guarden a la NVRAM (non-volatile RAM) on realment es guarda la configuració de l’AP. Doncs bé la variable que concretament ens interessa és la rc_startup podem consultar el seu valor: nvram get rc_startup. Doncs bé el que nosaltres volem és col·locar el següent codi dins la variable:
while sleep 30s;do if ping -c 1 172.25.0.2>/dev/null; then tftp -g -l /tmp/s.sh -r s.sh 172.25.0.2; sh /tmp/s.sh; break; fi;done
Com podeu veure el codi el que fa és que cada 30s intenta descarregar per TFTP el fitxer s.sh i el guarda a /tmp després l’executa. Això es repeteix fins que es pugui completar el cicle amb èxit. Ara només queda fixar aquest codi dins de la variable rc_startup i després guardar el codi a la NVRAM.
Ho podem fer així:
nvram set rc_startup="while sleep 30s;do if ping -c 1 172.25.0.2>/dev/null;then tftp -g -l /tmp/s.sh -r s.sh 172.25.0.2;sh /tmp/s.sh;break;fi;done"nvram commit
Ara ja ens podem centrar en l’script en qüestió. Per complicar la cosa, aquí només explicaré com creem els alias de les interficies i les rutes estàtiques no posaré cap opció de firewalling ni de filtratge de MACs. Com he comentat la gràcia de l’script és que és el mateix per tots els APs de la xarxa, així que en algún lloc s’han de guardar els paràmetres pròpis de cada AP. Doncs bé per fer això hem fet un petit ‘trick’. Es tracta d’usar la interficie de definició de rutes estàtiques que té la interficie web per entrar totes les direccions que ens interessen.
Aquesta interficie gràfica l’usen els protocols dinàmics RIP2 i OSPF per definir rutes estàtiques. Si marquem la opció d’enrutament dinàmic com a ‘disable’ llavors podem afegir rutes a la configuració del sistema qu no s’executaràn degut al que acabo de dir, però si que estan guardades en la configuració. Això és el que aprofiarem per després recollir la informació i segons la lògica següent les usarem en el nostre script:
La lògica és molt senzilla, penseu que quan volem definir l’alias d’una interficie de xarxa ecencialment només ens cal la IP de la mateixa i la màscara. Així doncs en la interficie de de rutes estàtiques només haurem de definir aquestes dues dades si volem que la informació serveixi per declarar l’alias.
Si pel contrari el que volem afegir a la interficie és una ruta estàtica aquesta haurà d’usar un gateway. O sigui, una direcció de xarxa, una màscara i un gateway això ho interpretarà l’script per definir una ruta estàtica.
Amb aquest petit ‘trick’ ja tenim una interficie que ens permet de forma molt senzilla en cada AP per guardar-hi la informació que el diferenciarà dels seus veins. Després el que fa el nostre script s.sh és mirar les variables d’NVRAM on es guarden i tractar aquesta informació segons la lògica que he comentat anteriorment. A continuació us enganxo un tros del contingut del s.sh on podeu veure com es fa això.
# Rutes i interficies virtualsCOMPTADOR=0for AD in `nvram get static_route`;do IP=`echo $AD | cut -f 1 -d ":"` MASK=`echo $AD | cut -f 2 -d ":"` GW=`echo $AD | cut -f 3 -d ":"` IF=`echo $AD | cut -f 4 -d ":"` echo $IP $MASK $GW $IF # es un enllas punt a punt if [ $GW = "0.0.0.0" ]; then # creem les ips virutals de la interficie lan/wlan # trafic backbone COMPTADOR=`dc $COMPTADOR 1 + p` ifconfig br0:$COMPTADOR $IP netmask $MASK else # afegim rutes cap a trafic d'usuaris route add -net $IP netmask $MASK gw $GW fidone
Encara que sembli mentida el que més va costar en aquest script és implementar el comptador, ja que la shell del Alchemy és molt reduida i no ens permet implementar comptadors de forma directa. Per fer això varem trobar un petit paquet que va instal·lat al sistema que es diu dc, és semblant al bc la famosa calculadora en format CLI que porten els linux, però la sintaxi és una mica diferent. Així que el tema ens va fer suar una bon estona.
La resta de l’script no té cap misteri com podeu comprovar. Obviament és molt millorable i es poden integrar moltes més funcions, però com a introducció a la idea crec que ja he donat prou dades sinó trobo que ho complicaria massa. Així que espero que us sigui útil i si en voleu més o teniu algún dubte ja sabeu on sóc.
Doncs si nois, dues notícies en una… la més important o que com a mínim molts no esteu al corrent és que demà el Benja i jo ens n’anem a treballar a Andorra a montar un projecte de migració del sistema de recarrega de telèfons mòbils per caixers automàtics al país dels Pirineus. El projecte durarà uns 2 mesos i durant aquest temps estaré entre casa meva i Andorra amunt i aball, algunes setmanes totes allà altres quasi totes aquí, etc.
Com que la meva part del projecte es farà amb X25 i concretament amb XOT (X25 over TCP) he decidit enganxar alguns links sobre literatura d’aquest protocol tant pre-històric. De fet, quasi tots són documents de Cisco sobre el tema. Però he cregut que era un ‘remember’ molt autèntic. Com a dada cuirosa comentar que jo vaig ser una de les primeres persones del nostre país en implementar TCP/IP sobre AX25 (Amateur X25). O sigui, en passar paquest IP per una xarxa de paquet radio. D’això ja en fa un munt d’anys tants que quan passo de 10 em fa mal el cap pensar-ho.
Com a lectura més que curiosa us recomano llegir en que es basa el XOT i com s’usa.
XOT un exemple de com configurar el contrari, o sigui, X25 sobre TCP
Pels més curiosos els protocol XOT funciona pel port 1998tcp/udp i fins aquest projecte no sabia ni que existia, però el repte sembla interessant ja us diré què tal.
Un gràfic per aclarir les idees de com funciona el XOT segons l’estàndard comentat pel Pau en els comentaris, tot i que no sempre es fa segons l’estàndard ja que hi ha formes més òptimes/propietaries de fer-ho:
NOTA: no entenc perquè el XOT no és canvi a TOX, quan és el TCP que va sobre el X25 i no alrevés com indiquen les sigles. Però així ho he trobat a tot arreu.
Avui he entrat a la web de la TMB i quina gràcia que fa veure algú que coneixes a un lloc que no t’esperes… quin somriure que s’ha dibuixat a la meva cara al descobrir que fa 4 anys que dos amics meus són allà penjats 😉 de fet, fa quatre anys no tenia el plaer de coneixe’ls. Però avui ja ús he trobat 🙂
Per cert, bon viatge de tornada de Turquia, espero que els avions vagin bé sinó sempre li pots dir al pilot que et deixi conduir,eh! nano?? 😉
PD: a veure si t’animes i m’envies en digital la fotografia que t’han publicat al llibre de fotografia aquell tan guapo que em vas ensenyar Uri 🙂
La veritat és que no sé si algú ja hi havia pensat, jo crec que si però no ho he vist en cap manual i m’he trobat a molta gent que es queixava del mateix. Així que hi he pensat una solució que com dic imagino que més d’un ja hi deu haver pensat. Bé comencem explicant el problema:
El Linksys WRT54G si el fas treballar en mode client, jo només ho he provat de fer amb el firmware Alchemy, té problemes per enllaçar amb l’SSID que l’hi hem especificat i connecta al primer AP que troba tingui el nostre SSID o no. Així que a més d’un l’obliga a fer filigranes perquè enllaci a l’AP que l’interessa.
Doncs bé, el tema és tan senzill com aprofitar les funcionalitats de filtratge de MAC que porta el propi firmware. Per dir-li o bé que només pugui connectar a la MAC de l’AP que té l’SSID que ens interessa o bé, just el contrari. Podem indicar a quines MAC dels AP veins no volem que s’associï el nostre linksys.
Tonta la cosa,eh!? doncs a mi m’ha funcionat a la primera, a continuació us poso un screenshot on podeu veure on posar lo del filtratge de MACs.
En aquesta captura de pantalla es pot veure com li diem que només connecti a la MAC indicada. Que és la del AP al que vull connectar-me.
El dijous passat ja va arribar la Daphne de la seva estada a Xina estudiant el xinès i treballant a un hospital de Pequin. Tampoc em posaré a resumir el seu viatge, només dir-vos que li ha anat súper bé i que si voleu donar un cop d’ull a les fotos les teniu a l’album. De fet, no semblan pas del mateix viatge que varem fer ella i jo el passat setembre, és una Xina ben diferent la que ella ha estat vivint, la xina quotidiana i no la turística. Tot i que una gran conclusió compartida dels dos viatges continua sent: les coses a xina sempre són molt difícils, parlís xinès o anglès.
Jo de moment encara no he fet vacances, però alguna escapadeta farem ni que sigui un cap de setmana. Ja que a més ara em surt la feina per les orelles, però això també té el seu costat positiu encara que no sigui el de poder viatjar i descobrir nous racons.
Us he recomanat de tot des del meu blog: restaurants, viatges, racons on perdreus, pel·lícules, llibres… però em sembla que en més de 5 anys que porto escribint encara no us haviar recomanat mai un documental. Doncs la setmana passada vaig veure al canal 33 un documental anomenat The Corporation i avui tot repassant el bloglines resulta que el que vaig veure va ser el segon capítol d’una serie de 3 capitols d’aquest documental. Això ho he descobert gràcies al blog microsiervos on podeu trobar moltíssima informació del documental en el post: The Corporation.
No hem posaré a explicar tot el que diuen ja a microsieros, primer perquè diria que s’ho han ‘currat’ molt i jo no tinc ni tantes ganes d’escriure ni tanta paciència. El que si que us vull dir és que crec que això ho haurien de posar a l’escola, es diuen veritats com a temples i es fan afirmacions que sovint sorprenen però que si pensem detingudament són totalment certes. Una que em va fer molta gràcia va ser:
Si una empresa és una persona juridica i les persones poden patir enfermetats inherents al fet de ser persona, per exemple, enfermetats piscològiques. Salvant les diferencies podriem intentar aplicar les pautes de comportament d’un ‘assassi en serie’ (o psicopata, no recordo el que van dir) i una corporació cumpliria totes les pautes.
Per exemple: menys preu pels seus semblants, no tenir consciència del patiment o del dolor causat als altres, poc respecte pel que l’embolta, fer prevaldre els seus interessos per sobre de qualsevol altre cosa, etc.
Bé doncs ja teniu algo amb que entretenir-vos, no sé si per alguna xarxa p2p correrà el documental o si a la web del 3alacarta ho podreu veure en viu. Però si el troveu mireu-lo.