DHCP server op-mode sometimes does not show leases
To reproduce:
set interfaces bridge br0 enable-vlan set interfaces bridge br0 member interface eth1 allowed-vlan '3' set interfaces bridge br0 member interface eth1 allowed-vlan '4' set interfaces bridge br0 vif 3 address '10.3.0.4/16' set interfaces bridge br0 vif 3 description 'guest network' set interfaces bridge br0 vif 4 address '10.1.0.4/16' set service dhcp-server high-availability name 'ha' set service dhcp-server high-availability remote '10.1.0.3' set service dhcp-server high-availability source-address '10.1.0.4' set service dhcp-server high-availability status 'secondary' set service dhcp-server listen-address '10.3.0.4' set service dhcp-server shared-network-name 3_guest authoritative set service dhcp-server shared-network-name 3_guest description 'guest' set service dhcp-server shared-network-name 3_guest name-server '192.0.2.1' set service dhcp-server shared-network-name 3_guest name-server '192.0.2.2' set service dhcp-server shared-network-name 3_guest subnet 10.3.0.0/16 default-router '10.3.0.1' set service dhcp-server shared-network-name 3_guest subnet 10.3.0.0/16 enable-failover set service dhcp-server shared-network-name 3_guest subnet 10.3.0.0/16 range 1 start '10.3.10.1' set service dhcp-server shared-network-name 3_guest subnet 10.3.0.0/16 range 1 stop '10.3.200.254'
Drop all leases except this one from dhcp.leases file, to avoid waiting forever for show command output:
vyos@r15# cat /config/dhcpd.leases
# The format of this file is documented in the dhcpd.leases(5) manual page.
# This lease file was written by isc-dhcp-4.4.3-P1
# authoring-byte-order entry is generated, DO NOT DELETE
authoring-byte-order little-endian;
failover peer "ha" state {
my state normal at 5 2024/11/01 08:43:12;
partner state normal at 5 2024/11/01 08:43:12;
mclt 1800;
}
lease 10.3.141.37 {
tstp 2 2024/04/23 06:39:28;
tsfp 2 2024/04/23 06:39:28;
atsfp 2 2024/04/23 06:39:28;
cltt 1 2024/04/22 06:39:28;
binding state free;
hardware ethernet xx:xx:xx:0b:09:d5;
uid "\001<\246\366\013\011\325";
set shared-networkname = "3_guest";
}check
vyos@r15# run show dhcp server leases
Traceback (most recent call last):
File "/usr/libexec/vyos/op_mode/dhcp.py", line 438, in <module>
res = vyos.opmode.run(sys.modules[__name__])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/vyos/opmode.py", line 263, in run
res = func(**args)
^^^^^^^^^^^^
File "/usr/libexec/vyos/op_mode/dhcp.py", line 265, in _wrapper
return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "/usr/libexec/vyos/op_mode/dhcp.py", line 318, in show_server_leases
lease_data = _get_raw_server_leases(family=family, pool=pool, sorted=sorted, state=state, origin=origin)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/libexec/vyos/op_mode/dhcp.py", line 104, in _get_raw_server_leases
data_lease['start'] = lease.start.timestamp()
^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'timestamp'
[edit]
vyos@r15#