Par Mark Nielsen.
Cet article concerne les systèmes basés sur la Red Hat 5.0. Il est probablement possible d'en faire autant avec les autres distributions Linux. Il est particulièrement adapté à roadrunner à Colombus en Ohio. Si vous vivez ailleurs, vous devrez changer tout ce qui touche à « colombus » dans la configuration par quelque chose d'autre. Pour le moment, les seules choses à changer dont je me sois aperçu étaient dans /etc/resolv.conf mais je crois que cela change à chaque fois que vous lancez rrhdcpcd.
Si vous réussissez à faire ce qui figure ici, vous êtes à deux doigts d'être capable d'installer et de connecter un réseau réel à Internet. Pensez-y, la seule différence entre ce que nous faisons ici et un vrai réseau connecté à l'Internet est que votre intranet local ne dispose pas d'adresses IP valides. Si vous aviez des adresses IP valides et que les adresses de votre passerelle restent les mêmes (cela change à chaque fois que vous vous loggez sur roadrunner), alors vous disposeriez d'un réseau réel connecté à l'Internet. Faites-le et vous pourrez vous prévaloir d'une vraie expérience du réseau. Ethernet, le DNS, l'ip forwarding, l'ip masquerading et la configuration d'ethernet sont quelques uns des concepts à maîtriser. Bonne chance!
J'aimerais également remercier un tas de personnes de l'Université Ohio State pour leurs suggestions. J'espère les avoir correctement exprimées.
Cette courte section ne marche que si vous réussisez à faire en sorte que vos deux cartes ethernet soient détectées avec des modules. cela ne sera probablement pas le cas pour la plupart des personnes.
Cela ne fonctionnera probablement pas avec les Red Hat 5.0. Vous ne devez pas vous écarter des étapes mentionnées c-dessous. Pour une raison inconnue, l'installation de la redhat détectait correctement les deux cartes ethernet et le noyau comportait le support de l'ip forwarding. Il suffit juste de l'autoriser. Ainsi, installer un réseau consiste simplement à copier un certain nombre de fichiers, taper quelques commandes et c'est fini. Assurez vous d'avoir d'abord installé roadrunner sous Windows 95 pour avoir les fichiers de configuration.
mkdir /etc/dhcpc
unset noglob
/etc/sysconfig/network
/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-scripts/ifcfg-eth1
/etc/rc.d/init.d/roadrunner
/etc/dhcpc/resolv.conf
/etc/named.conf
/var/named/10.0.0
/var/named/mark.local
/var/named/named.local
/etc/HOSTNAME
/etc/hosts
/root/Login2.bat
/root/email.pl
/root/cron2
cp * /sbin. Les binaires étaient fournis quand j'en ai eu ma version ce qui vous permettra probablement de ne pas avoir à les compiler. Compiler avec les nouvelles librairies sous une RedHat s'avère en effet parfois délicat ces temps-ci. Vous aurez peut-être à modifier le fichier /etc/services comme il est indiqué dans le fichier README de rrclientd-1.3.
mv /etc/resolv.conf /etc/resolv.conf_old
ln -s /etc/dhcpc/resolv.conf /etc/resolv.conf
mv /sbin/dhcpcd /sbin/dhcpcd_old
mv /usr/sbin/dhcpcd /usr/sbin/dhcpcd_old
mv /usr/bin/rdate /usr/bin/rdate_old
ln -s /sbin/rdate /usr/bin/rdate
ln -s /sbin/rrdhcpcd /sbin/dhcpcd
ln -s /sbin/rrdhcpcd /usr/sbin/dhcpcd
ln -s /sbin/rrclientd /usr/sbin/rrclientd
cp /root/roadrunner /etc/rc.d/init.d ## ajout du service roadrunner
chkconfig --add roadrunner
crontab /root/RR/cron2 ### rétablissement de la connexion pour un job
cron
## Faire en sorte de pouvoir exécuter les scripts avec cron2
chmod 755 /root/Login2.bat /root/email.pl /etc/rc.d/init.d/roadrunner
### Seul root doit pouvoir voir le mot de passe!!!
chmod 700 /etc/rrpasswd
Installez normalement votre première carte ethernet lorsque vous installez le système d'exploitation. Donnez lui une adresse IP non utilisée sur votre réseau. Pour une raison inconnue, cette carte ethernet doit être celle connectée à l'extérieur afin de bien fonctionner avec le forwarding de X Window. Laissez moi préciser : j'ai du le faire pour tous ceux qui voulaient se connecter. Pour aller vers l'extérieur, il ne devrait pas y avoir de problèmes avec la seconde carte connectée à roadrunner. Cependant, je ne pouvais pas utiliser telnet de mon travail vers ma maison et je ne pouvais pas faire marcher un programme X Window quand roadrunner utiisait la seconde carte ethernet. La seconde carte sera dédiée à l'intranet.
Veuillez également configurer votre seconde carte ethernet de manière à ce qu'elle n'utilise PAS la même IRQ et la même adresse qie la première carte ethernet. Par habitude, je prends des valeurs inférieures pour la première carte que pour la deuxième. Je fais souvent appel à un ordinateur sous DOS avec un utiitaire qui sélectionne les valeurs pour les cartes ethernet. Vous devrez probablement faire la même chose.
Ne tentez rien pour l'instant avec votre roadrunner ou votre programme rrdhcpcd. Ne vous préoccupez pas non plus de la configuration du réseau non plus, nous nous en occuperons plus tard. Ne vous inquiétez pas du fait que Linux ne détecte pas la seconde carte, ce problème sera traité ultérieurement. Assurez vous seulement du fait que les deux cartes ne partagent pas des paramètres matériels. De plus, si votre seconde carte ethernet a des valeurs inférieures à la première, l'ordinateur pourra la considérer comme la première, ce qui explique pourquoi je donne des valeurs inférieures à la première. Je ne vais pas me préoccuper de savoir si j'ai tort. Assurez vous seulement que l'une des cartes est détectée.
Si vous savez ce que vous faîtes, changez les configurations. Puisque je suis bête, je choisis le domaine mark.local. Si mark.local devient un nom de domaine officiel, vous devrez changer toutes les références de mark.local en autre chose dans les fichiers plus bas.
Il y a un certain nombre de choses que vous pourriez changer pour satisfaire vos besoins. Dans /var/named/mark.local, j'ai désactivé la définition de localhost.
A partir de maintenant, vos ordinateurs clients peuvent se trouver entre eux. Je considère que vous savez configurer des adresse IP, des passerelles et autres sur vos clients. Je vous donnerai quelques références à ce sujet toutefois. Configurer les clients de manière à ce qu'ils utilisent le DNS.
Dans l'ordinateur qui tient le rôle de serveur DNS, jusqu'à huit entrées additionnelles sont disponibles de manière à ce que jusqu'à huit ordinateurs puissent utiliser le serveur DNS. Je considère que vous avez des notions sur les cartes ethernet. Voici la configuration que j'ai effectuée sur un de mes ordinateurs.
La seule chose que vous ayez à changer sur chacun de ordinateurs supplémentaires est l'adresse IP et l'adresse de nom. c2.mark.local et 10.0.0.22 seront respectivement utilisées pour l'ordinateur suivant. Vous voyez le topo?
De plus, si vos clients comportent des macs, des PCs ou autres, consultez le masquerading mini HOWTO .
Si vos modules ont réussi à détecter vos deux cartes ethernet, cette section ne vous concerne pas. Dans le cas contraire, ce qui sera le cas pour la plupart des personnes, vous DEVREZ COMPILER LE GESTIONNAIRE de la carte ethernet dans votre noyau et autoriser le masquerading dans la foulée. J'ai rencontré des problèmes avec deux cartes ethernet du même type. Pour une raison inconnue, quand j'ai installé la RedHat 5.0 à partir de rien, mes deux cartes ont été reconnues mais c'était probablement une exception.
Lisez le ip masquerading HOWTO. Suivez en les étapes sur la compilation du noyau pour le masquerading. ATTENTION : ceci est TRÈS DANGEREUX si vous échouez. Pour l'installation du noyau, RedHat a fait quelque chose d'idiot quand ils ont configuré le fichier /etc/lilo.conf. Changez la ligne image=/boot/vmlinuz-2.0.32 en image=/boot/vmlinuz et assurez vous d'avoir exécuté lilo avant de redémarrer votre ordinateur. Faites le maintenant afin d'être tranquille.
cd /usr/src/linux make config
make dep make clean make zImage
make modules make modules_install
cp /usr/src/linux arch/i386/boot/zImage /boot/vmlinuz_NEW rm /boot/vmlinuz ln -s /boot/vmlinuz_NEW /boot/vmlinuz lilo
Maintenant, le noyau que vous venez de compiler doit être installé. Voici un exemple de fichier /etc/lilo.conf.
Votre /etc/lilo.conf NE SERA PAS LE MÊME QUE LE MIEN. Modifiez le pour vos besoins et consultez le BOOTPROMPT howto pour ce qui est du paramètre append. Vous devrez modifier ce fichier par vous-même et ajouter le paramètre append comme je l'ai fait pour les deux cartes ethernet.
Utilisez ces fichiers :
Maintenant, il va vous falloir connecter votre passerelle à Internet.
Avez-vous pensé à installer en premier lieu roadrunner sous Windows 95 pour récupérer les fichiers de configuration? Si c'est le cas, vous avez bien fait.
Téléchargez sur http://www.vortech.net/rrlinux/linux.htm les fichiers rrclientd-1.3.tar.gz et rrdhcpcd-1.02.tar.gz. Vous n'avez pas besoin de rrdhcpcd-1.02.tar.gz à moins que vous ne souhaitiez faire une compilation car il y a un fichier binaire inclus dans rrclientd-1.3.tar.gz. Voici brièvement les étapes par lesquelles il faut passer mais lisez tout de même le fichier README dans rrclientd-1.3.tar.gz. Ce fichier contient de manière plus complète quoi faire ensuite. Utilisez rrdhcpcd pultôt que dhcpcd. Il fonctionne mieux et semble démarrer plus vite.
mkdir /etc/dhcpc
cp /etc/resolv.conf /etc/dhcpc/resolv.conf
rm /etc/resolv.conf
ln -s /etc/dhcpc/resolv.conf /etc/resolv.conf
mv /sbin/dhcpcd /sbin/dhcpcd_old
mv /usr/sbin/dhcpcd /usr/sbin/dhcpcd_old
mv /usr/bin/rdate /usr/bin/rdate_old
ln -s /sbin/rdate /usr/bin/rdate
ln -s /sbin/rrdhcpcd /sbin/dhcpcd
ln -s /sbin/rrdhcpcd /usr/sbin/dhcpcd
ln -s /sbin/rrclientd /usr/sbin/rrclientd
Une fois rrclientd-1.3.tar.gz installé correctement, utilisez ce fichier /root/Login.bat pour commencer votre session de login avec source /root/Login.bat. Pensez à changer USERNAME dans le fichier par le nom d'utilisateur que vous avez. Dans mon scripts, je stoppe et démarre rrdhcpcd, ce qui n'est pas nécessaire. Une fois rrdhcpcd lancé, il essaye de renouveler l'adresse ip toutes les trois heures. Par conséquent, vous ne devriez pas avoir à arrêter rrdhcpcd mais je le fais pour ma part quand même.
Vous devez configurer votre carte ethernet pour qu'elle utilise le protocole dhcp. Faites également en sorte que roadrunner soit un service activé de manière à le lancer quand votre ordinateur est mis en marche. CEla a fonctionné pour moi. J'ai lu que dhcpcd (et probablement rrhcpcd de la même manière) essaye de renouveler l'adresse ip toutes les trois heures. C'est bien. Cela implique que les utilisateurs n'ont pas à le lancer ni à l'arrêter.
A. Tout d'abord, installer roadrunner en tant que service.
cp /root/roadrunner /etc/rc.d/init.d
roadrunner 0:off 1:off 2:off 3:off 4:off 5:off 6:off
roadrunner 0:off 1:off 2:on 3:on 4:on 5:on 6:off
B. Utilisez maintenant le panneau de configuration (control-panel). Loguez vous sous root et lancez X Window avec startx si xdm n'est pas installé. Le control-panel devrait être là. La prochaine étape va mettre en place rrdhcp avec dhcp pour la première carte ethernet (l'ordinateur ne sait pas faire mieux).
Maintenant, rrdhcpcd est lancé en configurant l'utilisation du protocole dhcp par la première carte ethernet et nous avons installé le service roadrunner qui utilise rrclientd.
Vous devriez être connectés à Internet quand votre serveur bootera de même que tous vos clients. Si vous utilisez un navigateur Web, vous aurez peut-être à le configurer pour utiliser le serveur proxy sur le port 8080. Les programmes comme telnet, ssh, nslookup, ftp et ping devraient fonctionner. En fait, il se peut que ping fonctionne avec la simple activation de rrdhcpd.
Pour tout arrêter et tout redémarrer, vous ferez :
/etc/rc.d/init.d/roadrunner stop /etc/rc.d/init.d/network stop /etc/rc.d/init.d/network start /etc/rc.d/init.d/roadrunner start
Bien sûr, c'est un peu lourd. Rrdhcpd essaye de renouveler l'adresse ip toutes les trois heures, ce qui fait que vous ne devriez pas avoir à le lancer et à l'arrêter. C'est une bonne chose dans la mesure où il prend un certain temps à lancer et qu'il bloque le réseau.
Pourquoi vouloir arrêter et relancer le service roadrunner?
En théorie, rrdhcpd devrait obtenir la même adresse ip 99% du temps si vous le laissez activé tout le temps. Si ce n'est pas le cas, vous allez en souffrir et vous allez devoir relancer le service roadrunner. Ainsi, au lieu d'utiliser le script /root/Login.bat, mettez tout simplement dans la crontab l'interruption et le relancement du service roadrunner à des moments précis. Utilisez les fichiers /root/Login2.bat, /root/cron2 et /root/email.pl. Assurez vous d'avoir fait chmod 755 /root/Login2.bat /root/email.pl et pensez également à faire un crontab /root/cron2. Et si d'autres choses passent par cron sous root, pensez à rajoutez ces divers travaux avec add ou vous riquez de voir disparaître vos anciens jobs cron.
J'inclus également une réponse de Joshua Jackson quand je l'ai mailé au sujet des problèmes que l'on pouvait rencontrer quand on est loggué en permanence.
Si, pour quelque raison que ce soit, vous perdez votre adresse IP (cela ne DEVRAIT PAS arriver en temps normal), vos tickets Kerberos et vos informations d'authentification GSS deviendront invalides. Si cela arrive, rrclientd se terminera et vous devrez vous reloguer.
La seule raison qui pourrait faire que vous perdiez votre adresse IP est soit un dysfonctionnement matériel ou logiciel sur le client ou le serveur, soit une réactivation des serveurs dhcp à RR.Joshua Jackson
Utilisez cette esection à vos risques et périls. A ce sujet, j'espère pouvoir faire plus dans la mesure où nombreux sont ceux qui m'ont fait des suggestions utiles. Pour les mises-à-jour de cette page web, regardez à http://linux.med.ohio-state.edu/nielsen/rr.html mais cela changera peut-être un jour. RIEN de ce qui figure ici n'est bien expliqué. Des modifications sont certainement nécessaires. C'est justement ce que je vais faire.
echo démarrage de rrdhcpcd /sbin/rrdhcpcd eth0 echo sommeil de 5 secondes sleep 5 echo démarrage de rrclientd /sbin/rrclientd -u USERNAME /etc/rrpasswd dce-server echo terminé echo sommeil pour 20 secondes de plus sleep 20
domain columbus.rr.com search mark.local columbus.rr.com nameserver 10.0.0.10 ### notre DNS nameserver 204.210.252.18 ### dns de roadrunner nameserver 128.146.1.7 ### POUR LES PERSONNES DE COLUMBUS OHIO SEULEMENT!
Vous ne devriez pas avoir de lignes blanches vides au début des fichiers.
/etc/named.boot pour le serveur
; ; une configuration du serveur de nom en cache seulement ; directory /var/named cache . named.ca primary 0.0.127.in-addr.arpa named.local primary mark.local mark.local primary 0.0.10.in-addr.arpa 10.0.0
/etc/resolv.conf pour le serveur et les clients
domain columbus.rr.com search mark.local columbus.rr.com nameserver 10.0.0.10 ### notre DNS nameserver 204.210.252.18 ### dns de roadrunner nameserver 128.146.1.7 ### POUR LES PERSONNES DE COLUMBUS OHIO SEULEMENT! ### Vous pouvez probablement utiliser notre dns en premier si vous le voulez. ### Pour l'instant, je le ferais
/var/named/mark.local pour le serveur
mark.local. IN SOA main.mark.local. root.main.mark.local. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
mark.local. IN NS main.mark.local.
;localhost IN A 127.0.0.1
main.mark.local. IN A 10.0.0.10
c1.mark.local. IN A 10.0.0.21
c2.mark.local. IN A 10.0.0.22
c3.mark.local. IN A 10.0.0.23
c4.mark.local. IN A 10.0.0.24
c5.mark.local. IN A 10.0.0.25
c6.mark.local. IN A 10.0.0.26
c7.mark.local. IN A 10.0.0.27
c8.mark.local. IN A 10.0.0.28
/var/named/10.0.0 pour le serveur
0.0.10.in-addr.arpa. IN SOA main.mark.local. root.main.mark.local. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS main.mark.local.
10.0.0.10.in-addr.arpa. IN PTR main.mark.local.
21.0.0.10.in-addr.arpa. IN PTR c1.mark.local.
22.0.0.10.in-addr.arpa. IN PTR c2.mark.local.
23.0.0.10.in-addr.arpa. IN PTR c3.mark.local.
24.0.0.10.in-addr.arpa. IN PTR c4.mark.local.
25.0.0.10.in-addr.arpa. IN PTR c5.mark.local.
26.0.0.10.in-addr.arpa. IN PTR c6.mark.local.
27.0.0.10.in-addr.arpa. IN PTR c7.mark.local.
28.0.0.10.in-addr.arpa. IN PTR c8.mark.local.
/var/named/named.local pour le serveur
@ IN SOA localhost. root.localhost. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS localhost.
1 IN PTR localhost.
/etc/hosts pour le serveur et les clients
127.0.0.1 localhost localhost.localdomain 10.0.0.21 c1.mark.local c1 10.0.0.10 main.mark.local main 10.0.0.22 c2.mark.local c2 10.0.0.23 c3.mark.local c3 10.0.0.24 c4.mark.local c4 10.0.0.25 c5.mark.local c5 10.0.0.26 c6.mark.local c6 10.0.0.27 c7.mark.local c7 10.0.0.28 c8.mark.local c8
/etc/resolv.conf pour les clients
search mark.local nameserver 10.0.0.10
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
### ATTENTION: VALABLE POUR MON SEUL ORDINATEUR!!!!!
image=/boot/vmlinuz
label=linux
root=/dev/hda1
append="ether10,0x300,eth0 ether=11,0x310,eth1"
read-only
/etc/rc.d/rc.local pour le serveur
## Ajoutez ce fichier à /etc/rc.d/rc.local echo "configuration de ip Masquerade" /sbin/depmod -a /sbin/modprobe ip_masq_ftp /sbin/modprobe ip_masq_raudio /sbin/modprobe ip_masq_irc echo "positionnement des permissions pour le 10.0.0.0 pour le masquerading" ipfwadm -F -p deny ipfwadm -F -a m -S 10.0.0.0/24 -D 0.0.0.0/0
/etc/sysconfig/network pour le serveur
NETWORKING=yes FORWARD_IPV4=true HOSTNAME=main.mark.local DOMAINNAME=mark.local GATEWAY= GATEWAYDEV=eth0
/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0 IPADDR=10.0.1.10 NETMASK=255.255.255.0 NETWORK=10.0.1.0 BROADCAST=10.0.1.255 ONBOOT=yes
/etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1 IPADDR=10.0.0.10 NETMASK=255.255.255.0 NETWORK=10.0.0.0 BROADCAST=10.0.0.255 ONBOOT=yes
## Ceci est une solution radicale pour lancer et arrêter roadrunner ## Normalement vous ne devriez n'avoir à lancer roadrunner qu'une seule fois ## et vous ne devriez pas avoir à bidouiller la date du réseau echo killing rrclientd /sbin/rrclientd -k sleep 5 echo killing rrdhcpcd /sbin/rrdhcpcd -k eth0 echo sleeping 2 seconds sleep 2 ### enlevez les commentaires des 5 prochaines lignes si vous le désirez ##echo arrêt et démarrage du réseau ##/etc/rc.d/init.d/network stop ##echo sommeil de 5 secondes ##sleep 5 ##/etc/rc.d/init.d/network start echo démarrage de rrdhcpcd /sbin/rrdhcpcd eth0 echo sommeil de 5 secondes sleep 5 echo Démarrage de rrclientd /sbin/rrclientd -u USERNAME /etc/rrpasswd dce-server echo Terminaison echo sommeil de 20 secondes de plus sleep 20
/root/roadrunner pour le serveur
#!/bin/sh
#
# roadrunner Ce script shell démarre et arrête rrclientd
#
# chkconfig: 2345 11 30
# description: Logue le système dans le TWC Road Runner Internet Service
#
# Auteur: Joshua Jackson jjackson@neo.lrun.com
# 1/6/98
#
# Bibliothèque de fonctions source
. /etc/rc.d/init.d/functions
# Configuration du réseau source
. /etc/sysconfig/network
# Vérifie que le réseau est monté
[ ${NETWORKING} = "no" ] && exit 0
[ -f /usr/sbin/rrclientd ] || exit 0
RRUSER="mettez votre nom d'utilisateur ici!"
# Comment le script a-t-il été appelé ?
case "$1" in
start)
# Démarre les daemons.
echo -n "Entrée dans Road Runner: "
daemon rrclientd -u ${RRUSER} /etc/rrpasswd dce-server
echo
;;
stop)
# Arrête les daemons.
echo -n "Sortie de Road Runner "
killproc rrclientd
echo
;;
status)
status rrclientd
;;
restart)
$0 stop
$0 start
;;
*)
echo "Usage: roadrunner start|stop|restart"
exit 1
esac
exit 0
/root/email.pl pour le serveur
!/usr/bin/perl $EMAIL = "USERNAME\@somewhere.foo.edu"; open(EMAIL,"| /bin/mail -s RR $EMAIL"); $date = `date`; chop $date; print EMAIL "DATE ET HEURE: $date\n"; print EMAIL "--------------------------------------------------\n"; print EMAIL "test\n"; close(EMAIL);
# Redémarre dhcpd et rrclient à 7 a.m., 2 p.m. et 10 p.m. # Et le tue à 1 a.m. # Et envoie un e-mail toutes les heures 5 minutes après l'heure 0 7,14,22 * * * /root/Login.bat >> /root/Login.log 0 1 * * * /root/Kill.bat >> /root/Kill.log 5 * * * * /root/mail.pl
/root/Kill.bat pour le serveur
date /sbin/rrclientd -k sleep 5 /sbin/rrdhcpcd -k eth0 sleep 5
### Il suffit d'arrêter et de redémarrer roadrunner rapidement /etc/rc.d/init.d/roadrunner stop sleep 5 /etc/rc.d/init.d/roadrunner start
# Redémarre à 7 a.m., 2 p.m. et 10 p.m. # Et envoie un e-mail toutes les heures 5 minutes après l'heure 0 7,14,22 * * * /root/Login2.bat >> /root/Login2.log 5 * * * * /root/mail.pl
main.mark.local
----------------------------------------------------------------
Copyright © 1998, Mark Nielsen
Adaptation française de Éric Jacoboni et Pierre Tane