Page 1 sur 1

Comment traduire ces commandes pour rc.conf?

Publié : mer. 16 janv. 2008, 21:25
par Logicien
Bonjour,
présentement j'exécute ces commandes dans /etc/rc.local pour activer mon réseau parce-que je ne sais pas comment faire dans /etc/rc.conf particulièrement pour le pont br0 et la carte réseau virtuelle tap0:

ifconfig eth0 0.0.0.0 up
chmod 666 /dev/net/tun
tunctl -g users -t tap0 -u pot > /dev/null
ifconfig tap0 0.0.0.0 up
brctl addbr br0
ifconfig br0 192.168.7.2 up
brctl addif br0 eth0 tap0
route add default gw 192.168.7.1

Comment ces lignes doivent se présenter dans /etc/rc.conf?

Publié : jeu. 17 janv. 2008, 12:17
par tuxce
salut, ca doit ressembler à ca:

Code : Tout sélectionner

eth0="eth0 0.0.0.0 up"
tap0="tap0 0.0.0.0 up"
br0="br0 192.168.7.2 up"
bridge_br0=(eth0 tap0)
BRIDGE_INTERFACES=(br0)
INTERFACES=(eth0 br0)
gateway="default gw 192.168.7.1"
ROUTES=(gateway)
en n'oubliant pas de rajouter les modules

Code : Tout sélectionner

tun bridge

Publié : jeu. 17 janv. 2008, 17:25
par Logicien
Je dirais même que c'est ça. :D
Merci tuxce :!:

Publié : lun. 21 janv. 2008, 07:03
par Logicien
En pratique, je n'arrive pas à créer l'interface tap0 et encore moins lui assigner un groupe et un utilisateur via /etc/rc.conf. Je peux la créer via un script Bash que je peux faire exécuter depuis /etc/rc.conf en lui ajoutant une ligne contenant le chemin complet vers le script. Ce n'est pas standard. À partir de là,

/etc/rc.d/network start

peut activer l'interface tap0, mais impossible de l'ajouter au pont qui lui n'a que ce problème. Présentement, mon réseau s'active comme ceci dans /etc/rc.conf:

eth0="eth0 up"
br0="br0 192.168.7.2 netmask 255.255.255.0 broadcast 192.168.7.255"
lo="lo up"
bridge_br0=(eth0)
BRIDGE_INTERFACES=(br0)
INTERFACES=(br0 eth0 lo)
gateway="default gw 192.168.7.1"
ROUTES=(gateway)

Je préfère à ce moment-ci créer et activer tap0 via /etc/rc.local même si je peux le faire tel qu'expliquer plus haut. Je suis toutefois forcé d'ajouter tap0 au pont br0 après activation du réseau via /etc/rc.local:

chmod 666 /dev/net/tun
tunctl -g users -t tap0 -u pot > /dev/null
ifconfig tap0 up
brctl addif br0 tap0

J'ai fait une recherche sur Google, mais je n'ai pas trouvé comment activer tous les éléments de mon réseau par /etc/rc.conf. Je viens d'installer rcman. Je vais voir ce que cet utilitaire peut faire. Comme mon réseau fonctionne sans problème, c'est pour mieux comprendre le fonctionnement du réseau sous ArchLinux.

Publié : lun. 21 janv. 2008, 14:27
par tuxce
une petite règle dans udev devrait faire l'affaire:
/etc/udev/rules.d/udev.rules
remplace:

Code : Tout sélectionner

KERNEL=="tun",		NAME="net/%k", OPTIONS+="ignore_remove"
par

Code : Tout sélectionner

 KERNEL=="tun", NAME="net/%k", OPTIONS+="ignore_remove" MODE="0666" RUN+="/usr/bin/tunctl -u pot"
ou alors utiliser un groupe tel que network pour donner les autorisations:

Code : Tout sélectionner

KERNEL=="tun",		NAME="net/%k", OPTIONS+="ignore_remove" GROUP="network" RUN+="/usr/bin/tunctl -g network"
bien sur, il faudra en faire partie :)

Code : Tout sélectionner

gpasswd -a pot network
(faut se déconnecter ou utiliser newgrp pour tester)

Publié : lun. 21 janv. 2008, 16:36
par Logicien
Merci tuxce. Cela pourrait régler le problème de la création de l'interface tap0 avec l'utilisateur pot en plus d'ajuster les permissions à 666 pour /dev/net/tun. Pour dire vrai, moins je touche aux fichiers systèmes, moins je suis obligé d'intervenir pour maintenir mes changements lors des mise-à-jours, même si Pacman n'écrase pas les changements avec un nouveau fichier de configuration. Reste encore à trouver un moyen autre d'ajouter tap0 à br0. Il ne semble pas y avoir plus simple que de passer par /etc/rc.local.

Publié : lun. 21 janv. 2008, 16:50
par tuxce
une fois la règle ajoutée à udev, tap0 est crée avant le lancement du daemon network (avec le chargement de tun), tu peux donc utiliser /etc/rc.conf (plus précisement /etc/rc.conf + /etc/conf.d/bridges, mais tu peux utiliser que le 1er) pour configurer tap0 et la rajouter à br0:

Code : Tout sélectionner

eth0="eth0 0.0.0.0 up"
tap0="tap0 0.0.0.0 up"
br0="br0 192.168.7.2 up"
bridge_br0=(eth0 tap0)
BRIDGE_INTERFACES=(br0)
INTERFACES=(eth0 tap0 br0)
gateway="default gw 192.168.7.1"
ROUTES=(gateway) 
en fait, le seul changement sur un fichier potentiellement écrasable sera celui des règles udev, mais tu peux te créer ton propre fichier.

Publié : lun. 21 janv. 2008, 22:40
par Logicien
Je vais essayer cette méthode quand la bidouille me chatouillera de nouveau.

:D