Table of Contents
L'administration réseau
toc Etude de cas: une boîte de hosting (qui héberge des sites web). Il faudrait sans doute:
- serveur web
- serveur mail
- dns
- ftp
- ids
- firewall
- routage
cf. le schéma ci-dessous.
http://www.iepsevere.be/Informatique/Linux/topo%20linux%20562x398.jpg
Nous allons utiliser des K6 350 MHz: Nous allons faire un package Debian kernel.
Aujourd'hui:
- introduction réseau
- routage
- serveur de fichiers: NFS
Modele OSI
Open System Interconnexion (pondu par l'ISO).
7 couches: du physique au plus abstrait:
1. Couche physique: câblage, signalisation électrique, encodage du signal (modulation du courant dans le câble: +5 V -> bit à 1, si à 0 V -> bit 0), la carte réseau 2. Couche liaison de données (datalink): si on achète une carte réseau: ethernet, token ring, etc. Chaque carte a une adresse MAC gravée -adresse linéaire- (gérée par le protocole ethernet -protocole non routable, que en local-, tout comme les collisions); c'est encore un peu physique (la puce qui gère le protocole) 3. Couche réseau (network): trouver son chemin: IP (l'adresse IP est chargée en RAM et gérée par l'OS) = Internetwork Protocol (autres exemples: IPX de Novell, Appletalk d'Apple): 4. Couche transport: gestion du trafic (qu'un paquet arrive à destination): TCP (Transport Control Protocol), UDP, SPX 5. Couche de session: mécanisme d'authentification: IPSEC 6. Présentation: format de fichier (PDF) encodage de caractères (UTF-8) 7. Application: services fournis pas l'application (HTTP, [[telnet]], FTP)
Comme c'est un modèle général, on ne nomme pas des applications, mais les protocoles.
GTK (les bibliothèques de fonctions), ce serait dans la couche 7.
Exemple: Une machine se connecte à un serveur web pour voir la page d'accueil de www.linuxfr.org avec l'application Firefox.
7. HTTP 6. texte ASCII (URL) 5. site ou il faut s'authentifier? non -> authentification anonyme 4. encapsulation en segments: segmentation en fonction de la taille de la fenêtre négociée avec le serveur; précision du port (ici: HTTP: port 80) 3. les segments TCP sont encapsulés en paquets IP (avec l'adresse IP du serveur web) 2. les paquets IP sont envoyés à la carte réseau ou ils sont encapsulés dans une trame ethernet (avec l'adresse MAC du destinataire, ici le routeur) et la trame est envoyée à la passerelle par défaut 1. le courant va être modulé pour transmettre les informations
Une fois arrivé à destination, les informations vont faire le chemin inverse: couche 1 → couche 7
couche 2: vérifie que c'est bien pour son adresse MAC couche 3: vérifie que c'est pour son adresse IP couche 4: vérifie le port couche 5: session: anonyme: OK couche 6: assemble l'URL couche 7: analyse la requête, envoie la réponse, et on est reparti dans l'autre sens (couche 7 → couche 1)
Internet Protocol
Adressage IP
Il y a 2 parties:
- partie réseau
- partie hôte
Classes d'adressage IP
Il y en a 3:
- A (pour les super-grandes entreprises): le 1er octet est destiné au réseau et les 3 autres octets sont destinés à la partie hôte
- 256 réseaux
- 16 millions d'hôtes
- si la valeur du premier octet est entre 0 et 126 (0 pas adressable)
- B (pour les grandes entreprises): 2 octets pour les réseaux (65536 réseaux) et 2 octets pour les hôtes (65536 machines)
- si la valeur du premier octet entre 128 à 191
- C (pour les petites entreprises): 3 octets pour le réseaux (16 millions)
- si la valeur du premier octet entre 192 et 223
Notation décimale pointée: 192.168.2.4
Masque de sous-reseau
Une classe A a un masque de sous-réseau: 255.0.0.0
- 255 = partie réseau
- 0.0.0 = partie hôte
Une classe B a un masque de sous-réseau: 255.255.0.0
- 255.255 = partie réseau
- 0.0 = partie hôte
Une classe C a un masque de sous-réseau: 255.255.255.0
- 255.255.255 = partie réseau
- 0 = partie hôte
On peut faire du subnetting: 7 bits à 1 et un bit à 0 pour le masque. Ça permet d'avoir plus d'adresse en pratique.
Adresses privees - adresses publiques
Si je veux rendre connexes 2 réseaux privés, il faut 2 adresses publiques.
Si je veux avoir un range chez moi à la maison, sans les adresses privées, il faut louer un réseau classe C.
Certains réseaux sont gratuits: ce sont des réseaux non routables, donc privés:
- 1 classe A: 10.0.0.0
- 16 classes B: 172.16.0.0 → 192.31.0.0
- 256 classes C: 192.168.0.0 → 192.168.255.0
Dans la classe, nous allons utiliser un réseau privé de classe C: 192.168.1.0; il y aura une machine qui fera la passerelle (et du NAT).
Configuration réseau sous /[[GnuLinux]]
Modification a chaud
Configuration manuelle
Sans changer les fichiers d'initialisation.
On fait cela à l'aide de la commande
ipconfig
Sans paramètre, ipconfig affiche les NICs actives:
ifconfig eth0 Lien encap:Ethernet HWaddr 00:20:18:8C:6E:5C inet adr:192.168.2.149 Bcast:192.168.2.255 Masque:255.255.255.0 adr inet6: fe80::220:18ff:fe8c:6e5c/64 Scope:Lien UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:11423 errors:0 dropped:0 overruns:0 frame:0 TX packets:5780 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 lg file transmission:1000 RX bytes:13148525 (12.5 MiB) TX bytes:624515 (609.8 KiB) Interruption:6 Adresse de base:0xd400 lo Lien encap:Boucle locale inet adr:127.0.0.1 Masque:255.0.0.0 adr inet6: ::1/128 Scope:Hôte UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:110 errors:0 dropped:0 overruns:0 frame:0 TX packets:110 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 lg file transmission:0 RX bytes:7252 (7.0 KiB) TX bytes:7252 (7.0 KiB)
MTU: taille max acceptée d'un paquet (en octets) Metric: distance (nombre de liens) pour arriver là collisions: paquets entrant en collision RX: packets reçus TX: packets envoyés Interruption: IRQ
Exercice: modifier son adresse IP
ifconfig eth0 192.168.1.15
Vérification que ça fonctionne avec la commande ping:
ping -b 192.168.1.0 -c 2 WARNING: pinging broadcast address PING 192.168.1.0 (192.168.1.0) 56(84) bytes of data. 64 bytes from 192.168.1.15: icmp_seq=1 ttl=64 time=0.043 ms 64 bytes from 192.168.1.2: icmp_seq=1 ttl=64 time=0.164 ms (DUP!) 64 bytes from 192.168.1.5: icmp_seq=1 ttl=64 time=0.177 ms (DUP!) 64 bytes from 192.168.1.6: icmp_seq=1 ttl=64 time=0.186 ms (DUP!) 64 bytes from 192.168.1.12: icmp_seq=1 ttl=64 time=0.194 ms (DUP!) 64 bytes from 192.168.1.2: icmp_seq=1 ttl=64 time=0.222 ms (DUP!) 64 bytes from 192.168.1.15: icmp_seq=2 ttl=64 time=0.043 ms --- 192.168.1.0 ping statistics --- 2 packets transmitted, 2 received, +5 duplicates, 0% packet loss, time 1000ms rtt min/avg/max/mdev = 0.043/0.147/0.222/0.067 ms
Problème: on ne peut pas sortir du réseau (par exemple: vers internet).
Il faut ajouter une route par défaut: quand un IP n'est pas dans la table de routage (ou sur le réseau local), on envoie la requête à la passerelle par défaut.
On peut ajouter une route par défaut avec la commande route (qui permet aussi d'afficher les routes connues et d'ajouter ou de supprimer des routes):
route add default gw 192.168.2.1
Pour afficher la route:
route -n Table de routage IP du noyau Destination Passerelle Genmask Indic Metric Ref Use Iface 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 0.0.0.0 192.168.1.2 0.0.0.0 UG 0 0 0 eth0
Configuration automatique
Pour recevoir une adresse du serveur DHCP, on utilise le logiciel client DHCP:
dhclient
Configuration des fichiers
La configuration des interfaces réseaux se fait dans /etc/network/interfaces
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet dhcp
Ici, c'est une configuration automatique (DHCP).
Pour avoir une configuration manuelle, on pourrait faire une autre section:
auto eth0 iface eth0 inet static address 192.168.2.1 netmask 255.255.255.0 gateway 192.168.2.2 network 192.168.2.0 # facultatif
A l'origine, la gestion des cartes réseaux était dans le noyau (en dur). Actuellement, en module.
auto: pour que la carte soit up automatiquement au boot
Pour redémarrer le service:
/etc/init.d/networking restart
Noms de machine
Pour afficher le nom de la machine (ce n'est pas un fichier réseau):
hostname DebLab15
Pour le changer :
hostname 403-15.deblab.org
Il va mettre à jour la valeur dans /proc/sys/kernel/hostname
Pour que ce soit persistant (après redémarrage), il faut modifier le fichier /etc/hostname
Utilisé pour déterminer le (fancy) prompt.
On peut mettre le nom de la machine (exemple: 403-15) ou le nom complet, le fully qualified domain name, FQDN (exemple: 403-15.deblab.org)
Pour donner ce nom à des machines dans le réseau (dont soi-même), il faut les inscrire dans /etc/hosts
127.0.0.1 localhost.localdomain localhost 403-15.deblab.org 403-15 # The following lines are desirable for IPv6 capable hosts ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters ff02::3 ip6-allhosts
/etc/hosts est un fichier réseau.
On peut donc y rajouter des machines (exemple: 403-01.deblab.org).
Quand on fait
ping www.google.com
on ne passe par le fichier /etc/hosts La machine fait appel au service de résolution des noms (DNS).
DNS
On peut définir les serveurs DNS à interroger pour la résolution de noms dans le fichiers /etc/resolv.conf:
search IEPSEvere.be nameserver 195.238.2.21 nameserver 195.238.2.22 nameserver 195.74.193.12 nameserver 194.134.0.12 nameserver 192.238.2.22 nameserver 193.121.171.135
On peut aussi rajouter une ligne our préciser le nom du domaine dans lequel la machine se trouve:
domain deblab.org
Comment déterminer dans quel ordre résoudre les noms (d'abord le fichier hosts, ensuite interroger les serveurs DNS)?
On configure cela dans le fichier /etc/host.conf:
order hosts, bind multi on