forked from quentin/quentin.dufour.io
Ajout d'un article sur DHCP
This commit is contained in:
parent
d8d5359c36
commit
4cd80beafc
2 changed files with 128 additions and 32 deletions
67
Gemfile.lock
67
Gemfile.lock
|
@ -17,12 +17,12 @@ GEM
|
|||
ethon (0.10.1)
|
||||
ffi (>= 1.3.0)
|
||||
execjs (2.7.0)
|
||||
faraday (0.10.0)
|
||||
faraday (0.11.0)
|
||||
multipart-post (>= 1.2, < 3)
|
||||
ffi (1.9.14)
|
||||
ffi (1.9.17)
|
||||
forwardable-extended (2.6.0)
|
||||
gemoji (2.1.0)
|
||||
github-pages (110)
|
||||
gemoji (3.0.0)
|
||||
github-pages (120)
|
||||
activesupport (= 4.2.7)
|
||||
github-pages-health-check (= 1.3.0)
|
||||
jekyll (= 3.3.1)
|
||||
|
@ -31,14 +31,14 @@ GEM
|
|||
jekyll-default-layout (= 0.1.4)
|
||||
jekyll-feed (= 0.8.0)
|
||||
jekyll-gist (= 1.4.0)
|
||||
jekyll-github-metadata (= 2.2.0)
|
||||
jekyll-github-metadata (= 2.3.1)
|
||||
jekyll-mentions (= 1.2.0)
|
||||
jekyll-optional-front-matter (= 0.1.2)
|
||||
jekyll-paginate (= 1.1.0)
|
||||
jekyll-readme-index (= 0.0.3)
|
||||
jekyll-redirect-from (= 0.11.0)
|
||||
jekyll-relative-links (= 0.2.1)
|
||||
jekyll-sass-converter (= 1.3.0)
|
||||
jekyll-readme-index (= 0.0.4)
|
||||
jekyll-redirect-from (= 0.12.1)
|
||||
jekyll-relative-links (= 0.3.0)
|
||||
jekyll-sass-converter (= 1.5.0)
|
||||
jekyll-seo-tag (= 2.1.0)
|
||||
jekyll-sitemap (= 0.12.0)
|
||||
jekyll-swiss (= 0.4.0)
|
||||
|
@ -51,17 +51,18 @@ GEM
|
|||
jekyll-theme-midnight (= 0.0.3)
|
||||
jekyll-theme-minimal (= 0.0.3)
|
||||
jekyll-theme-modernist (= 0.0.3)
|
||||
jekyll-theme-primer (= 0.1.5)
|
||||
jekyll-theme-primer (= 0.1.7)
|
||||
jekyll-theme-slate (= 0.0.3)
|
||||
jekyll-theme-tactile (= 0.0.3)
|
||||
jekyll-theme-time-machine (= 0.0.3)
|
||||
jekyll-titles-from-headings (= 0.1.2)
|
||||
jemoji (= 0.7.0)
|
||||
jekyll-titles-from-headings (= 0.1.4)
|
||||
jemoji (= 0.8.0)
|
||||
kramdown (= 1.11.1)
|
||||
liquid (= 3.0.6)
|
||||
listen (= 3.0.6)
|
||||
mercenary (~> 0.3)
|
||||
minima (= 2.0.0)
|
||||
nokogiri (= 1.6.8.1)
|
||||
rouge (= 1.11.1)
|
||||
terminal-table (~> 1.4)
|
||||
github-pages-health-check (1.3.0)
|
||||
|
@ -70,10 +71,10 @@ GEM
|
|||
octokit (~> 4.0)
|
||||
public_suffix (~> 2.0)
|
||||
typhoeus (~> 0.7)
|
||||
html-pipeline (2.4.2)
|
||||
html-pipeline (2.5.0)
|
||||
activesupport (>= 2)
|
||||
nokogiri (>= 1.4)
|
||||
i18n (0.7.0)
|
||||
i18n (0.8.0)
|
||||
jekyll (3.3.1)
|
||||
addressable (~> 2.4)
|
||||
colorator (~> 1.0)
|
||||
|
@ -95,7 +96,7 @@ GEM
|
|||
jekyll (~> 3.3)
|
||||
jekyll-gist (1.4.0)
|
||||
octokit (~> 4.2)
|
||||
jekyll-github-metadata (2.2.0)
|
||||
jekyll-github-metadata (2.3.1)
|
||||
jekyll (~> 3.1)
|
||||
octokit (~> 4.0, != 4.4.0)
|
||||
jekyll-mentions (1.2.0)
|
||||
|
@ -105,14 +106,14 @@ GEM
|
|||
jekyll-optional-front-matter (0.1.2)
|
||||
jekyll (~> 3.0)
|
||||
jekyll-paginate (1.1.0)
|
||||
jekyll-readme-index (0.0.3)
|
||||
jekyll-readme-index (0.0.4)
|
||||
jekyll (~> 3.0)
|
||||
jekyll-redirect-from (0.11.0)
|
||||
jekyll (>= 2.0)
|
||||
jekyll-relative-links (0.2.1)
|
||||
jekyll-redirect-from (0.12.1)
|
||||
jekyll (~> 3.3)
|
||||
jekyll-sass-converter (1.3.0)
|
||||
sass (~> 3.2)
|
||||
jekyll-relative-links (0.3.0)
|
||||
jekyll (~> 3.3)
|
||||
jekyll-sass-converter (1.5.0)
|
||||
sass (~> 3.4)
|
||||
jekyll-seo-tag (2.1.0)
|
||||
jekyll (~> 3.3)
|
||||
jekyll-sitemap (0.12.0)
|
||||
|
@ -136,7 +137,7 @@ GEM
|
|||
jekyll (~> 3.3)
|
||||
jekyll-theme-modernist (0.0.3)
|
||||
jekyll (~> 3.3)
|
||||
jekyll-theme-primer (0.1.5)
|
||||
jekyll-theme-primer (0.1.7)
|
||||
jekyll (~> 3.3)
|
||||
jekyll-theme-slate (0.0.3)
|
||||
jekyll (~> 3.3)
|
||||
|
@ -144,39 +145,41 @@ GEM
|
|||
jekyll (~> 3.3)
|
||||
jekyll-theme-time-machine (0.0.3)
|
||||
jekyll (~> 3.3)
|
||||
jekyll-titles-from-headings (0.1.2)
|
||||
jekyll-titles-from-headings (0.1.4)
|
||||
jekyll (~> 3.3)
|
||||
jekyll-watch (1.5.0)
|
||||
listen (~> 3.0, < 3.1)
|
||||
jemoji (0.7.0)
|
||||
jemoji (0.8.0)
|
||||
activesupport (~> 4.0)
|
||||
gemoji (~> 2.0)
|
||||
gemoji (~> 3.0)
|
||||
html-pipeline (~> 2.2)
|
||||
jekyll (>= 3.0)
|
||||
json (1.8.3)
|
||||
json (1.8.6)
|
||||
kramdown (1.11.1)
|
||||
liquid (3.0.6)
|
||||
listen (3.0.6)
|
||||
rb-fsevent (>= 0.9.3)
|
||||
rb-inotify (>= 0.9.7)
|
||||
mercenary (0.3.6)
|
||||
mini_portile2 (2.1.0)
|
||||
minima (2.0.0)
|
||||
minitest (5.10.1)
|
||||
multipart-post (2.0.0)
|
||||
net-dns (0.8.0)
|
||||
nokogiri (1.6.8.1)
|
||||
mini_portile2 (~> 2.1.0)
|
||||
octokit (4.6.2)
|
||||
sawyer (~> 0.8.0, >= 0.5.3)
|
||||
pathutil (0.14.0)
|
||||
forwardable-extended (~> 2.6)
|
||||
public_suffix (2.0.4)
|
||||
public_suffix (2.0.5)
|
||||
rb-fsevent (0.9.8)
|
||||
rb-inotify (0.9.7)
|
||||
rb-inotify (0.9.8)
|
||||
ffi (>= 0.5.0)
|
||||
redcarpet (3.3.4)
|
||||
redcarpet (3.4.0)
|
||||
rouge (1.11.1)
|
||||
safe_yaml (1.0.4)
|
||||
sass (3.4.22)
|
||||
sass (3.4.23)
|
||||
sawyer (0.8.1)
|
||||
addressable (>= 2.3.5, < 2.6)
|
||||
faraday (~> 0.8, < 1.0)
|
||||
|
@ -187,7 +190,7 @@ GEM
|
|||
ethon (>= 0.8.0)
|
||||
tzinfo (1.2.2)
|
||||
thread_safe (~> 0.1)
|
||||
unicode-display_width (1.1.2)
|
||||
unicode-display_width (1.1.3)
|
||||
|
||||
PLATFORMS
|
||||
ruby
|
||||
|
@ -201,4 +204,4 @@ DEPENDENCIES
|
|||
rouge
|
||||
|
||||
BUNDLED WITH
|
||||
1.12.5
|
||||
1.14.3
|
||||
|
|
93
_posts/2017-02-10-dhcp-gateways.md
Normal file
93
_posts/2017-02-10-dhcp-gateways.md
Normal file
|
@ -0,0 +1,93 @@
|
|||
---
|
||||
layout: post
|
||||
slug: bloque-a-la-recuperation-de-l-adresse-ip
|
||||
status: published
|
||||
title: Bloqué à la récupération de l'adresse IP
|
||||
description: Vous dites ? Une norme ?
|
||||
disqus: true
|
||||
categories:
|
||||
- systeme
|
||||
- linux
|
||||
tags:
|
||||
---
|
||||
|
||||
Après une récente modification de mon serveur DHCP, je me retrouvais dans l'impossibilité de connecter une tablette à mon réseau.
|
||||
Cette dernière restait bloquée à `Récupération de l'adresse IP`. Après avoir un peu cherché sur internet, je n'ai pas trouvé de solution satisfaisante.
|
||||
Le serveur DHCP fonctionnait avec les autres ordinateurs.
|
||||
|
||||
## Fonctionnement (simplifié) de DHCP
|
||||
|
||||
```raw
|
||||
Client Serveur
|
||||
|--- DHCPREQUEST -->|
|
||||
|<--- DHCPOFFER ----|
|
||||
|----- DHCPACK ---->|
|
||||
```
|
||||
|
||||
Le client demande une adresse, le serveur lui en propose une, le client accepte.
|
||||
|
||||
## Logs
|
||||
|
||||
J'ai commencé par regarder les logs de `isc-dhcp-server`.
|
||||
J'ai trouvé un long enchainement de DHCPOFFER et de DHCPREQUEST sans jamais trouver de DHCPACK.
|
||||
|
||||
```raw
|
||||
dhcpd[2207]: DHCPREQUEST for 192.168.1.77 (192.168.1.254) from aa:aa:aa:aa:aa:aa (android-xx) via br0
|
||||
dhcpd[2207]: DHCPOFFER on 192.168.1.77 to aa:aa:aa:aa:aa:aa (android-xx) via br0
|
||||
dhcpd[2207]: DHCPREQUEST for 192.168.1.77 (192.168.1.254) from aa:aa:aa:aa:aa:aa (android-xx) via br0
|
||||
dhcpd[2207]: DHCPOFFER on 192.168.1.77 to aa:aa:aa:aa:aa:aa (android-xx) via br0
|
||||
```
|
||||
|
||||
Il semblerait donc que le client, notre tablette, n'aime pas la proposition du serveur DHCP.
|
||||
|
||||
## Modification de la configuration en aveugle
|
||||
|
||||
J'ai donc modifié la configuration de mon serveur DHCP en la simplifiant le plus possible, jusqu'à ce que ma tablette réussisse à se connecter.
|
||||
Le coupable était la ligne :
|
||||
|
||||
```raw
|
||||
option routers 192.168.1.254, 192.168.1.1;
|
||||
```
|
||||
|
||||
En ne spécifiant qu'une seule passerelle, le problème est résolu :
|
||||
|
||||
```raw
|
||||
option routers 192.168.1.254;
|
||||
```
|
||||
|
||||
Mais d'où vient ce problème ?
|
||||
|
||||
## Traffic réseau
|
||||
|
||||
Je me suis demandé ce que pouvait bien envoyer `isc-dhcp-server` à ma tablette pour qu'elle n'en veuille pas.
|
||||
J'ai donc comparé les paquets envoyé avec les deux configurations différentes.
|
||||
|
||||
Pour écouter le traffic réseau j'ai utilisé `tcpdump`. L'option `-vv` est bien pratique car elle permet d'expliquer le contenu du paquet.
|
||||
Dans le cas d'un protocole inconu, `-XX` permet d'avoir un hexdump. Les deux sont combinables.
|
||||
|
||||
```raw
|
||||
sudo tcpdump -i br0 -vv -e -n port 67 or port 68 and ether host aa:aa:aa:aa:aa:aa
|
||||
```
|
||||
|
||||
Les paquets `DHCPOFFER` avec sont quasiment identiques. Celui avec les deux gateways fait 4 octets de plus (on notera que c'est aussi la taille d'une ipv4).
|
||||
Des valeurs générés aléatoirements sont aussi différentes. Mais pour le reste, c'est identique.
|
||||
|
||||
En tout cas, `tcpdump` n'a pas de problème à décoder nos champs `gateway` dans les deux cas.
|
||||
|
||||
|
||||
```raw
|
||||
Default-Gateway Option 3, length 4: 192.168.1.254
|
||||
```
|
||||
```raw
|
||||
Default-Gateway Option 3, length 8: 192.168.1.254,192.168.1.1
|
||||
```
|
||||
|
||||
## Etude du client DHCP
|
||||
|
||||
Le protocole DHCP indique que le client doit envoyer son nom :
|
||||
|
||||
```raw
|
||||
Vendor-Class Option 60, length 16: "android-dhcp-6.0"
|
||||
```
|
||||
|
||||
*A suivre*
|
Loading…
Reference in a new issue