20/04/2010
201004202206 openwrt xen route ipv6
OpenWRT, Xen et ipv6
Dans un précédent billet, je décrivais ma configuration xen. Il ne me manquait qu'une seule chose: l'ipv6. Je dois bien avouer que ça ne s'est pas fait en un jour.
J'ai commencé par configurer mon routeur:root@fonera# route -A inet6 add 2001:470:ca75:100::/64 gw 2001:470:ca75:20:224:1ff:fe0f:f84cOù 2001:470:ca75:100::/64 est le réseau dédié aux hosts xen et 2001:470:ca75:20:224:1ff:fe0f:f84c l'ipv6 du dongle wifi du portable. Qui dit routage dit forwarding:
root@d531# grep forwarding= /etc/sysctl.conf net.ipv6.conf.all.forwarding=1Et pour éviter un message désagréable au boot:
root@d531# echo 'ipv6' >> /etc/modulesJ'ai cru avoir une bonne idée en utilisant eth0 (qui me sert très peu) mais c'est vraiment une très mauvaise idée:
root@d531# tail -n 8 /etc/network/interfaces
auto eth0
iface eth0 inet static
address 192.168.1.116
netmask 255.255.255.0
iface eth0 inet6 static
address 2001:470:ca75:100::1
netmask 64
root@d531# ifconfig eth0 | grep inet6
adr inet6: 2001:470:ca75:100::1/64 Scope:Global
root@d531# ping6 -c 1 -W 1 2001:470:ca75:100::1
PING 2001:470:ca75:100::1(2001:470:ca75:100::1) 56 data bytes
--- 2001:470:ca75:100::1 ping statistics ---
1 packets transmitted, 0 received, 100% packet loss, time 0ms
L'absence d'adresse lien-local ne doit pas être innocente dans cette affaire. Une (lllooonnnggggguuuuueeee)
série de ping, reboot, man, google, ifup/ifdown plus tard, une idée me traverse la tête: pourquoi ne pas
utiliser une interface virtuelle ?
root@d531# tail -n 8 /etc/network/interfaces
auto dummy0
iface dummy0 inet static
address 10.0.0.1
netmask 255.255.255.0
iface dummy0 inet6 static
address 2001:470:ca75:100::1
netmask 64
root@d531# ifconfig dummy0 | grep inet6
adr inet6: 2001:470:ca75:100::1/64 Scope:Global
adr inet6: fe80::9082:a4ff:fe06:92bc/64 Scope:Lien
root@d531# ping6 -c 1 -W 1 2001:470:ca75:100::1
PING 2001:470:ca75:100::1(2001:470:ca75:100::1) 56 data bytes
64 bytes from 2001:470:ca75:100::1: icmp_seq=1 ttl=64 time=0.030 ms
--- 2001:470:ca75:100::1 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.030/0.030/0.030/0.000 ms
root@linuto# ping6 -n -c 1 2001:470:ca75:100::1
PING6(56=40+8+8 bytes) 2001:470:ca75:10:214:bff:fe80:337b --> 2001:470:ca75:100::1
16 bytes from 2001:470:ca75:100::1, icmp_seq=0 hlim=63 time=7.855 ms
--- 2001:470:ca75:100::1 ping6 statistics ---
1 packets transmitted, 1 packets received, 0.0% packet loss
round-trip min/avg/max/std-dev = 7.855/7.855/7.855/nan ms
It works! Passons à la configuration de xen. Le script vif-route ne prend pas en compte l'ipv6. Heureusement, je ne suis pas seul: http://notes.benv.junerules.com/all/software/xen-and-routed-ipv6/.
J'en profite pour proposer une version perless ici. On précise à xen qu'on utilise une autre interface qu'eth0:root@d531# grep '\-route' /etc/xen/xend-config.sxp (network-script 'network-route netdev=dummy0') (vif-script 'vif-route netdev=dummy0')Un dernier reboot pour vérifier que le tout survit à un redémarrage et c'est parti:
root@d531# grep vif /etc/xen/openwrt.bsdsx.fr.cfg
vif = [ 'ip=10.0.0.33 2001:470:ca75:100::33,mac=00:16:3E:6D:BB:94' ]
root@d531# xm create -c openwrt.bsdsx.fr.cfg
[ snip boot ]
root@OpenWrt:/# ifconfig br-lan|grep inet6
inet6 addr: 2001:470:ca75:100::33/64 Scope:Global
inet6 addr: fe80::ac65:afff:fed8:dcc4/64 Scope:Link
Et ça marche ?
root@linutop# traceroute6 -n 2001:470:ca75:100::33 traceroute6 to 2001:470:ca75:100::33 (2001:470:ca75:100::33) from 2001:470:ca75:10:214:bff:fe80:337b, 64 hops max, 12 byte packets 1 2001:470:ca75:10::1 1.761 ms 1.73 ms 1.324 ms 2 2001:470:ca75:20:224:1ff:fe0f:f84c 4.317 ms 9.467 ms 10.127 ms 3 *^CHum, pas trop. Un coup de tcpdump plus tard et je me rends compte qu'il manque une route par défaut sur l'invité:
root@OpenWrt:/# ip -6 ro add default via 2001:470:ca75:100::1 root@OpenWrt:/# ping6 -c 1 www.kame.net PING www.kame.net (2001:200:0:8002:203:47ff:fea5:3085): 56 data bytes 64 bytes from 2001:200:0:8002:203:47ff:fea5:3085: seq=0 ttl=52 time=314.763 ms --- www.kame.net ping statistics --- 1 packets transmitted, 1 packets received, 0% packet loss round-trip min/avg/max = 314.763/314.763/314.763 msUn dernier tour sur http://wiki.openwrt.org/doc/uci/network pour enregistrer la route:
root@OpenWrt:/# tail -n 4 /etc/config/network
config 'route6'
option 'interface' 'lan'
option 'target' 'default'
option 'gateway' '2001:470:ca75:100::1'
Et voilà, c'est bon, servez chaud. Bon appétit.
03/04/2010
201004032216 openwrt xen
OpenWRT et Xen
Depuis quelques temps, ce billet me trottait dans la tête. Petit récapitulatif:
- le dom0 est une debian lenny 64 bits qui accède au réseau grâce au wifi
- mon routeur est une fonera sous openwrt
- j'ai envie de faire le foufou avec openwrt et des configs ultralight
d531:~> grep script /etc/xen/xend-config.sxp | grep -v "^#" (network-script network-route) (vif-script vif-route)Mon interface eth0 ne me sert (presque) à rien:
d531:~> /sbin/ifconfig eth0 | grep 'inet adr'
inet adr:10.0.0.1 Bcast:10.255.255.255 Masque:255.0.0.0
Afin que mes domU puissent accéder au nain ternet, j'ajoute une route sur mon routeur:
root@fonusb# route add -net 10.0.0.0 netmask 255.255.255.0 gw 172.16.10.116
root@fonusb# tail -n 5 /etc/config/network
config 'route' 'xen'
option 'interface' 'wpa'
option 'target' '10.0.0.0'
option 'netmask' '255.255.255.0'
option 'gateway' '172.16.10.116'
Où 10.0.0.0 est le réseau de mes domU, 172.16.10.116 l'ip de mon dom0 et wpa le nom logique de mon interface. Voir ici pour la configuration d'une route sous openwrt.
Concernant openwrt, mes tentatives de compilation sur ma machine 64 bits se sont soldées par un cuisant échec. J'ai opté pour une solution simple: un chroot 32 bits. La documentation ne manque pas, je ne vais pas détailler l'opération.
Une fois dans mon chroot et l'installation des paquets nécessaires, on peut commencer à jouer:bsdsx@chroot> svn co svn://svn.openwrt.org/openwrt/trunk/ bsdsx@chroot> cd trunk bsdsx@chroot> ./script/feeds update bsdsx@chroot> make prereqEt c'est parti pour une partie de coche-mi coche-moi:
Target System
[x] x86
Subtarget
[x] Xen Paravirt Guest
Global build settings
[ ] Compile the kernel with Debug Filesystem enabled
Kernel modules
Xen paravirtualized guest support
[x] kmod-xen-evtchn
[ ] kmod-xen-fbdev
[x] kmod-xen-fs
[x] kmod-xen-kbddev
[x] kmod-xen-netdev
Une fois le make terminé, on installe le tout:
dsx@d531> sudo cp /usr/local/src/x86_32/home/bsdsx/src/svn/openwrt/trunk/bin/x86/openwrt-x86-ext2.fs /usr/local/xen/ dsx@d531> sudo cp /usr/local/src/x86_32/home/bsdsx/src/svn/openwrt/trunk/bin/x86/openwrt-x86-vmlinuz /usr/local/xen/La configuration du domU:
dsx@d531:/etc/xen> cat /etc/xen/openwrt.bsdsx.fr.cfg kernel = '/usr/local/xen/openwrt-x86-vmlinuz' memory = '32' root = '/dev/xvda1 rw' disk = [ 'file:/usr/local/xen/openwrt-x86-ext2.fs,xvda1,w', ] name = 'openwrt.bsdsx.fr' vif = [ 'ip=10.0.0.33,mac=00:16:3E:6D:BB:94' ] gateway = '10.0.0.1' on_poweroff = 'destroy' on_reboot = 'restart' on_crash = 'restart' extra = 'console=hvc0 xencons=tty'Et c'est parti (attention c'est rapide !):
dsx@d531> sudo xm create -c openwrt.bsdsx.fr.cfg
[ snip boot ]
root@OpenWrt:/# cat /proc/version
Linux version 2.6.32.10 (dsx@d531.bsdsx.fr) (gcc version 4.1.2) #5 SMP Sat Apr 3 08:56:39 UTC 2010
root@OpenWrt:/# tail -n 7 /etc/config/network
config interface lan
option ifname eth0
option proto static
option ipaddr 10.0.0.33
option netmask 255.255.255.0
option gateway 10.0.0.1
option dns 172.16.10.254
On retrouve dans la configuration:
- 10.0.0.1 l'ip de eth0 du dom0
- 172.16.10.254 l'ip du routeur où tourne un dnsmasq
root@OpenWrt:/# ping -c 1 www.google.fr PING www.google.fr (209.85.229.147): 56 data bytes 64 bytes from 209.85.229.147: seq=0 ttl=53 time=34.268 ms --- www.google.fr ping statistics --- 1 packets transmitted, 1 packets received, 0% packet loss round-trip min/avg/max = 34.268/34.268/34.268 ms
31/01/2010
201001311022 openwrt dnsmasq blocage
Dnsmasq et le blocage de site
Pour faire suite à l'article sur le blocage de site paru dans le GLMF n° 124, je vous propose sa déclinaison OpenWRT.
/etc/config/dhcp:
config dnsmasq
[ snip config ]
list address '/ads.google.com/127.0.0.1'
list address '/google-analytics.com/127.0.0.1'
list address '/smartadserver.com/127.0.0.1'
list address '/adsense.com/127.0.0.1'
list address '/adsense.fr/127.0.0.1'
list address '/doubleclick.net/127.0.0.1'
L'option address n'étant pas encore reconnue par le script d'init de dnsmasq (/etc/init.d/dnsmasq), on va lui rajouter une fonction et une ligne de commande supplémentaire.
OpenWRT 8.09 (et antérieur)
dhcp_address_add() {
local cfg="$1"
config_get address "$cfg" address
for o in $address; do
append args "--address=$o"
done
}
start() {
[ snip config_foreach ... ]
config_foreach dhcp_address_add dnsmasq # appel de notre fonction
/usr/sbin/dnsmasq $args && {
OpenWRT 8.09.1 (et ultérieur)
append_address() {
append args "--address=$1"
}
dnsmasq() {
[ snip append ... ]
config_list_foreach "$cfg" "server" append_server
config_list_foreach "$cfg" "interface" append_interface
config_list_foreach "$cfg" "address" append_address # appel de notre fonction
append_parm "$cfg" "leasefile" "-l"
...
Et un restart plus tard:
dsx@linutop>host www.adsense.com www.adsense.com has address 127.0.0.1
29/07/2009
200907292215 openwrt cluster dhcp dns ntp makefile
Openwrt et haute dispo
Le nombre d'openwrt dans mon bureau ne cesse d'augmenter (et les promos sur http://shop.fon.com n'arrange rien :) je me suis demandé comment mettre en oeuvre un peu de haute-dispo (histoire de faire hype).
Principaux services concernés:
- dhcp
- dns
- ntp
J'ai pour ce faire un Netgear DG834, une Fonera et une Fonera+, tous sous Kamikaze (8.09 et 8.09.1).
Le dhcp
Ayant désactivé le dhcp de ma box, c'est donc une de mes fonera qui a pris le relai. A force de google et de wiki openwrt, je suis arrivé à la configuration suivante:
[ extrait /etc/config/dhcp ]
config dhcp lan
option interface lan
option start 100
option limit 150
option leasetime 60h
list dhcp_option '3,192.168.0.254' # gateway
list dhcp_option '6,192.168.0.251,192.168.0.230,192.168.0.250' # dns
list dhcp_option '42,ntp.localdomain.tld' # ntp-server
option force 1 # pas de test si un autre serveur dhcp est sur le reseau
J'ai recopié cette config sur les deux autres openwrt. J'ai donc 3 serveurs dhcp et au niveau client, c'est le serveur qui répond le plus vite qui gagne.
ntp
Un round-robin dns fait l'affaire. Chaque openwrt a un alias "ntp".
dns
Le sujet de ce billet. Afin que mes 3 dnsmasq me répondent tous la même chose, il me faut synchroniser 2 fichiers: /etc/config/luci_ethers et /etc/config/luci_hosts. /etc/config/luci_ethers pour faire du dhcp à baux permanents (une adresse mac aura toujours la même adresse ip) et /etc/config/luci_host qui s'occupe de la conversion ip <-> host.
dnsmasq n'a pas de notion maitre/esclave et je ne vais pas installer rsync pour 2 fichiers. De plus, l'ordre d'arrêt/démarrage des 3 services (luci_ethers, luci_host, dnsmasq) a son importance. Un petit script perl, un Makefile et le tour est joué:
dsx@linutop>vim dns.pl (ajout d'une adresse {mac, ipv4, ipv6} ou un alias)
dsx@linutop>make
./dns.pl luci_hosts > luci_hosts
./dns.pl luci_ethers > luci_ethers
dsx@linutop>make update
scp -q luci_hosts luci_ethers openwrt1:/etc/config/
scp -q luci_hosts luci_ethers openwrt2:/etc/config/
scp -q luci_hosts luci_ethers openwrt3:/etc/config/
dsx@linutop>make restart
ssh openwrt1 ' /etc/init.d/dnsmasq stop; /etc/init.d/luci_hosts stop; /etc/init.d/luci_ethers stop; /etc/init.d/luci_ethers start; /etc/init.d/luci_hosts start; /etc/init.d/dnsmasq start; '
Terminated
ssh openwrt2 ' /etc/init.d/dnsmasq stop; /etc/init.d/luci_hosts stop; /etc/init.d/luci_ethers stop; /etc/init.d/luci_ethers start; /etc/init.d/luci_hosts start; /etc/init.d/dnsmasq start; '
Terminated
ssh openwrt3 ' /etc/init.d/dnsmasq stop; /etc/init.d/luci_hosts stop; /etc/init.d/luci_ethers stop; /etc/init.d/luci_ethers start; /etc/init.d/luci_hosts start; /etc/init.d/dnsmasq start; '
Terminated
Le tout est disponible ici. Toute remarque est la bienvenue :)
14/05/2009
200905141141 openwrt dg834
OpenWrt et Netgear DG834
Installation
Un vieux modem/routeur Netgear DG834 trainait sur un coin de mon bureau. Un rapide tour sur le wiki openwrt m'apprend que ce matériel est supporté. Je vais donc décrire l'installation de Kamikaze 8.09.
Pas à pas
On commence par activer le telnet depuis l'interface html:$ wget --user=admin --password=passord 'http://192.168.0.1/setup.cgi?todo=debug' $ telnet 192.169.0.1Petit tour du propriétaire:
# cat /proc/version
Linux version 2.4.17_mvl21-malta-mips_fp_le (root@Run-P4) (gcc version 2.95.3 20010315 (release/MontaVista)) #6 Wed Sep 7 16:50:05 CST 2005
# cat /proc/meminfo
total: used: free: shared: buffers: cached:
Mem: 14757888 6991872 7766016 0 778240 2539520
Swap: 0 0 0
MemTotal: 14412 kB
MemFree: 7584 kB
MemShared: 0 kB
Buffers: 760 kB
Cached: 2480 kB
SwapCached: 0 kB
Active: 1008 kB
Inactive: 3232 kB
HighTotal: 0 kB
HighFree: 0 kB
LowTotal: 14412 kB
LowFree: 7584 kB
SwapTotal: 0 kB
SwapFree: 0 kB
# cat /proc/ticfg/env
memsize 0x01000000
flashsize 0x00400000
modetty0 115200,n,8,1,hw
modetty1 115200,n,8,1,hw
bootserport tty0
cpufrequency 150000000
sysfrequency 125000000
bootloaderVersion 0.18.01
ProductID DG834
HWRevision Unknown
SerialNumber none
prompt DGB34
firstfreeaddress 0x9402e088
req_fullrate_freq 125000000
mtd0 0x900d0000,0x903e0000
mtd1 0x90020000,0x900d0000
mtd2 0x90000000,0x90020000
mtd3 0x903e0000,0x903f0000
autoload
maca 00:09:5b:9e:8e:be
macb 00:09:5b:9e:8e:bf
Bridge_MODE 0
mt_time 0
oam_lb_timeout 100
mtd4 0x903f0000,0x90400000
my_ipaddress 192.168.0.1
# cat /proc/mtd
dev: size erasesize name
mtd0: 00310000 00010000 "mtd0"
mtd1: 000b0000 00010000 "mtd1"
mtd2: 00020000 00010000 "mtd2"
mtd3: 00010000 00010000 "mtd3"
mtd4: 00010000 00010000 "mtd4"
La lecture de # cd /tmp # wget http://download.bsdsx.fr/netgear/mtd2.bin # dd if=/tmp/mtd2.bin of=/dev/mtdblock/2 # rebootOn réactive le telnet et on prépare l'installation d'OpenWrt:
# cd /proc/sys/dev/adam2 # echo "mtd5 0x90020000,0x903e0000" > environment # rebootC'est reparti pour un telnet et on passe aux choses sérieuses:
# wget http://downloads.openwrt.org/kamikaze/8.09/ar7/openwrt-ar7-squashfs.bin # dd if=openwrt-ar7-squashfs.bin of=/dev/mtdblock/5 # rebootEt là c'est le drame:
$ ping -c 1 192.168.0.1 PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data. From 192.168.0.115 icmp_seq=1 Destination Host Unreachable --- 192.168.0.1 ping statistics --- 1 packets transmitted, 0 received, +1 errors, 100% packet loss, time 0ms
Console série USB
Pour cette recette, il nous faut:
- un dg834 qui ne répond plus
- un câble nokia data (DKU-5)
- un fer à souder
- un vieux lecteur ZIP IDE
- un vieux câble audio de cdrom
- une petite pince, idéalement à bec courbé
- explosez le lecteur IDE et récupérez les pinoches
- découpez le câble DKU-5
- explosez le connecteur du câble audio
- soudez les petits connecteurs du câble audio aux fils noir, blanc et bleu du DKU-5
- repérez le jumper j603
- soudez les pinoches sur le jumper j603 du dg834
Petit tip pour la soudure: maintenez simplement la pinoche sur la pastille d'étain à l'aide de la pince et faites chauffer le dessus de la pinoche. Appuyez vers le bas et la pinoche rentre toute seule.
Un petit schéma ascii:
j101
j603 [[o]] [o] [o] [o] [o] [o]
N B B
o l l
i a e
r n u
c
j100
Je suis une vrai quiche en électronique donc cette manipulation est vraiment à la portée du plus grand nombre.
Lève-toi et marche
$ cu -l /dev/ttyU0 -s 115200
ADAM2 Revision 0.18.01
(C) Copyright 1996-2003 Texas Instruments Inc. All Rights Reserved.
(C) Copyright 2003 Telogy Networks, Inc.
Usage: setmfreq [-d] [-s sys_freq, in MHz] [cpu_freq, in MHz]
Memory optimization Complete!
DGB34 >
Press any key to abort OS load, or wait 3 seconds for OS to boot...
DGB34 > help
Commands Description
-------- -----------
h/help Displays the commands supported
info Displays board information
memop Memory Optimization
setmfreq configures/dumps the system and cpu frequencies
dm Dump memory at
erase Erase Flash except Adam2 Kernel and Env space
printenv Displays Env. Variables
setenv Sets Env. variable with a value
unsetenv Unsets the Env. variable
fixenv Defragment for Env. space
go Loads the image starting at address
DGB34 > info
Monitor Revision 0.18.01
Monitor Compilation time Aug 1 2003, 14:43:32
Endianness Little
External Memory rate Full, 16 bit wide
CPU Frequency 150 MHz
DGB34 > printenv
memsize 0x01000000
flashsize 0x00400000
modetty0 115200,n,8,1,hw
modetty1 115200,n,8,1,hw
bootserport tty0
cpufrequency 150000000
sysfrequency 125000000
bootloaderVersion 0.18.01
ProductID DG834
HWRevision Unknown
SerialNumber none
prompt DGB34
firstfreeaddress 0x9402e088
req_fullrate_freq 125000000
mtd0 0x900d0000,0x903e0000
mtd1 0x90020000,0x900d0000
mtd2 0x90000000,0x90020000
mtd3 0x903e0000,0x903f0000
autoload
maca 00:09:5b:9e:8e:be
macb 00:09:5b:9e:8e:bf
Bridge_MODE 0
mt_time 0
oam_lb_timeout 100
mtd4 0x903f0000,0x90400000
my_ipaddress 192.168.0.1
mtd5 0x90020000,0x903e0000
DGB34 > go
checksum error
Linux version 2.6.26.5 (nbd@baustelle) (gcc version 4.1.2) #1 Mon Jan 5 05:57:36 CET 2009
console [early0] enabled
CPU revision is: 00018448 (MIPS 4KEc)
TI AR7 (TNETD7300), ID: 0x0005, Revision: 0x02
Determined physical RAM map:
memory: 01000000 @ 14000000 (usable)
Initrd not found or empty - disabling initrd
Zone PFN ranges:
Normal 81920 -> 86016
Movable zone start PFN for each node
early_node_map[1] active PFN ranges
0: 81920 -> 86016
Built 1 zonelists in Zone order, mobility grouping off. Total pages: 4064
Kernel command line: init=/etc/preinit rootfstype=squashfs,jffs2, console=ttyS0,115200n8
Primary instruction cache 16kB, VIPT, 4-way, linesize 16 bytes.
Primary data cache 16kB, 4-way, VIPT, no aliases, linesize 16 bytes
PID hash table entries: 64 (order: 6, 256 bytes)
Dentry cache hash table entries: 2048 (order: 1, 8192 bytes)
Inode-cache hash table entries: 1024 (order: 0, 4096 bytes)
Memory: 12572k/16384k available (1988k kernel code, 3812k reserved, 422k data, 124k init, 0k highmem)
SLUB: Genslabs=6, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
Mount-cache hash table entries: 512
net_namespace: 644 bytes
NET: Registered protocol family 16
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 512 (order: 0, 4096 bytes)
TCP bind hash table entries: 512 (order: -1, 2048 bytes)
TCP: Hash tables configured (established 512 bind 512)
TCP reno registered
NET: Registered protocol family 1
squashfs: version 3.0 (2006/03/15) Phillip Lougher
Registering mini_fo version $Id$
JFFS2 version 2.2. (NAND) (SUMMARY) © 2001-2006 Red Hat, Inc.
msgmni has been set to 24
io scheduler noop registered
io scheduler deadline registered (default)
Serial: 8250/16550 driver $Revision: 1.90 $ 2 ports, IRQ sharing disabled
serial8250: ttyS0 at MMIO 0x8610e00 (irq = 15) is a TI-AR7
console handover: boot [early0] -> real [ttyS0]
serial8250: ttyS1 at MMIO 0x8610f00 (irq = 16) is a TI-AR7
Fixed MDIO Bus: probed
cpmac-mii: probed
cpmac: device eth0 (regs: 08612800, irq: 41, phy: , mac: 00:09:5b:9e:8e:bf)
cpmac: device eth1 (regs: 08610000, irq: 27, phy: , mac: 00:09:5b:9e:8e:be)
physmap platform flash device: 00800000 at 10000000
physmap-flash.0: Found 1 x16 devices at 0x0 in 16-bit bank
Amd/Fujitsu Extended Query Table at 0x0040
number of CFI chips: 1
cfi_cmdset_0002: Disabling erase-suspend-program due to code brokenness.
cmdlinepart partition parsing not available
RedBoot partition parsing not available
4 ar7part partitions found on MTD device physmap-flash.0
Creating 4 MTD partitions on "physmap-flash.0":
0x00000000-0x00010000 : "loader"
0x003f0000-0x00400000 : "config"
0x00020000-0x003f0000 : "linux"
0x000f0000-0x003f0000 : "rootfs"
mtd: partition "rootfs" set to be root filesystem
mtd: partition "rootfs_data" created automatically, ofs=220000, len=1D0000
0x00220000-0x003f0000 : "rootfs_data"
ar7_wdt: timer margin 59 seconds (prescale 65535, change 57180, freq 62500000)
Registered led device: ppp
Registered led device: status
Registered led device: adsl
Registered led device: wifi
Registered led device: power
vlynq0: regs 0x08611800, irq 29, mem 0x04000000
vlynq1: regs 0x08611c00, irq 33, mem 0x0c000000
TCP vegas registered
NET: Registered protocol family 17
802.1Q VLAN Support v1.8 Ben Greear
All bugs added by David S. Miller
VFS: Mounted root (squashfs filesystem) readonly.
Freeing unused kernel memory: 124k freed
Please be patient, while OpenWrt loads ...
Algorithmics/MIPS FPU Emulator v1.5
- preinit -
Press CTRL-C for failsafe
switching to jffs2
mini_fo: using base directory: /
mini_fo: using storage directory: /jffs
- init -
Please press Enter to activate this console.
BusyBox v1.11.2 (2009-01-04 22:13:46 CET) built-in shell (ash)
Enter 'help' for a list of built-in commands.
_______ ________ __
| |.-----.-----.-----.| | | |.----.| |_
| - || _ | -__| || | | || _|| _|
|_______|| __|_____|__|__||________||__| |____|
|__| W I R E L E S S F R E E D O M
KAMIKAZE (8.09, r14511) ----------------------------
* 10 oz Vodka Shake well with ice and strain
* 10 oz Triple sec mixture into 10 shot glasses.
* 10 oz lime juice Salute!
---------------------------------------------------
root@OpenWrt:/# PHY: 0:10 - Link is Down
br-lan: Dropping NETIF_F_UFO since no NETIF_F_HW_CSUM feature.
device eth0 entered promiscuous mode
br-lan: port 1(eth0) entering learning state
br-lan: topology change detected, propagating
br-lan: port 1(eth0) entering forwarding state
PPP generic driver version 2.4.2
ip_tables: (C) 2000-2006 Netfilter Core Team
br-lan: port 1(eth0) entering disabled state
br-lan: port 1(eth0) entering learning state
br-lan: topology change detected, propagating
br-lan: port 1(eth0) entering forwarding state
nf_conntrack version 0.5.0 (1024 buckets, 4096 max)
root@OpenWrt:/# ifconfig
br-lan Link encap:Ethernet HWaddr 00:09:5B:9E:8E:BF
inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
eth0 Link encap:Ethernet HWaddr 00:09:5B:9E:8E:BF
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Interrupt:41
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
root@OpenWrt:/#
Bon, je reconnais que j'aurais pu me passer de la partie fer à souder si j'avais pingué 192.168.1.1 au lieu de 192.168.0.1. Cette ip est fixée en dur lors de la compilation d'OpenWrt.
Bonne nouvelle, j'ai maintenant accès au boot ADAM2. Pas suffisant pour flasher la bête en
cas de problème comme on peut le lire sur
Et maintenant
Et oui, c'est bien beau mais qu'est-ce que j'en fais de ce dg834 ? Mon FAI a un célèbre client prénommé Rodolphe qui a tout compris. Ce qui me chagrine:
- le serveur DHCP
C'est quand même pénible de rebooter la box pour un simple ajout de bail permanent.
- pas de serveur DNS cache
Un petit dnsmasq, c'est bonheur ! ping iphone classe non ?
- pas de serveur de temps
Toutes les machines à la bonne/même heure, c'est pas mieux ?
Quand on commence à avoir plusieurs machines, c'est le genre de services bien pratique. Et quand le tout est ipv6 compliant, pourquoi s'en priver ?
J'ai donc désactiver le dhcp de ma box et configuré dnsmasq. Pour vous éviter de perdre du temps, un extrait de la conf:
config dhcp lan
option interface lan
option start 100
option limit 150
option leasetime 48h
option dhcp_option '3,192.168.0.254' # gateway
Le dhcp_option m'a fait un peu tourné en bourrique mais maintenant "it works" !
Et demain
Petit tour du stock:
- 2x fon2100 (1 rj45 + 1 wifi)
- 1x fon2201 (2 rj45 + 1 wifi)
- 1x fon2202 (2 rj45 + 1 wifi + 1 usb)
- 1x dg834 (switch 4 ports rj45)
- 1x dg834g (switch 4 ports rj45 + 1 wifi)
- 1x livebox (switch 4 ports rj45 + 1 wifi + 1 bluetooth + 1 usb)
De quoi monter un cluster OpenWrt !
05/05/2009
200905052004 update freebsd openwrt blosxom
Mises à jour diverses et variées
Il y a des périodes comme ça, on a envie/besoin de changement(s). Petit récapitulatif:
kimsufi
Passage de FreeBSD 7.1 en 7.2. A moi les joies des jails multi ipv4/ipv6 !
fon2200
Passage d' OpenWRT 7.09 en 8.09. Toujours aussi simple une fois que l'on a accès à la console.
dg834g
Récupération d'un petit boitier modem/routeur wifi qui a rapidement ingurgité un OpenWrt 8.09. Seule ombre au tableau:root@dg384g:~# df -h Filesystem Size Used Available Use% Mounted on rootfs 1.2M 1.2M 0 100% / /dev/root 1.2M 1.2M 0 100% /rom tmpfs 6.2M 736.0k 5.5M 12% /tmp tmpfs 512.0k 0 512.0k 0% /dev /dev/mtdblock4 1.8M 760.0k 1.1M 41% /jffs mini_fo:/jffs 1.2M 1.2M 0 100% /
Un rootfs de 1.2 Mo rempli à 100% et un /tmp qui ne sert pas beaucoup. Je dois revoir ma copie.
shuttle K45
J'ai mis en place un petit NAS pour sauvegarder les photos et vidéos familiales. Au menu:
- 2 x 1 To en Raid 1
- FreeBSD
- Zfs
Un prochain billet décrira plus en détail l'histoire de cette machine.
Le blog
Il n'aura échappé à personne le changement radical de ce blog. On m'a fait découvrir blosxom et je suis tombé sous le charme de ces 444 lignes de perl. Du perl, rien que du perl, pas de dépendance. Le style est un peu brut de décoffrage mais j'y travaille :)
A venir:
- passage du linutop et des vieux portables en OpenBSD 4.5
- passage des foneras 2100 et de la fonera 2+ en OpenWrt 8.09
- peaufinage du blog
Bon, c'est pas le tout mais j'ai du boulot :)
Ps: pour les adeptes des flux rss/atom, c'est en cours.
![Validate my Atom 1.0 feed [Valid Atom 1.0]](/valid-atom.png)
![Validate my RSS feed [Valid RSS]](/valid-rss-rogers.png)