Projet

Général

Profil

Openwrt » Historique » Version 60

Version 59 (Laurent GUERBY, 16/04/2012 19:09) → Version 60/383 (Laurent GUERBY, 17/04/2012 17:14)

{{>toc}}

h1. Openwrt

h2. Gestion multi internet

Trouver comment gérer son reseau local et sa connexion quand on a plusieurs acces
- TSF tetaneutral.net
- ADSL tetaneutral.net
- ADSL ou fibre ou cable autre opérateur
- wifi ouverts des voisins

Quels sont les objectifs ?
- simple redondance avec bascule manuelle ou automatique
- agrégation des débits
- sélection de l'acces selon le traffic
- portail captif / acces des autres membres ?
- autres objectifs ?

Pour faire du failover ou du load balancing de lien internet facilement avec openwrt:
* http://wiki.openwrt.org/doc/uci/multiwan
* screenshot interface luci: https://forum.openwrt.org/viewtopic.php?pid=106310#p106310

Références
- [[Test_OpenWRT_sur_TP-LINK_WR-1043ND]]

h2. Exemples concrets

h3. Chez Laurent GUERBY

La situation est la suivante :

- je capte un signal Free Wifi d'un voisin (2.4 GHz)
- je capte un signal SFR Public Wifi d'un voisin (2.4 GHz)
- je capte un signal TSF (5 GHz)
- je n'ai pas d'ADSL ou RTC (pas de ligne cuivre activée)
- j'ai un code d'acces Free Wifi (via famille)
- j'ai un code d'acces SFR Public Wifi (via famille)
- j'ai un abonnement tetaneutral.net sur le signal TSF

Bref si je mets deux clients 2.4 GHz en plus de ma Nanostation LocoM5 TSF j'ai 3 WAN possibles chez moi.

h2. Alix

Via Cédric qui en a un.

* http://pcengines.ch/alix.htm
* http://www.pcengines.ch/alix2d13.htm

Elles sont intéressantes pour leur faible consommation (alimentable
en POE) et leur large support d'OS. Elles sont aussi un peu plus
chères (>100 euros) que les petits routeurs grand public et peut-être
de conception vieillissante.

Les perfs sont correctes. Un lien a 45Mb/s consomme ~30% CPU mais on
plafonne à ~17Mb/s avec OpenVPN, ~21Mb/s sans encryption. Il serait
intéressant de mesurer les perfs avec un kernel supportant le geode AES.
Ce n'est pas possible sans un kernel custom sur debian. Affaire à suivre.

References :

* http://www.i4wifi.eu/alix-2d13-lx800-500mhz-256mb-1x-minipci-3x-lan-usb-i2c-com2_d2191.html
* http://www.gooze.eu/alix-2d13-pc-engines-kit

Utilisation de la crypto API :

* http://carnivore.it/2011/04/23/openssl_-_af_alg

h2. TP-Link

* Note: desactiver la reception de DNS par DHCP et les mettre en dur pour eviter les plantages (astuce Cyril GOUSSE Saint-Gaudens)

h2. Comtrend

Via Cyril qui en a un a Saint-Gaudens. Autour de 50 euros si commande en nombre.

* Connexion ADSL,
* 4 ports LAN que l'on peux convertir à la volée en WAN,
* 2 ports FXO pour brancher des téléphones VoIP (SIP) / Prise en charge du routage des appels sur la ligne RTC FT (dialplan personnalisable),
* Support clés 3G ou imprimante USB.

Specifications :

* attachment:Configuration_du_Port_LAN_en_Port_WAN.pdf
* attachment:Datasheet.pdf
* attachment:Documentation_lignes_de_commandes.pdf
* attachment:Documentation_generale.pdf

h2. OpenBSD

Pour ceux qui veulent gérer le multi-homing avec un autre système, OpenBSD a une FAQ sur le multipath avec PF:

* http://www.openbsd.org/faq/faq6.html#Multipath
* http://www.openbsd.org/faq/pf/pools.html#outgoing

Matthieu compte expérimenter avec cela sur son routeur Soekris (http://soekris.com) bientot.

h2. DSL

ADSL
wiki openwrt: http://wiki.openwrt.org/tag/adsl2plus?do=showtag&tag=tag%3Aadsl2plus

<obinou> hello guerby ! On a une page pour le matériel potentiellement intéressant à acheter pour ttn ?
<obinou> j'ai découvert que le Buffalo WBMR-HP-G300H est un routeur supporté par openwrt avec un chipset ADSL dont les sources sont libre
<obinou> http://www.amazon.fr/Buffalo-AirStation-Nfiniti-HighPower-Broadband/dp/B005584W2E/ref=sr_1_1?ie=UTF8&qid=1327222358&sr=8-1
<mherrb> j'ai un WZR-HP-G300NH2 achete 90 EUR chez materiel.net qui devrait être supporté aussi (son fw d'origine c'est DD-WRT).
<mherrb> http://www.materiel.net/routeur-adsl/buffalo-technology-wzr-hp-g300nh2-55100.html
<obinou> mherrb, ok - par contre il fait pas ADSL, si ?
<obinou> Moi je suis sur ces putains de pb d'adsl , là
<obinou> sur les machin broadcom en l'occurence
<obinou> La difficulté c'est de trouver un modem ADSL wrt qui ne soit pas du broadcom. Ou alors faut faire comme je fait ici: Prendre un modem ADSL séparé (Vigor 120 à 30€) et l'utiliser en modem PPPoE pur
<obinou> mherrb, concernant l'ADSL (mail de laurent), j'ai ce DSLAM à dispo : http://landashop.com/catalog/ports-adsl2-dslam-switch-10100mbps-uplink-port-p-1747.html
<mherrb> ok. je ne sais pas ce qu'on mes collegues, et je n'en sais toujours pas plus sur leur projet.
<obinou> mherrb, Je n'ai jamais trouvé le temps d'y travailler de manière vraiment importante , mais j'admets que j'aimerais beaucoup m'y pencher plus, tant au niveau perso que pro.
<obinou> (Même si j'admets que l'avantage de l'ADSL, c'est que quand tu sais comment ça marche dedans, tu deviens un inconditionel de la fibre...)
<obinou> mherrb, Bref, si tu pense qu'il y a une opportunité , hésite pas a passer mon contact, mais bon, sinon, c'est pas grave. De toute façon l'ADSL j'espère que c'est quelque chose qu'on finira par voir mourir de notre vivant :-)
<mherrb> oui j'y penserai.
<mherrb> en materiel adsl intéressant il y a aussi les cartes Traverse: https://kd85.com/traverse.html
<obinou> mherrb, ah ! oui, elles sont sympa, mais chères par contre

h2. Shorewall

Via Laurent B. http://www.shorewall.net/MultiISP.html
La répartition de charge se fait dans un fichier de conf "tcrules". On peut dédier des protocoles par FAI (http descendant Tetaneutral, ssh Free, dns SFR) si un lien tombe le trafic est redirigé sur un FAI toujours UP.
Le backup est transparent les liens ISP sont monitorés si un tombe tout le trafic est redirigé vers les liens ISP up restant via Link Status Monitor http://lsm.foobar.fi/. Le principe est de pinguer des ip définies dans un fichier de configuration (exemple le premier ou second hop de chaque FAI) via l'interface réseau qui route vers ce FAI. A détection de changement d'état du lien un script est exécuté. (dans notre cas le script exécute une reconf shorewall)

h2. Netgear WNDR3700 v2

Article LWN sur openwrt http://lwn.net/Articles/451837/

Modele recommandé par l'article Wifi 2.4 et 5, attention prendre la v2 http://wiki.openwrt.org/toh/netgear/wndr3700

A noter les efforts de bufferbloat sur cerowrt, pas mal de boulot bas niveau :

https://www.bufferbloat.net/projects/bloat
http://www.bufferbloat.net/projects/cerowrt/wiki/Building_Cerowrt_on_your_own_machine
http://www.bufferbloat.net/projects/uberwrt/wiki/Hardware_evaluation
http://www.bufferbloat.net/projects/bismark/wiki/Wndr3700v2

80-100 euros

h2. TP-Link TL-WR1043ND

http://wiki.openwrt.org/toh/tp-link/tl-wr1043nd
Simulateur en ligne de l'interface du TL-WR1043ND ici : http://www.tp-link.com/simulator/tl-wr1043nd/index.htm

Tests de Cazères éthique de OpenWRT sur TP-LINK WR-1043ND
[[Test OpenWRT sur TP-LINK WR-1043ND]]

45 euros

h2. ASUS RT-N66U

TODO

h2. Ubiquiti

Tests de Cazères éthique peu concluants en portée et ad hoc sur LocoM2 ?
[[Essai d'intégration des NS Loco M2 dans le réseau de Ricoré de Cazères Éthique]]

h2. TP-Link TL-WR340G

14.08 euros livré chez interprojekt.com.pl, pas facile pour openwrt (2MB flash)
Liste de matériel
http://wiki.funkfeuer.at/index.php/Hardware

h2. Buffalo WBMR-HP-G300H

Routeur ADSL + Wifi 802.11n + 4 ports giga, supporté par OpenWRT.
Chipset wifi "Lantiq" , supporté en open-source par OpenWRT
http://www.amazon.fr/Buffalo-AirStation-Nfiniti-HighPower-Broadband/dp/B005584W2E/ref=sr_1_1?ie=UTF8&qid=1327222358&sr=8-1

h2. TP-Link TL-WR740N

* http://wiki.openwrt.org/toh/tp-link/tl-wr740n
* https://dev.openwrt.org/ticket/10492
* http://www.magicpc.fr/Routeur/Tp-link_TL-WR740N/p-22121/
* http://doc.rhizome-fai.net/doku.php?id=howto:deploiement:point_relais_switch
* http://doc.rhizome-fai.net/doku.php?id=technique:materiel:ap_interieurs:tp-link_wr740n

20 euros

h2. TP-Link TL-WR703N

17 euros TTC livré, commande en asie uniquement
* http://www.volumerates.com/product/genuine-tp-link-tl-wr703n-150m-11n-mini-wifi-wireless-router-for-instant-wifi-connection-99273
* http://www.volumerates.com/product/tp-link-tl-wr703n-openwrt-compatible-pocket-11n-150m-3g-mobile-wireless-broadband-router--blue-ship-with-openwrt-pre-installed-upon-customers-request-103048

* http://embeddedtimes.blogspot.com/2011/09/tp-link-tl-wr703n-tiny-linux-capable.html
* OpenWRT Installation https://groups.google.com/forum/#!msg/village-telco-dev/UlGxUTlj9mM/nOMZKmoJmNUJ
* http://wiki.openwrt.org/toh/tp-link/tl-wr703n
* http://wiki.villagetelco.org/index.php?title=Building_a_Serial_Port_for_TL-WR703N
* https://forum.openwrt.org/viewtopic.php?id=31729
* http://www.instructables.com/id/How-to-set-up-OpenWRT-on-a-pocket-router-WR703N/
* http://www.jasongriffey.net/librarybox/index.html
* ajout USB et condensateur : https://forum.openwrt.org/viewtopic.php?id=34188

h2. OpenWRT Tools

h3. Ajouter une jolie interface WEB à OpenWRT

<pre>opkg update
opkg install luci luci-mod-admin-full uhttpd
opkg list | grep luci-app # affiche la kliste des greffons pour luci
</pre>

h3. Déport du bus usb sur une autre machine à l'aide de usbip

h4. Installation

* Prérequis: les 2 machines doivent avoir a peu prêt le même kernel (ie: >= 3.1)

* Sur le WRT:
Il faut compile la partie userland de usbip pour cela il faut utilisé le patch:
https://lists.openwrt.org/pipermail/openwrt-devel/2012-April/014889.html
Le package (prévu la version trunk (r31216) pour le matériel ar71xx) déjà prêt peux être télécharger ici : (A venir)

* Sur l'autre machine:
Il faudra sûrement compilé soit même la partie userland aussi, par exemple ubuntu 12.04 et debian wheezy non pas une version assez récent du soft
La partie userland de usbip se trouve dans les sources du kernel linux dans:
kernel/drivers/staging/usbip/userland
Les dépendances sont automake, autoconf, libglib2.0-dev et libsysfs-dev
Pour le compiler:
<pre>
./autogen.sh && ./configure && make && make install
</pre>

h4. Utilisation:

* sur le WRT:
<pre>
usbipd &
usbip list -l # pour voir la liste des périphériques disponible
usbip bind -b 1-1 # pour rendre disponible sur le réseau le périphérique 1-1
</pre>

* sur l'autre machine:
<pre>
modprobe usbip-core
modprobe usbip-host
modprobe vhci-hcd
usbip list -r 192.168.1.2 # pour voir la liste des périphériques disponible sur 192.168.1.2
usbip attach -h 192.168.1.2 -b 1-1 # pour attacher le périph 1-1 sur notre machine
lsusb # on voit le nouveau périphérique usb
usbip detach -p 0 # pour le détacher
</pre>

h3. booter OpenWRT en failsafe

http://wiki.openwrt.org/doc/howto/generic.failsafe

En gros appuyer plusieurs fois sur reset pendant l'allumage de l'appareil
Il bootera en mode failsafe, prise ethernet en 192.168.1.1
Une fois connecté en ssh ou telnet faire: mount_root pour monter la flash

h3. Pirate box

http://www.lemonde.fr/technologies/article/2012/01/07/surfer-sans-entraves_1627059_651865.html
http://wiki.daviddarts.com/PirateBox

h3. Load balancing

par flux iproute2: http://www.inetdoc.net/guides/lartc/lartc.rpdb.multiple-links.html

h3. OpenWRT and Network UPS Tools

backfire https://forum.openwrt.org/viewtopic.php?id=26269
older https://forum.openwrt.org/viewtopic.php?id=13614

<guerby> hi, did anyone package NUT (Network UPS Tools) for openwrt official repo? I find them over the net: https://forum.openwrt.org/viewtopic.php?id=26269 and upstream developpers seem reactive, thx
<jow_laptop> no
<guerby> jow_laptop, ok, do you know what's needed for such contrib to be included?
<jow_laptop> an OpenWrt Makefile

<sileht> http://wiki.openwrt.org/doc/howto/build

<guerby> jow_laptop, ok will try tonight with a friend. NUT has one driver per family of UPS, on amd64 each driver is about 60 kB total 2.4 MB. since we're trying to put it on a 703N with 4 MB flash (1.5 MB usable) I think it will be better to split binaries, is there a prefered way to do that?
<jow_laptop> make a package nut providing the base and then several nut-mod-xyz covering the different drivers
<jow_laptop> with some clever templating you can reduce the effort for the -mod- packages to a simple list of driver names
<jow_laptop> see for example the collectd or znc packages
<jow_laptop> or coreutils