Age | Commit message (Collapse) | Author |
|
Right now we have multiple restart helpers (e.g. dhcp server, ssh, ntp) that
all do the same (more or less):
* Check if service is configured on CLI
* Restart if configured
* Error out if unconfigured
This is not available via the op-mode API. Create a new restart.py op-mode
helper that takes the service name and possible VRF as argument so it's also
exposed via API.
(cherry picked from commit c74ae852152b0c3c3f00a1847d081d28f500e178)
|
|
(cherry picked from commit 5ade35255b3d8438aa6082fe56ae459d50cdc0a5)
|
|
The current op-mode script simply calls sudo systemctl restart "dhclient@$4.service"
with no additional information about a client interface at all.
This results in useless dhclient processes
root 47812 4.7 0.0 5848 3584 ? Ss 00:30 0:00 /sbin/dhclient -4 -d
root 48121 0.0 0.0 4188 3072 ? S 00:30 0:00 \_ /bin/sh /sbin/dhclient-script
root 48148 50.0 0.2 18776 11264 ? R 00:30 0:00 \_ python3 -
Which also assign client leases to all local interfaces, if we receive one
valid DHCPOFFER
vyos@vyos:~$ show interfaces
Codes: S - State, L - Link, u - Up, D - Down, A - Admin Down
Interface IP Address MAC VRF MTU S/L Description
----------- ----------------- ----------------- ------- ----- ----- -------------
eth0 - 00:50:56:bf:c5:6d default 1500 u/u
eth0.10 172.16.33.102/24 00:50:56:bf:c5:6d default 1500 u/u
eth1 172.16.33.131/24 00:50:56:b3:38:c5 default 1500 u/u
172.16.33.102/24 and 172.16.33.131/24 are stray DHCP addresses.
This commit moved the renew command to the DHCP op-mode script to properly
validate if the interface we request a renew for, has actually a dhcp address
configured. In additional this exposes the renew feature to the API.
|
|
* Add `clear dhcpv6-server lease`
* Standardize using vyos.opmode
|
|
|
|
Due to Kea's lease file cleanup, the CSV file content is inconsistent. This commit makes changes to use the Kea control socket to fetch current lease information.
|
|
|
|
|
|
vyos@vyos# ${vyos_op_scripts_dir}/dhcp.py show_client_leases --family inet --interface eth0.10
Interface eth0.10
IP address 172.16.33.123 [Active]
Subnet Mask 255.255.255.0
Domain Name vyos.net
Router 172.16.33.254
Name Server 172.16.254.30
DHCP Server 172.16.33.254
DHCP Server 86400
Last Update Sat Jul 29 21:13:32 CEST 2023
Expiry Sun Jul 30 21:13:31 CEST 2023
vyos@vyos# ${vyos_op_scripts_dir}/dhcp.py show_client_leases --family inet --interface eth0.10 --raw
[
{
"last_update": "Sat Jul 29 21:13:32 CEST 2023",
"reason": "BOUND",
"interface": "eth0.10",
"new_expiry": "1690744411",
"new_dhcp_lease_time": "86400",
"medium": "",
"alias_ip_address": "",
"new_ip_address": "172.16.33.123",
"new_broadcast_address": "172.16.33.255",
"new_subnet_mask": "255.255.255.0",
"new_domain_name": "vyos.net",
"new_network_number": "172.16.33.0",
"new_domain_name_servers": "172.16.254.30",
"new_routers": "172.16.33.254",
"new_static_routes": "",
"new_dhcp_server_identifier": "172.16.33.254",
"new_dhcp_message_type": "5",
"old_ip_address": "",
"old_subnet_mask": "",
"old_domain_name": "",
"old_domain_name_servers": "",
"old_routers": "",
"old_static_routes": ""
}
]
|
|
|
|
script
Sorting DHCP pools and filtering for state can now be done using the new op-mode
mode scripts in DHCP. This allows us to drop the old helpers show_dhcp.py and
show_dhcpv6.py.
|
|
Rewrite op-mode DHCP and DHCPv6 leases to vyos.opmode format
Abbility to show 'raw' format
show dhcp server leases
show dhcpv6 server leases
|
|
Restarting DHCPv6 server should not be possible when service is not configured
on the CLI.
|
|
|
|
|
|
|
|
Commit 9f20bee81c ("T1376: improve show_dhcp and show_dhcpv6") added the tab
completion helper to list the availbale IP pools to query. This was done by
calling a python script which then called cli-shell-api which resulted in a
penalty by the Python interpreter startup.
This can be solved by directly using the cli-shell-api wrapper available
as <path> in op-mode - as also seen for DHCPv6.
|
|
|
|
|