# Admin Linux : Cours 2 : NFS, DHCP et DNS

## NFS (Network File System)

### Serveur

Permet d'exposer un fichier comme lecteur réseau.

Configuration du serveur via le fichier `/etc/exports` : 

```bash
<chemin du système de fichier> <hôte>(<options>)
```

Exemple : 

```
/home/nfs1  m1(rw,sync,no_subtree_check)
```

### Client

Montage éphémère d'un NFS : 

```bash
mount -t <type> -o <options> <hôte>:<nfs> <fs local>
```

Montage persistent : 
- `/etc/mtab` : liste des systèmes de fichier montés
- `/etc/fstab` : pour créer des montages persistants

## DHCP

**Dynamic Host Configuration Protol** : Permet de fournir dynamiquement aux machines connectées au réseau local une adresse IP, un masque de sous réseau ainsi qu'une passerelle par défaut.

- Implémenté à la couche 4 (Transport) du modèle OSI
- Port :
	- 67 pour les requêtes
    - 68 pour les réponses

Etapes : 

1. Le client broadcast un DHCP Discover
2. Le serveur envoie au client un DHCP Offer
3. Le client envoie un serveur un DHCP Request
4. Le serveur répond avec un DHCP ACK

Seulement ensuite le client peut utiliser l'adresse. Le temps d'utilisation est appelé le Lease Time.

Sur linux : 

- Client : `dhclient`
- Serveur : `isc-dhcp-server`
- Config : `/etc/dhcpd.conf`

### Configuration serveur

```bash
subnet 192.168.0.0 netmask 255.255.255.0 { # adresse du réseau
	range 192.168.0.20 192.168.0.50; # plage d'IP
    option routers 192.168.0.2; # passerelle par défaut
    option domain-name-servers 8.8.8.8,1.1.1.1; # DNS
    default-lease-time 86400; # temps du bail DHCP par défaut
    max-lease-time 604800; # temps max du bail DHCP
    option broadcast-address 192.168.0.255; # adresse de broadcast
}
```

Pour avoir un client avec une adresse fixe : 

```bash
host PC_ARSENE { # nom de la machine
	hardward ethernet 00:3013ba:b7:d1;
    fixed-address 192.168.0.100
}
```

Il faut également préciser l'interface pour la délivrance des beaux dans `/etc/default/iscèdhcp-server` : 

```bash
INTERFACES="eth0"
```

Enfin pour démarrer arrêter le serveur : 

```bash
/etc/init.d/isc-dhcp-server start
/etc/init.d/isc-dhcp-server stop
```

### Configuration Client

Dans `/etc/network/interfaces` :

```bash
allowhotplug eth0
auto eth0
iface eht0 inet dhcp
```

puis : 

```bash
sudo service networking restart
```

## DNS

Permet de résoudre des IP à partir de noms de domaine. La première correspondance locale est dans `/etc/hosts`. Pour le reste, on contacte un serveur DNS.

Configuration : 

- `/etc/hostname` : fichier de définition du nom d'hôte
- `/etc/hosts` : 1er fichier de correspondance DNS
- `/etc/nsswitch` : fichier de configuration du service de nom
- `/etc/resolv.conf` : fichier de configuration de la résolution DNS

### Configuration du serveur (avec Bind9)

#### `/etc/bind/named.conf`

Fichier de configuration primaire du DNS : 

```bash
inclue "/etc/bind/named.conf.options";
inclue "/etc/bind/named.conf.local";
inclue "/etc/bind/named.conf.default-zones";

zone "boss.fr" {
	type master;
    file "/etc/bind/db.stpotache.fr";
}
```

#### `/etc/bind/db.<nom domaine>`

```bash
$TTL	86400
@	IN	SOA dns.stpotache.fr. root.stpotache.fr.)
			2016021507
            3600
            3000
            2419200
            10
            )
            
; serveurs DNS

@	IN	NS dns.stpotache.fr.
dns	IN	A 172.16.181.15

; hotes

imprimante	IN A 172.16.181.154
web			IN A 172.16.181.155
```

#### Commandes

Démarrer arrêter : 

```bash
/etc/init.d/bind9 start
/etc/init.d/bind9 stop
```

### Configuration client

Dans `/etc/bind/resolv.conf`

```bash
search stpotache.fr
nameserver 172.16.181.15
```





