Auteur Sujet: Récupérer les info DHCP sous Linux  (Lu 11200 fois)

0 Membres et 1 Invité sur ce sujet

vivien

  • Administrateur
  • *
  • Messages: 46 994
    • Twitter LaFibre.info
Récupérer les info DHCP sous Linux
« le: 19 juillet 2016 à 15:33:52 »
Où sont les informations de la dernière requête DHCP ?

Dans un fichier !

Voici la commande sous Ubuntu (avec NetworkManager) pour trouver le fichier en question avec le bail DHCP en cours de validité :
ps auxww | grep -- "-lf .*\.lease" | grep -v grep | grep -v sed | sed 's{^.*-lf \(.*\.lease\).*{\1{'

Exemple :

$ ps auxww | grep -- "-lf .*\.lease" | grep -v grep | grep -v sed | sed 's{^.*-lf \(.*\.lease\).*{\1{'
/var/lib/NetworkManager/dhclient-90a20f09-4866-4250-b232-5877503831fd-enp3s0.lease


Voici le contenu du fichier (PC connecté en Ethernet à une Livebox FTTH v3 d'Orange)

$ cat /var/lib/NetworkManager/dhclient-90a20f09-4866-4250-b232-5877503831fd-enp3s0.lease
lease {
  interface "enp3s0";
  fixed-address 192.168.1.14;
  option subnet-mask 255.255.255.0;
  option routers 192.168.1.1;
  option dhcp-lease-time 86400;
  option dhcp-message-type 5;
  option domain-name-servers 192.168.1.1;
  option dhcp-server-identifier 192.168.1.1;
  option dhcp-renewal-time 43200;
  option broadcast-address 192.168.1.255;
  option dhcp-rebinding-time 75600;
  option domain-name "home";
  option vendor.unknown-3561 4:6:46:30:38:32:36:31:5:f:4e:51:31:34:31:39:34:30:34:34:30:30:38:31:30:6:9:4c:69:76:65:62:6f:78:20:33;
  renew 2 2016/07/19 21:43:22;
  rebind 3 2016/07/20 09:42:53;
  expire 3 2016/07/20 12:42:53;
}


Un ifconfig sur ma machine :
$ ifconfig
enp3s0    Link encap:Ethernet  HWaddr c0:3f:d5:64:e8:d6 
          inet adr:192.168.1.14  Bcast:192.168.1.255  Masque:255.255.255.0
          adr inet6: 2a01:cb08:756:c700:6965:772:3c71:440d/64 Scope:Global
          adr inet6: fe80::9e5a:6b52:c91e:345a/64 Scope:Lien
          adr inet6: 2a01:cb08:756:c700:da05:9f83:8b2a:6209/64 Scope:Global
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Packets reçus:9236 erreurs:0 :0 overruns:0 frame:0
          TX packets:7805 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:1000
          Octets reçus:4317275 (4.3 MB) Octets transmis:4735521 (4.7 MB)

lo        Link 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:65536  Metric:1
          Packets reçus:11068 erreurs:0 :0 overruns:0 frame:0
          TX packets:11068 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:1
          Octets reçus:4676683 (4.6 MB) Octets transmis:4676683 (4.6 MB)

wlp2s0    Link encap:Ethernet  HWaddr ac:7b:a1:94:a0:6b 
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          Packets reçus:0 erreurs:0 :0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:1000
          Octets reçus:0 (0.0 B) Octets transmis:0 (0.0 B)

kcdtv

  • Abonné FAI autre
  • *
  • Messages: 98
  • Internacionalunya 00
    • wifi-libre
Récupérer les info DHCP sous Linux
« Réponse #1 le: 20 juillet 2016 à 00:31:16 »
Je ne sais pas si c'est parce que je n'utilise pas network manager mais moi j'ai ça dans
/var/lib/dhcp/dhclient.leaseskcdtv@ramonperez:/var/lib/dhcp$ cat dhclient.leases
lease {
  interface "wlan0";
  fixed-address 192.168.1.43;
  option subnet-mask 255.255.255.0;
  option routers 192.168.1.1;
  option dhcp-lease-time 86400;
  option dhcp-message-type 5;
  option domain-name-servers 192.168.1.1;
  option dhcp-server-identifier 192.168.1.1;
  option dhcp-renewal-time 43200;
  option broadcast-address 192.168.1.255;
  option dhcp-rebinding-time 75600;
  renew 2 2016/07/19 17:59:39;
  rebind 2 2016/07/19 17:59:39;
  expire 2 2016/07/19 17:59:39;
}
lease {
  interface "eth0";
  fixed-address 192.168.26.101;
  option subnet-mask 255.255.255.0;
  option routers 192.168.26.1;
  option dhcp-lease-time 28800;
  option dhcp-message-type 5;
  option domain-name-servers 192.168.1.1;
  option dhcp-server-identifier 192.168.26.1;
  option dhcp-renewal-time 14400;
  option dhcp-rebinding-time 25200;
  option domain-name "ramonperez";
  renew 2 2016/07/19 17:59:38;
  rebind 2 2016/07/19 17:59:38;
  expire 2 2016/07/19 17:59:38;
}
lease {
  interface "wlan1";
  fixed-address 192.168.1.72;
  option subnet-mask 255.255.255.0;
  option routers 192.168.1.1;
  option dhcp-lease-time 86400;
  option dhcp-message-type 5;
  option domain-name-servers 192.168.1.1;
  option dhcp-server-identifier 192.168.1.1;
  option dhcp-renewal-time 43200;
  option broadcast-address 192.168.1.255;
  option dhcp-rebinding-time 75600;
  renew 6 2016/07/16 23:01:05;
  rebind 0 2016/07/17 09:20:04;
  expire 0 2016/07/17 12:20:04;
}
lease {
  interface "wlan0";
  fixed-address 192.168.1.43;
  option subnet-mask 255.255.255.0;
  option routers 192.168.1.1;
  option dhcp-lease-time 86400;
  option dhcp-message-type 5;
  option domain-name-servers 192.168.1.1;
  option dhcp-server-identifier 192.168.1.1;
  option dhcp-renewal-time 43200;
  option broadcast-address 192.168.1.255;
  option dhcp-rebinding-time 75600;
  renew 3 2016/07/20 03:10:44;
  rebind 3 2016/07/20 14:59:43;
  expire 3 2016/07/20 17:59:43;
}
Dans ce cas c'est pas seulement le dernier en cours mais le dernier (en cours ou pas) sur chaque interface
Par curiosité; tu as aussi ce fichier ou c'est tout dans le dossier networkmanager?

vivien

  • Administrateur
  • *
  • Messages: 46 994
    • Twitter LaFibre.info
Récupérer les info DHCP sous Linux
« Réponse #2 le: 20 juillet 2016 à 06:20:55 »
Le fichier /var/lib/dhcp/dhclient.leases existe chez moi, mais il est vide (Ubuntu 16.04 avec NetworkManager).

Voici un exemple avec un PC portable, dont le nom est "vivien5", connecté en WiFi avec une Bbox ADSL :


$ ps auxww | grep -- "-lf .*\.lease" | grep -v grep | grep -v sed | sed 's{^.*-lf \(.*\.lease\).*{\1{'
/var/lib/NetworkManager/dhclient-5023463e-1415-4f67-997a-54518e51a2bf-wlp2s0.lease


On a plus que le bail DHCP en cours de validité :
$ cat /var/lib/NetworkManager/dhclient-5023463e-1415-4f67-997a-54518e51a2bf-wlp2s0.lease
lease {
  interface "wlp2s0";
  fixed-address 192.168.1.43;
  option subnet-mask 255.255.255.0;
  option dhcp-lease-time 86400;
  option routers 192.168.1.254;
  option dhcp-message-type 5;
  option dhcp-server-identifier 192.168.1.254;
  option domain-name-servers 192.168.1.254;
  option interface-mtu 1500;
  option dhcp-renewal-time 43200;
  option dhcp-rebinding-time 75600;
  option broadcast-address 192.168.1.255;
  option host-name "vivien5-001";
  option domain-name "lan";
  renew 3 2016/07/20 07:47:12;
  rebind 3 2016/07/20 17:50:16;
  expire 3 2016/07/20 20:50:16;
}
lease {
  interface "wlp2s0";
  fixed-address 192.168.1.43;
  option subnet-mask 255.255.255.0;
  option routers 192.168.1.254;
  option dhcp-lease-time 86400;
  option dhcp-message-type 5;
  option domain-name-servers 192.168.1.254;
  option dhcp-server-identifier 192.168.1.254;
  option interface-mtu 1500;
  option dhcp-renewal-time 43200;
  option broadcast-address 192.168.1.255;
  option dhcp-rebinding-time 75600;
  option host-name "vivien5-001";
  option domain-name "lan";
  renew 3 2016/07/20 13:37:48;
  rebind 4 2016/07/21 01:01:27;
  expire 4 2016/07/21 04:01:27;
}

kgersen

  • Modérateur
  • Abonné Bbox fibre
  • *
  • Messages: 9 076
  • Paris (75)
Récupérer les info DHCP sous Linux
« Réponse #3 le: 20 juillet 2016 à 12:29:50 »
nb: ca n'a rien de standard , c'est propre a chaque distrib

/var/lib/dhclient/dhclient.leases

c'est l'emplacement par défaut de dhclient ( 8 ) mais on peut le changer avec une option (-lf) ce qui arrive souvent quand un 'network manager' par exemple prend le controle au dessus.

Comme toujours avec Linux, des qu'on sort du kernel y'a plus rien de standard, c'est propre a chaque distrib.

Nh3xus

  • Réseau Deux Sarres (57)
  • Abonné MilkyWan
  • *
  • Messages: 3 246
  • Sarrebourg (57)
Récupérer les info DHCP sous Linux
« Réponse #4 le: 20 juillet 2016 à 13:01:15 »
Citer
Comme toujours avec Linux, des qu'on sort du kernel y'a plus rien de standard, c'est propre a chaque distrib.

Heureusement, Lennart nous a pondu systemd-networkd, donc tout est uniforme maintenant.

kcdtv

  • Abonné FAI autre
  • *
  • Messages: 98
  • Internacionalunya 00
    • wifi-libre
Récupérer les info DHCP sous Linux
« Réponse #5 le: 20 juillet 2016 à 19:46:09 »
@ Nh3xus
 :D
Nice one!  ;)

@ Vivien & kgersen
Merci pour ces précisions.  ;)


vivien

  • Administrateur
  • *
  • Messages: 46 994
    • Twitter LaFibre.info
Récupérer les info DHCP sous Linux
« Réponse #6 le: 20 juillet 2016 à 22:16:12 »
Le fichier /var/lib/dhcp/dhclient.leases existe chez moi, mais il est vide (Ubuntu 16.04 avec NetworkManager).

Après investigation, le fichier /var/lib/dhcp/dhclient.leases n'existe que sur les machines où je me suis connecté en DHCP avec une config dans /etc/network/interfaces (en fait c'est quand je me connecte en FTTH directement en me faisant passer pour une Bbox : il faut faire du DHCP sur le VLAN 200 avec les options qui font croire que tu es une Bbox => NetworkManager ne sais pas encore faire)

Je ne suis pas sur qu'il y a de grosses différences entres distributions, il y a surtout 2 moyens de faire des requêtes DHCP : via l'interface graphique de NetworkManager ou via une config manuelle de /etc/network/interfaces qui appelle dhclient.

Nh3xus

  • Réseau Deux Sarres (57)
  • Abonné MilkyWan
  • *
  • Messages: 3 246
  • Sarrebourg (57)
Récupérer les info DHCP sous Linux
« Réponse #7 le: 21 juillet 2016 à 10:51:53 »
NM n'est qu'un wrapper qui pilote dhclient et/ou wpa_supplicant.

kcdtv

  • Abonné FAI autre
  • *
  • Messages: 98
  • Internacionalunya 00
    • wifi-libre
Récupérer les info DHCP sous Linux
« Réponse #8 le: 21 juillet 2016 à 16:52:04 »
M'enfin!
C'est pas "NM" et c'est pas un "wrapper"...
Le groupe s’appelle "NTM" et on dit "rappeur".
Faut vraiment tout t’apprendre à toi c'est fatiguant   ::)  :D