|
@@ -0,0 +1,74 @@
|
|
|
|
|
+---
|
|
|
|
|
+format: markdown
|
|
|
|
|
+...
|
|
|
|
|
+
|
|
|
|
|
+# Leases in der postgresql-Tabelle kea ermitteln
|
|
|
|
|
+
|
|
|
|
|
+Kea schreibt die Leases je Domäne in eine postgresql-Tabelle mit dem Namen kea. Diese können insgesamt oder je Domäne ausgelesen werden, um festzustellen, ob die Anzahl der möglichen Leases je Domäne ausreicht.
|
|
|
|
|
+
|
|
|
|
|
+# Vorgehen
|
|
|
|
|
+
|
|
|
|
|
+Aufruf der postgresql-Datenbank mit der Tabelle kea_leases und dem User kea auf dtm1:
|
|
|
|
|
+
|
|
|
|
|
+ $ sudo -u postgres /usr/lib/postgresql/9.5/bin/psql kea_leases kea -h "127.0.0.1" -W
|
|
|
|
|
+
|
|
|
|
|
+Das Passwort steht in kea.conf.
|
|
|
|
|
+
|
|
|
|
|
+Aufruf der postgresql-Datenbank mit der Tabelle kea_leases und dem User kea auf dus0x für posrgresql Version 17:
|
|
|
|
|
+
|
|
|
|
|
+ $ sudo -u postgres /usr/lib/postgresql/17/bin/psql kea_leases _kea -h "127.0.0.1" -W
|
|
|
|
|
+
|
|
|
|
|
+Hier muss der User _kea verwendet werden! Das Passwort seht in kea-dhcp4.conf.
|
|
|
|
|
+Es ertscheint der postgresql-Prompt:
|
|
|
|
|
+
|
|
|
|
|
+ kea_leases=>
|
|
|
|
|
+
|
|
|
|
|
+# Abfragen:
|
|
|
|
|
+
|
|
|
|
|
+ select hwaddr, valid_lifetime, expire, subnet_id, hostname, address/256/256/256 as ip1, address/256/256%256 as ip2, address/256%256 as ip3, address%256 as ip4 from lease4 where fqdn_fwd = true and subnet_id=2 order by expire desc;
|
|
|
|
|
+
|
|
|
|
|
+Ergebnis: alle aktiven Geräte aus Domäne 2 mit ip als Dezimalzahl, wobei IP2 die Domäne anzeigt, hier 2.
|
|
|
|
|
+
|
|
|
|
|
+ select * from lease4 where subnet_id=2 and fqdn_fwd=true order by expire DESC;
|
|
|
|
|
+
|
|
|
|
|
+Ergebnis: alle Geräte aus Domäne 2 mit fqdn_fwd=true, nach Alter absteigend sortiert
|
|
|
|
|
+
|
|
|
|
|
+ohne subnet_id=2:
|
|
|
|
|
+
|
|
|
|
|
+ select * from lease4 where and fqdn_fwd=true order by expire DESC;
|
|
|
|
|
+
|
|
|
|
|
+Ergebnis: alle Geräte aus Domäne 2, auch die nicht verbundenen Geräte?, nach Alter absteigend sortiert
|
|
|
|
|
+
|
|
|
|
|
+# Mögliche Spalten der Tabelle lease4 in postgresql:
|
|
|
|
|
+
|
|
|
|
|
+ SELECT column_name, data_type
|
|
|
|
|
+ FROM information_schema.columns
|
|
|
|
|
+ WHERE table_name = 'lease4';
|
|
|
|
|
+
|
|
|
|
|
+Ergebnis:
|
|
|
|
|
+
|
|
|
|
|
+ | column_name | data_type |
|
|
|
|
|
+ | -------------- | ---------------- |
|
|
|
|
|
+ | address | bigint |
|
|
|
|
|
+ | hwaddr | bytea |
|
|
|
|
|
+ client_id | bytea
|
|
|
|
|
+ valid_lifetime | bigint
|
|
|
|
|
+ expire | timestamp with time zone
|
|
|
|
|
+ subnet_id | bigint
|
|
|
|
|
+ fqdn_fwd | boolean
|
|
|
|
|
+ fqdn_rev | boolean
|
|
|
|
|
+ hostname | character varying
|
|
|
|
|
+ state | bigint
|
|
|
|
|
+ (10 rows)
|
|
|
|
|
+
|
|
|
|
|
+# Anzahl der leases ermitteln für Domäne 2:
|
|
|
|
|
+
|
|
|
|
|
+ select count(*) from lease4 where subnet_id=2;
|
|
|
|
|
+ count
|
|
|
|
|
+ -------
|
|
|
|
|
+ 2342
|
|
|
|
|
+ (1 row)
|
|
|
|
|
+
|
|
|
|
|
+# Alle leases über alle Domänen:
|
|
|
|
|
+
|
|
|
|
|
+ select subnet_id, count(*) from lease4 group by subnet_id order by subnet_id;
|