User Tools

Site Tools


coursieps:20050415
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
coursieps/20050415.txt · Last modified: 2013/01/30 17:50 (external edit)