diumenge, 26 d’octubre del 2008

WRT54G v5 amb DD-WRT en mode repetidor.

Ja feia un dies que no escrivia res... encare no tinc el servidor acabat, estic construint una caixa amb el material que vaig trobat i ara encare no se com "aguantar" els discs durs i la font d'alimentació.

Per no perdre les meves fabuloses habilitats literàries convé que escrigui un poc. Fa poc vaig muntar un ordinador a la meva germana que comparteix amb el meu germà. El problema es que l'ordinador està posat just a la part oposada de la casa d'on tinc el router i no arriba la senyal wifi. Vaig considerar la opció de tirar un cable però com és d'esperar és un merder, així que he decidit investigar com transformar el WRT54G en un repetidor de la senyal del D-Link 624T.

Amb els firmwares de casa no crec que es pugui fer res així que haurem de pegar mà de la fabulosa comunitat del programari lliure. El firmawre elegit és el DD-WRT per la seva senzillesa d'us, he estat temptat de posar el OpenWrt però no hi vull ni puc perdre gaire temps així que anirem a "lo fàcil", interfícies de configuració Web amb perfils ja predefinits.

Hem de tenir amb compte que el WRT54G ós la versió 5 que per qui no ho sàpiga va ser el primer de la família en no portar Linux degut a la retallada de hardware per abaratir costos (tant sols té 2 MB de memòria RAM). Això implica que hem de instal·lar la versió Micro del DD-WRT i per tant no tendrem tantes funcionalitats, tot i així en tenim moltíssimes més que amb el firmware oficial.

Abans de començar dir que tot el procés esta fet desde GNU/Linux (una Debian Lenny concretament) connectat amb un cable ethernet directament al router. No es recomeneable fer ho per wifi ni en un moment que hi pugui haver talls elèctrics ja que la interrupció de segons quina operació pot ser fatal per el router.

Començam baixant el fitxers vxworks_prep_v03 i vx_works_killer_v06 per a el·liminiar el sistema operatiu original (VxWorks) i preperar-lo per rebre el Linux. També hem de baixar la imatge del nou sistema DD-WRT, es la 24 SP1. Crec que la 23 no portava el perfil per defecte per fer de repetidor i l'hauríem de configurar a mà, cosa que no desitjam.

Un cop baixats els descomprimim:

$ unzip vxworks_prep_v03.zip
$ unzip vxworks_killer_g_v06.zip

Convé que instal·lem el paquet tftp ja que l'haurem de menester per enviar el firmware al router:

# aptitude install tftp

Es recomanable que ens assignem una ip estàtica ja que durant el procés perdrem la que ens dona el router per DHCP. Si emprau flowerpower distros com un servidor pensau a matar el Network-Manager abans de assignar-vos la IP per evitar que vos la canvii.

# kill -9 `ps aux | grep Net | awk '{ printf "%s ", $0}'`

I ens assignam una IP a poder ser del rang que sol emprar el router:

# ifconfig eth0 192.168.1.2 up

Comprovam que va bé amb un ping:

$ ping 192.168.1.1

I hauria de sortir alguna cosa com:

PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=255 time=2.99 ms

Ara toca anar a la web de configuració del router, obrim el navegador i posam 192.168.1.1 (per defecte). Si no teniu posada contrasenya la de casa es "admin"

Ara anau a la pestanya "Administration" i després "Firmware Upgrade" aquí heu de pujar el fitxer prep.bin (ja descomprimit) i pitjau aplicar. NO reinicieu el router durant el procés, esperau un minut o dos a que acabi i es torni la finestra del navegador de color blanc, llavors treis el connector de l'alimentació i el tornau a connectar.

Si tornau a accedir al a mateixa IP veureu una pantalla molt simple que vos deixa pujar un altre fitxer, ara toca posar el killer. Heu d'esperar que surti una finestra que posa Succes. Hi ha navegadors que a vegades no funcionen, anau provant, Firefox, Konqueror, Epiphany... A mi amb el Iceweasel 3.0.3-2 m'ha funcionat.

Un cop acabat (hagi sortit el Success) tornau a reiniciar el router tallant l'alimentació. El LED de power del router hauria d'estar pipellejant, es l'hora de servir el nou frimware per tftp. Obrim una consola, ens situan a la carpeta on tinguem el firmware i entrem al client de tftp.

$ tftp 192.168.1.1 69
tftp> binary
tftp> put dd-wrt.v24_micro_generic.bin

I ens dirà:
Sent 1757184 bytes in 2.5 seconds

Ara heu d'esperar que el router es reinicii tot solet, no tarda gaire, es molt important deixar que faci el proces tot sol, en cas reiniciar-lo abans d'hora tendreu un tepija papers blau i negre moníssim.

En haver esperat uns segons podeu provar d'accedir al navegador a 192.168.1.1 i trobareu la interfície del DD-WRT que us demana usuari i contrasenya...

Ja teniu el vostre flamant WRT54Gv5 amb un DD-WRT!

Ara toca fer que el Router actui com a repetidor o "Repeater Bridge", això vol dir que es conectarà a un altre router que serveix les direccions IP i repetirà la senyal wifi (amb un altre nom) a la vegada que permet que es connectin clients per els ports de xarxa cablejada. Aquest diagrama es bastant explicatiu:
A la wiki de DD-WRT estan molt ben explicades les passes a seguir per configurar el mode repetidor de manera fàcil i ràpida. Vos les pos tal qual (només he canviat la ip per defecte del router posant la 192.168.1.254, m'agrada tenir la .2 i succsesives per les meves màquines amb ip fixa):

  1. Open the Wireless -> Basic Settings tab
    • Wireless Mode : Repeater Bridge
    • Wireless Network Mode : Match Primary Router
    • Wireless Network Name(SSID) : Match Primary Router
    • Wireless Channel : Match Primary Router
    • Wireless SSID Broadcast : Enable
    • Network Configuration : Bridged
    • Save Settings
  2. Virtual Interfaces Section
    • Add
    • Wireless Network Name(SSID) : Different from Primary Router
      • [NOTE] - being a bridged setup and all DHCP is being done by the host AP - it is possible to use the same SSID as the Host AP for this Virtual SSID name. This will allow roaming hand-offs between the 2 units. redhawk Confirmed --ChuckMcB 00:34, 31 March 2008 (CEST)
      • [NOTE2] - Some have random disconnects and/or no connection if the SSID's are the same. If one way doesn't work for you...try the other
    • Wireless SSID Broadcast : Enable
    • AP Isolation : Disable
    • Network Configuration : Bridged
    • Save Settings
  3. Open the Setup -> Basic Setup tab
    • Connection Type will be: Disabled
    • Set STP for Disabled (Enabled sometimes can cause connection problems) redhawk
    • IP Address : 192.168.1.254 (Assuming Primary Router IP is 192.168.1.1)
    • Mask : 255.255.255.0
    • Gateway: 192.168.1.1 (again assuming Primary Router IP is 192.168.1.1)
    • Assign WAN Port to Switch : Checked or Unchecked - your choice
    • Save Settings
  4. Open the Security -> Firewall tab
    • Uncheck all boxes
    • Disable SP1 firewall
    • Save Settings
  5. Open the Administration tab
    • APPLY Settings

S'ha de puntualitzar una cosa, el D-Link treia la senyal encriptada amb una WPA2, per tant un cop seguits tots els passos de la wiki de DD-WRT s'ha d'anar a "Wireless", "Security" i a la primera xarxa configurar tots els paràmetres ben igual com estan al router que emet la senyal original. A mí la WPA2 no funcionava així que ho he posat amb una WPA a seques (s'ha de canvar als dos routers). Si es vol encriptar també la senyal repetida basta configurar la segona interficie de xarxa virtual, és recomenable emprar la mateixa encriptació ja que a vegades el router no pot amb dues de diferents i menys la versió v5 del WRT que ja he dit que estava minvat de hardware.

No puc evitar comentar que la interfície m'ha encantat, la quantitat d'opcions i funcionalitats són impressionants, sincerament si fos un tècnic de Cisco-Linksys em cauria la cara de vergonya de la bírria de firmwares que fan, no hi ha punt de comparació. Els de DD-Wrt han fet una gran feina, no tant sols la que no es veu de programació (que ja em constava que estava molt bé) sinó també a nivell de Interfície i configurabilitat.
També estic impressionant de la bona documentació que tenen a la wiki tots els temes ben explicats indexats i amb molt bons diagrames. Crec que es un dels millors exemples d'una comunitat de programari lliure que es pot tocar d'aprop i veure la gran feina que fan (basta comparar el firmware del router amb el de l'original).

Si els hi voleu donar suport podeu considerar fer una donació, jo sense cap dubte n'hi pens fer una, si hagués hagut de comprar un repetidor m'hi hagués deixat un bon dineral.

Referències:
http://www.bitsum.com/openwiking/owbase/ow.asp?WRT54G5_CFE
http://dd-wrt.com/wiki/index.php/Repeater_Bridge

diumenge, 5 d’octubre del 2008

F(blogger=mussolblau) = cos(t)

Vaig i venc talment una ona, ja feia dies que no escrivia res i no precisament per falta de temes... del dia 21 d'agost a ara hi ha un món, exàmens de setembre, inici de les classes, OpenPDP i un llarg etcètera. No he posat res per aquí perquè com diuen "lo bo es enemic de lo millor" i volia posar entrades ben fetes de cada una de les coses però clar fer això du temps i estava massa apassionat fent les coses com per "documentant-les".

Dels exàmens no hi ha gaire a dir, per una banda puc dir que he fet el millor setembre de la meva vida (si val ha estat el segon, tampoc és que hi hagi gaire per comparar...) aprovant dues assignatures, però si es vol cercar el costant negatiu podríem dir que ha estat un desastre si es té amb compte el nombre que n'hauria d'haver aprovat... Però això no ha impedit que agafes totes les assignatures de tercer!

En quan a l'inici de les classes tot va bastant bé tot i que l'horari es penós, dens, mal distribuït i amb solapaments, què més es pot demanar? Tot i així les assignatures en general m'agraden molt més que en cursos passats, ja veurem si opín el mateix d'aquí a uns mesos, només esper poder dedicar el temps que m'agradaria dedicar-les-os-hi (I love pronoms febles).

Continuant amb esdeveniments de l'àmbit acadèmic cal destacar que amb un parell de companys de classe, en Marc, Pau, Toni, Hugo i un servidor (vull dir jo, no una maquina dedicada que s'encarrega de... bé ja m'enteneu) hem començat un projecte anomenat OpenPDP que es una "suite" de desenvolupament per el PDP-11, una màquina dels anys 60 que els alumnes de primer de informàtica empren per a aprendre a programar en assemblador degut a la seva senzillesa (ortogonalitat); si no vaig malament en Toni en va escriure un parell de coses ja fa temps, per lo vist això de l'emulador de PDP11 es un tema recurrent en els alumnes d'informàtica, esperem que aquest arribi al final.

El tema es que per escriure i executar els programents del PDP11 s'ha d'emprar una "suite" o emulador que només esta disponible per el Mac OS 7 i aquest només el podem emprar si posam un emulador anomenat BasiliskII al nostre ordinador. Com podeu suposar tant d'emulador no es gaire còmode ja que la distribució de teclat del Mac es diferent a l'igual que la codificació dels fitxers de text. Tot això fa que la feina de "programar" i practicar amb el PDP-11 es vegi plena d'obstacles que en principi no tenen res a veure amb el que es vol aprendre. A tots ens va passar que en el moment àlgic de concentració on treus l'arrel del teu programa en assemblador resulta que no saps com re-dimonis es posa aquell miserable símbol amb el teclat del Mac i com es d'esperar en aquestes situacions perds tot el climax i poden conduir (i condueixen) a transtorns de locura transitoris, es per això decidirem escriure aquesta "suite" que permet escriure i executar directament el codi sense haver de emprar emuladors, podent editar el codi amb qualsevol editor de text i emprant la fabulosa distribució de teclat a la que estem acostumats (ah! i el clic dret del ratolí ;-) ).

El projecte el podeu trobar aquí, esta escrit en python i de moment podem dir que NO funciona, però hi ha "molta" cosa escrita i només es qüestió d'arreglar errades i picar un poc més de codi, personalment crec que el desenvolupament es molt ràpid, en qüestió de dies la cosa pot ser mínimament funcional i esperam que aquest curs els de primer ja el puguin emprar.

Ja per acabar comentar que estic muntant un servidor casolà el qual esper que d'aquí a poc sigui el protagonista d'un parell d'entrades on explicaré tant la construcció física i elecció de components (a l'igual que l'entrada del disc SSD) com la configuració de cada un dels serveis (ftp, web, proxy, email...)

Salut i fins aviat! (amem si es vere :-P)