OpenWRT : les hôtes du lan ne peuvent pas se connecter les uns aux autres

Quand la neufbox comme box pour mon ADSL chez LDN a commencé à rendre l'âme, j'ai acheté un modem-routeur Buffalo (AirStation Nfiniti WBMR-HP-G300H) histoire d'avoir un truc hackable sur lequel je pourrais mettre OpenWRT et faire plus que juste modem-routeur.

Ça marchait très bien jusque là. Le passage à OpenWRT s'est fait relativement facilement et j'ai pu le transformer en plus en serveur DLNA, ce qui m'a bien servi jusqu'à ce que je m'installe un Kodi (ex-XBMC).

J'ai voulu tester ce soir un Raspberry Pi dans l'optique d'en faire un serveur de backup. Problème : il n'arrivait pas à contacter un autre ordinateur du réseau, alors même qu'ils étaient tous les deux connectés en filaire sur le routeur ! Alors que depuis mon pc en wifi, je pouvais contacter n'importe quel ordinateur dans le LAN et que le routeur contactait bien les deux ordinateurs.

La raison est finalement simple : OpenWRT isole chaque port physique. Pour résoudre ça, j'ai bien trouvé une astuce, à savoir mettre ceci :

config switch 'eth0'
    option reset '1'
    option enable_vlan '1'

config switch_vlan
    option device 'eth0'
    option vlan '1'
    option ports '0 1 2 3 4 5'

dans le /etc/config/network et rebooter le Buffalo. Bah oui, mais ça ne marchait pas !

J'ai par contre trouvé ces commandes à taper dans le terminal :

swconfig dev eth0 vlan 1 set ports "0 1 2 3 4 5"
swconfig dev eth0 set apply

Et là ça fonctionne tout de suite ! Et pour que cela soit exécuté à chaque redémarrage, j'ai posé ces commandes dans /etc/rc.local (oui, c'est sale, mais je n'avais pas envie d'avoir à découvrir les subtilités d'OpenWRT plus que ça).

Bref : ça marche !