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)
|
ethon (0.10.1)
|
||||||
ffi (>= 1.3.0)
|
ffi (>= 1.3.0)
|
||||||
execjs (2.7.0)
|
execjs (2.7.0)
|
||||||
faraday (0.10.0)
|
faraday (0.11.0)
|
||||||
multipart-post (>= 1.2, < 3)
|
multipart-post (>= 1.2, < 3)
|
||||||
ffi (1.9.14)
|
ffi (1.9.17)
|
||||||
forwardable-extended (2.6.0)
|
forwardable-extended (2.6.0)
|
||||||
gemoji (2.1.0)
|
gemoji (3.0.0)
|
||||||
github-pages (110)
|
github-pages (120)
|
||||||
activesupport (= 4.2.7)
|
activesupport (= 4.2.7)
|
||||||
github-pages-health-check (= 1.3.0)
|
github-pages-health-check (= 1.3.0)
|
||||||
jekyll (= 3.3.1)
|
jekyll (= 3.3.1)
|
||||||
|
@ -31,14 +31,14 @@ GEM
|
||||||
jekyll-default-layout (= 0.1.4)
|
jekyll-default-layout (= 0.1.4)
|
||||||
jekyll-feed (= 0.8.0)
|
jekyll-feed (= 0.8.0)
|
||||||
jekyll-gist (= 1.4.0)
|
jekyll-gist (= 1.4.0)
|
||||||
jekyll-github-metadata (= 2.2.0)
|
jekyll-github-metadata (= 2.3.1)
|
||||||
jekyll-mentions (= 1.2.0)
|
jekyll-mentions (= 1.2.0)
|
||||||
jekyll-optional-front-matter (= 0.1.2)
|
jekyll-optional-front-matter (= 0.1.2)
|
||||||
jekyll-paginate (= 1.1.0)
|
jekyll-paginate (= 1.1.0)
|
||||||
jekyll-readme-index (= 0.0.3)
|
jekyll-readme-index (= 0.0.4)
|
||||||
jekyll-redirect-from (= 0.11.0)
|
jekyll-redirect-from (= 0.12.1)
|
||||||
jekyll-relative-links (= 0.2.1)
|
jekyll-relative-links (= 0.3.0)
|
||||||
jekyll-sass-converter (= 1.3.0)
|
jekyll-sass-converter (= 1.5.0)
|
||||||
jekyll-seo-tag (= 2.1.0)
|
jekyll-seo-tag (= 2.1.0)
|
||||||
jekyll-sitemap (= 0.12.0)
|
jekyll-sitemap (= 0.12.0)
|
||||||
jekyll-swiss (= 0.4.0)
|
jekyll-swiss (= 0.4.0)
|
||||||
|
@ -51,17 +51,18 @@ GEM
|
||||||
jekyll-theme-midnight (= 0.0.3)
|
jekyll-theme-midnight (= 0.0.3)
|
||||||
jekyll-theme-minimal (= 0.0.3)
|
jekyll-theme-minimal (= 0.0.3)
|
||||||
jekyll-theme-modernist (= 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-slate (= 0.0.3)
|
||||||
jekyll-theme-tactile (= 0.0.3)
|
jekyll-theme-tactile (= 0.0.3)
|
||||||
jekyll-theme-time-machine (= 0.0.3)
|
jekyll-theme-time-machine (= 0.0.3)
|
||||||
jekyll-titles-from-headings (= 0.1.2)
|
jekyll-titles-from-headings (= 0.1.4)
|
||||||
jemoji (= 0.7.0)
|
jemoji (= 0.8.0)
|
||||||
kramdown (= 1.11.1)
|
kramdown (= 1.11.1)
|
||||||
liquid (= 3.0.6)
|
liquid (= 3.0.6)
|
||||||
listen (= 3.0.6)
|
listen (= 3.0.6)
|
||||||
mercenary (~> 0.3)
|
mercenary (~> 0.3)
|
||||||
minima (= 2.0.0)
|
minima (= 2.0.0)
|
||||||
|
nokogiri (= 1.6.8.1)
|
||||||
rouge (= 1.11.1)
|
rouge (= 1.11.1)
|
||||||
terminal-table (~> 1.4)
|
terminal-table (~> 1.4)
|
||||||
github-pages-health-check (1.3.0)
|
github-pages-health-check (1.3.0)
|
||||||
|
@ -70,10 +71,10 @@ GEM
|
||||||
octokit (~> 4.0)
|
octokit (~> 4.0)
|
||||||
public_suffix (~> 2.0)
|
public_suffix (~> 2.0)
|
||||||
typhoeus (~> 0.7)
|
typhoeus (~> 0.7)
|
||||||
html-pipeline (2.4.2)
|
html-pipeline (2.5.0)
|
||||||
activesupport (>= 2)
|
activesupport (>= 2)
|
||||||
nokogiri (>= 1.4)
|
nokogiri (>= 1.4)
|
||||||
i18n (0.7.0)
|
i18n (0.8.0)
|
||||||
jekyll (3.3.1)
|
jekyll (3.3.1)
|
||||||
addressable (~> 2.4)
|
addressable (~> 2.4)
|
||||||
colorator (~> 1.0)
|
colorator (~> 1.0)
|
||||||
|
@ -95,7 +96,7 @@ GEM
|
||||||
jekyll (~> 3.3)
|
jekyll (~> 3.3)
|
||||||
jekyll-gist (1.4.0)
|
jekyll-gist (1.4.0)
|
||||||
octokit (~> 4.2)
|
octokit (~> 4.2)
|
||||||
jekyll-github-metadata (2.2.0)
|
jekyll-github-metadata (2.3.1)
|
||||||
jekyll (~> 3.1)
|
jekyll (~> 3.1)
|
||||||
octokit (~> 4.0, != 4.4.0)
|
octokit (~> 4.0, != 4.4.0)
|
||||||
jekyll-mentions (1.2.0)
|
jekyll-mentions (1.2.0)
|
||||||
|
@ -105,14 +106,14 @@ GEM
|
||||||
jekyll-optional-front-matter (0.1.2)
|
jekyll-optional-front-matter (0.1.2)
|
||||||
jekyll (~> 3.0)
|
jekyll (~> 3.0)
|
||||||
jekyll-paginate (1.1.0)
|
jekyll-paginate (1.1.0)
|
||||||
jekyll-readme-index (0.0.3)
|
jekyll-readme-index (0.0.4)
|
||||||
jekyll (~> 3.0)
|
jekyll (~> 3.0)
|
||||||
jekyll-redirect-from (0.11.0)
|
jekyll-redirect-from (0.12.1)
|
||||||
jekyll (>= 2.0)
|
|
||||||
jekyll-relative-links (0.2.1)
|
|
||||||
jekyll (~> 3.3)
|
jekyll (~> 3.3)
|
||||||
jekyll-sass-converter (1.3.0)
|
jekyll-relative-links (0.3.0)
|
||||||
sass (~> 3.2)
|
jekyll (~> 3.3)
|
||||||
|
jekyll-sass-converter (1.5.0)
|
||||||
|
sass (~> 3.4)
|
||||||
jekyll-seo-tag (2.1.0)
|
jekyll-seo-tag (2.1.0)
|
||||||
jekyll (~> 3.3)
|
jekyll (~> 3.3)
|
||||||
jekyll-sitemap (0.12.0)
|
jekyll-sitemap (0.12.0)
|
||||||
|
@ -136,7 +137,7 @@ GEM
|
||||||
jekyll (~> 3.3)
|
jekyll (~> 3.3)
|
||||||
jekyll-theme-modernist (0.0.3)
|
jekyll-theme-modernist (0.0.3)
|
||||||
jekyll (~> 3.3)
|
jekyll (~> 3.3)
|
||||||
jekyll-theme-primer (0.1.5)
|
jekyll-theme-primer (0.1.7)
|
||||||
jekyll (~> 3.3)
|
jekyll (~> 3.3)
|
||||||
jekyll-theme-slate (0.0.3)
|
jekyll-theme-slate (0.0.3)
|
||||||
jekyll (~> 3.3)
|
jekyll (~> 3.3)
|
||||||
|
@ -144,39 +145,41 @@ GEM
|
||||||
jekyll (~> 3.3)
|
jekyll (~> 3.3)
|
||||||
jekyll-theme-time-machine (0.0.3)
|
jekyll-theme-time-machine (0.0.3)
|
||||||
jekyll (~> 3.3)
|
jekyll (~> 3.3)
|
||||||
jekyll-titles-from-headings (0.1.2)
|
jekyll-titles-from-headings (0.1.4)
|
||||||
jekyll (~> 3.3)
|
jekyll (~> 3.3)
|
||||||
jekyll-watch (1.5.0)
|
jekyll-watch (1.5.0)
|
||||||
listen (~> 3.0, < 3.1)
|
listen (~> 3.0, < 3.1)
|
||||||
jemoji (0.7.0)
|
jemoji (0.8.0)
|
||||||
activesupport (~> 4.0)
|
activesupport (~> 4.0)
|
||||||
gemoji (~> 2.0)
|
gemoji (~> 3.0)
|
||||||
html-pipeline (~> 2.2)
|
html-pipeline (~> 2.2)
|
||||||
jekyll (>= 3.0)
|
jekyll (>= 3.0)
|
||||||
json (1.8.3)
|
json (1.8.6)
|
||||||
kramdown (1.11.1)
|
kramdown (1.11.1)
|
||||||
liquid (3.0.6)
|
liquid (3.0.6)
|
||||||
listen (3.0.6)
|
listen (3.0.6)
|
||||||
rb-fsevent (>= 0.9.3)
|
rb-fsevent (>= 0.9.3)
|
||||||
rb-inotify (>= 0.9.7)
|
rb-inotify (>= 0.9.7)
|
||||||
mercenary (0.3.6)
|
mercenary (0.3.6)
|
||||||
|
mini_portile2 (2.1.0)
|
||||||
minima (2.0.0)
|
minima (2.0.0)
|
||||||
minitest (5.10.1)
|
minitest (5.10.1)
|
||||||
multipart-post (2.0.0)
|
multipart-post (2.0.0)
|
||||||
net-dns (0.8.0)
|
net-dns (0.8.0)
|
||||||
nokogiri (1.6.8.1)
|
nokogiri (1.6.8.1)
|
||||||
|
mini_portile2 (~> 2.1.0)
|
||||||
octokit (4.6.2)
|
octokit (4.6.2)
|
||||||
sawyer (~> 0.8.0, >= 0.5.3)
|
sawyer (~> 0.8.0, >= 0.5.3)
|
||||||
pathutil (0.14.0)
|
pathutil (0.14.0)
|
||||||
forwardable-extended (~> 2.6)
|
forwardable-extended (~> 2.6)
|
||||||
public_suffix (2.0.4)
|
public_suffix (2.0.5)
|
||||||
rb-fsevent (0.9.8)
|
rb-fsevent (0.9.8)
|
||||||
rb-inotify (0.9.7)
|
rb-inotify (0.9.8)
|
||||||
ffi (>= 0.5.0)
|
ffi (>= 0.5.0)
|
||||||
redcarpet (3.3.4)
|
redcarpet (3.4.0)
|
||||||
rouge (1.11.1)
|
rouge (1.11.1)
|
||||||
safe_yaml (1.0.4)
|
safe_yaml (1.0.4)
|
||||||
sass (3.4.22)
|
sass (3.4.23)
|
||||||
sawyer (0.8.1)
|
sawyer (0.8.1)
|
||||||
addressable (>= 2.3.5, < 2.6)
|
addressable (>= 2.3.5, < 2.6)
|
||||||
faraday (~> 0.8, < 1.0)
|
faraday (~> 0.8, < 1.0)
|
||||||
|
@ -187,7 +190,7 @@ GEM
|
||||||
ethon (>= 0.8.0)
|
ethon (>= 0.8.0)
|
||||||
tzinfo (1.2.2)
|
tzinfo (1.2.2)
|
||||||
thread_safe (~> 0.1)
|
thread_safe (~> 0.1)
|
||||||
unicode-display_width (1.1.2)
|
unicode-display_width (1.1.3)
|
||||||
|
|
||||||
PLATFORMS
|
PLATFORMS
|
||||||
ruby
|
ruby
|
||||||
|
@ -201,4 +204,4 @@ DEPENDENCIES
|
||||||
rouge
|
rouge
|
||||||
|
|
||||||
BUNDLED WITH
|
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