31/12/2009

EeeGW : Créer soi-même une passerelle réseau

Se connecter aux FAI sur les interfaces concernées

Je dispose pour ma part d’une connexion au web fournie via le fournisseur d’accès Nerim (j’établis donc la connexion en PPPoE comme avec la plupart des fournisseurs ADSL). Je dispose d’une seconde connexion via du WiFi fourni par un de mes voisins (qui accepte que je me serve de sa connexion).

Ne vous inquiétez pas si vous n’avez qu’une seule connexion, ou si vous avez Free+Numericable ou n’importe quelle autre combinaison, cet article est facilement adaptable à votre configuration.

Connexion PPP

Configurez la connexion PPPoE:

/etc/ppp/peers/dsl-provider
 # Minimalistic default options file for DSL/PPPoE connections
noipdefault
defaultroute
replacedefaultroute
hide-password
#lcp-echo-interval 30
#lcp-echo-failure 4
noauth
persist
#mtu 1492
#persist
#maxfail 0
#holdoff 20
plugin rp-pppoe.so eth0
user "plopplop@adslc.fai.fai"
usepeerdns

Et enregistrez vos identifiants:

/etc/ppp/chap-secret
# Secrets for authentication using CHAP
# client server secret IP addresses
"plopplop@adslc.fai.fai" * "mdpdelamortquituedevotreFAI"

Et créez le script qui initiera cette connexion:

/etc/eeegw/fai.sh
#!/bin/bash
/usr/sbin/pppd call dsl-provider

Placez ensuite ce script fai.sh dans les régles de pre-up du fichier Debian /etc/network/interfaces. Votre connexion ppp sera ainsi demarré au boot de la eeegw. Voir, pour exemple, le mien en fin d’article.

Finalement, un script pour s’assurer que votre connexion PPP est bien up avec votre fournisseur d’accès ADSL. Il est lancé via un cron toutes les 5 minutes ainsi, si la connexion tombe, ce script lui permettra de se relancer automatiquement.

/etc/eeegw/nerim.sh
#!/bin/bash

#SERVERS="62.4.16.36 feth1-0-thevenin.nerim.net www.nerim.net hsrp1-telehouse.nerim.net feth0-0-julo.nerim.net"
SERVERS2=irc.geeknode.org
STATUS_LINK=0

USER=`id -u`

if [ ! "$USER" = "0" ];
then
  echo "you're not root, you can't check adsl."
  exit
fi

if [ -f /var/run/checkadsl ]
then
  echo already running
  exit
fi

if ! /sbin/ifconfig ppp0 > /dev/null
then
  echo "No pppd running. Restarting NOW."
  killall pppd
  /etc/init.d/networking restart
  exit
fi

touch /var/run/checkadsl

## recupere l'ip du peer
ip=$(/sbin/ifconfig  ppp0 | /bin/grep "P-t-P" | /usr/bin/cut -d":" -f3 | /usr/bin/cut -d" " -f1)
SERVERS=$ip

for i in $SERVERS;
do
  ping -c 3 $i
#1>/dev/null 2>/dev/null
  if [ "$?" = "0" ];
  then
    STATUS_LINK=1
    rm -f /var/run/checkadsl
    echo "exit c est ok on passe au deuxieme test"
  exit 0
  fi
done

# on sen bat du test maintenant
if [ "$STATUS_LINK" = "0" ];
then
  echo "ADSL Link DOWN. Restarting NOW."

  /etc/init.d/net.ppp0 restart
  rm -f /var/run/checkadsl
fi

rm -f /var/run/checkadsl

Connexion wifi

Voici une simple configuration de l’interface WiFi. Je vous renvoie à la documentation adaptée pour plus de détails.

Placez la clé wep dans /etc/eeegw/fb.key puis créez le script

/etc/eeegw/wifi.sh
#!/bin/bash
wlanconfig ath0 destroy
wlanconfig ath0 create wlandev wifi0 wlanmode sta
sleep 5
ifconfig ath0 up
iwconfig ath0 essid freebox key `cat /etc/eeegw/fb.key`
dhclient ath0

Ajoutez /etc/eeegw/wifi.sh à vos régles pre-up du fichier /etc/network/interfaces

Autre type de connexion

Si par exemple vous êtes chez Free, je vous conseille de monter votre Freebox en mode bridge. Ainsi votre eeegw n’aura plus qu’à effectuer un bound dhcp sur eth0 afin d’obtenir l’IP publique Free et tous les packets arriveront donc directement sur votre eeegw.

Pour redispatcher la connexion, vous pouvez soit le faire via une seconde carte réseau sur votre eeegw (ou votre pc équivalent), soit transformer votre eeegw en point d’accès WiFi! Transformer un eeepc en eeeap est expliqué ici : eeeAP

  1. Jamesb
    | #1

    Salut.
    Comment est-ce que t’es branché au niveau des câbles (RJ45?) pour le FAI Narim ? Passes-tu par l’ancien modem-routeur ou est-ce que tu te branches à la place de celui-ci ? Est-ce qu’un pc faisant du PPPoP par RJ45 suffit à se passer physiquement et logiciellement d’un routeur ?
    Merci d’avance.

  2. | #2

    Salut.

    J’ai un modem ethernet.
    Ce modem ethernet (qui fonctionne CONNEMENT en mode “bridge” ) ne s’occupe que de faire la modulation ADSL sur ma ligne téléphonique.

    Les identifiants/mdp pour se connecter au FAI sont fait via la eeegw.
    Le modem sert juste à se synchroniser à l’adsl.

    Pour info j’utilise un : Linksys AM200

    En espérant avoir répondu à ta question.

  3. | #3

    Super article !
    Je vais tester et je te spammerais surement si je rencontre un problème 😉

  4. nzo
    | #4

    Il va chauffer beaucoup trop l’eeepc et son alim avec pour du 24/24.

  5. | #5

    @nzo Le CPU ne dépasse jamais les 50° et est stable en étant allumé 24/24
    Je peux te montrer les graph si tu veux car je monitore la T° CPU du eeegw.

    @akiri n’hésites pas.

  6. | #6

    La T° du CPU est désormais disponible dans l’article consacré à Munin.

  1. | #1
  2. | #2