diff --git a/.gitignore b/.gitignore
index eaef097a5..beacafca5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -114,6 +114,7 @@ venv.bak/
*.code-workspace
.vscode/
.DS_Store
+*.bak
changelogs/.plugin-cache.yaml
# inventory for testing
diff --git a/README.md b/README.md
index df9d916e2..c202e2e0a 100644
--- a/README.md
+++ b/README.md
@@ -70,6 +70,7 @@ Name | Description
[vyos.vyos.vyos_system](https://github.com/vyos/vyos.vyos/blob/main/docs/vyos.vyos.vyos_system_module.rst)|Run `set system` commands on VyOS devices
[vyos.vyos.vyos_user](https://github.com/vyos/vyos.vyos/blob/main/docs/vyos.vyos.vyos_user_module.rst)|Manage the collection of local users on VyOS device
[vyos.vyos.vyos_vlan](https://github.com/vyos/vyos.vyos/blob/main/docs/vyos.vyos.vyos_vlan_module.rst)|Manage VLANs on VyOS network devices
+[vyos.vyos.vyos_vrrp](https://github.com/vyos/vyos.vyos/blob/main/docs/vyos.vyos.vyos_vrrp_module.rst)|Manage VRRP and load balancer configuration on VyOS
diff --git a/changelogs/fragments/t6820_vrrp.yml b/changelogs/fragments/t6820_vrrp.yml
new file mode 100644
index 000000000..34343bbfd
--- /dev/null
+++ b/changelogs/fragments/t6820_vrrp.yml
@@ -0,0 +1,3 @@
+---
+minor_changes:
+ - vyos_vrrp - Add VRRP (High Availability) support
diff --git a/docs/vyos.vyos.vyos_vrrp_module.rst b/docs/vyos.vyos.vyos_vrrp_module.rst
new file mode 100644
index 000000000..08d3387a0
--- /dev/null
+++ b/docs/vyos.vyos.vyos_vrrp_module.rst
@@ -0,0 +1,2648 @@
+.. _vyos.vyos.vyos_vrrp_module:
+
+
+*******************
+vyos.vyos.vyos_vrrp
+*******************
+
+**Manage VRRP and load balancer configuration on VyOS**
+
+
+Version added: 1.0.0
+
+.. contents::
+ :local:
+ :depth: 1
+
+
+Synopsis
+--------
+- This module configures VRRP groups, global VRRP parameters, VRRP sync groups, and LVS-style virtual servers on VyOS 1.4+.
+- Supports creation, modification, deletion, replacement, rendering, and parsing of VRRP-related configuration.
+
+
+
+
+Parameters
+----------
+
+.. raw:: html
+
+
+
+ | Parameter |
+ Choices/Defaults |
+ Comments |
+
+
+ |
+
+ config
+
+
+ dictionary
+
+ |
+
+ |
+
+ Full VRRP and virtual server configuration.
+ |
+
+
+ |
+
+
+ disable
+
+
+ boolean
+
+ |
+
+
+ |
+
+ Disable all VRRP and L4-LB configuration under this module.
+ |
+
+
+ |
+
+
+ virtual_servers
+
+
+ list
+ / elements=dictionary
+
+ |
+
+ |
+
+ List of load balancer virtual server (LVS) definitions.
+ |
+
+
+ |
+ |
+
+
+ address
+
+
+ string
+
+ |
+
+ |
+
+ Virtual IP address for the server.
+ |
+
+
+ |
+ |
+
+
+ algorithm
+
+
+ string
+
+ |
+
+ |
+
+ Load balancing algorithm used for dispatching connections.
+ |
+
+
+ |
+ |
+
+
+ alias
+
+
+ string
+ / required
+
+ |
+
+ |
+
+ Unique identifier for the virtual server.
+ |
+
+
+ |
+ |
+
+
+ delay_loop
+
+
+ integer
+
+ |
+
+ |
+
+ Delay loop interval in seconds.
+ |
+
+
+ |
+ |
+
+
+ forward_method
+
+
+ string
+
+ |
+
+ Choices:
+ - direct
+ - nat
+
+ |
+
+ Forwarding method used by LVS.
+ |
+
+
+ |
+ |
+
+
+ fwmark
+
+
+ string
+
+ |
+
+ |
+
+ Firewall mark for LVS traffic classification.
+ |
+
+
+ |
+ |
+
+
+ persistence_timeout
+
+
+ string
+
+ |
+
+ |
+
+ Client persistence timeout in seconds.
+ |
+
+
+ |
+ |
+
+
+ port
+
+
+ integer
+
+ |
+
+ |
+
+ TCP/UDP port provided by the virtual service.
+ |
+
+
+ |
+ |
+
+
+ protocol
+
+
+ string
+
+ |
+
+
+ |
+
+ Transport protocol for the virtual server.
+ |
+
+
+ |
+ |
+
+
+ real_servers
+
+
+ list
+ / elements=dictionary
+
+ |
+
+ |
+
+ Backend real servers behind the virtual service.
+ |
+
+
+ |
+ |
+ |
+
+
+ address
+
+
+ string
+ / required
+
+ |
+
+ |
+
+ Real server IP address.
+ |
+
+
+ |
+ |
+ |
+
+
+ health_check_script
+
+
+ string
+
+ |
+
+ |
+
+ Path to health check script used for backend validation.
+ |
+
+
+ |
+ |
+ |
+
+
+ port
+
+
+ integer
+
+ |
+
+ |
+
+ Backend server port.
+ |
+
+
+
+
+ |
+
+
+ vrrp
+
+
+ dictionary
+
+ |
+
+ |
+
+ VRRP configuration including groups, global parameters, SNMP settings, and sync-groups.
+ |
+
+
+ |
+ |
+
+
+ global_parameters
+
+
+ dictionary
+
+ |
+
+ |
+
+ Global VRRP tuning parameters.
+ |
+
+
+ |
+ |
+ |
+
+
+ garp
+
+
+ dictionary
+
+ |
+
+ |
+
+ Gratuitous ARP related configuration.
+ |
+
+
+ |
+ |
+ |
+ |
+
+
+ interval
+
+
+ integer
+
+ |
+
+ |
+
+ GARP interval in seconds.
+ |
+
+
+ |
+ |
+ |
+ |
+
+
+ master_delay
+
+
+ integer
+
+ |
+
+ |
+
+ Delay before sending GARP as master.
+ |
+
+
+ |
+ |
+ |
+ |
+
+
+ master_refresh
+
+
+ integer
+
+ |
+
+ |
+
+ Refresh interval for master GARP announcements.
+ |
+
+
+ |
+ |
+ |
+ |
+
+
+ master_refresh_repeat
+
+
+ integer
+
+ |
+
+ |
+
+ Number of times to repeat refresh announcements.
+ |
+
+
+ |
+ |
+ |
+ |
+
+
+ master_repeat
+
+
+ integer
+
+ |
+
+ |
+
+ Number of GARP repeats when transitioning to master.
+ |
+
+
+
+ |
+ |
+ |
+
+
+ startup_delay
+
+
+ integer
+
+ |
+
+ |
+
+ Delay before VRRP starts after boot.
+ |
+
+
+ |
+ |
+ |
+
+
+ version
+
+
+ string
+
+ |
+
+ |
+
+ VRRP protocol version.
+ |
+
+
+
+ |
+ |
+
+
+ groups
+
+
+ list
+ / elements=dictionary
+
+ |
+
+ |
+
+ VRRP instance configuration groups.
+ |
+
+
+ |
+ |
+ |
+
+
+ address
+
+
+ string
+
+ |
+
+ |
+
+ Virtual router IP address.
+ |
+
+
+ |
+ |
+ |
+
+
+ advertise_interval
+
+
+ integer
+
+ |
+
+ |
+
+ VRRP advertisement interval.
+ |
+
+
+ |
+ |
+ |
+
+
+ authentication
+
+
+ dictionary
+
+ |
+
+ |
+
+ VRRP group authentication options.
+ |
+
+
+ |
+ |
+ |
+ |
+
+
+ password
+
+
+ string
+
+ |
+
+ |
+
+ Authentication password.
+ |
+
+
+ |
+ |
+ |
+ |
+
+
+ type
+
+
+ string
+
+ |
+
+ |
+
+ Authentication type.
+ |
+
+
+
+ |
+ |
+ |
+
+
+ description
+
+
+ string
+
+ |
+
+ |
+
+ Text description for the VRRP group.
+ |
+
+
+ |
+ |
+ |
+
+
+ disable
+
+
+ boolean
+
+ |
+
+
+ |
+
+ Disable this VRRP group.
+ |
+
+
+ |
+ |
+ |
+
+
+ excluded_address
+
+
+ string
+
+ |
+
+ |
+
+ IP address excluded from source checks.
+ |
+
+
+ |
+ |
+ |
+
+
+ garp
+
+
+ dictionary
+
+ |
+
+ |
+
+ GARP-specific settings for this group.
+ |
+
+
+ |
+ |
+ |
+ |
+
+
+ interval
+
+
+ integer
+
+ |
+
+ |
+
+ GARP interval.
+ |
+
+
+ |
+ |
+ |
+ |
+
+
+ master_delay
+
+
+ integer
+
+ |
+
+ |
+
+ GARP master delay.
+ |
+
+
+ |
+ |
+ |
+ |
+
+
+ master_refresh
+
+
+ integer
+
+ |
+
+ |
+
+ GARP master refresh interval.
+ |
+
+
+ |
+ |
+ |
+ |
+
+
+ master_refresh_repeat
+
+
+ integer
+
+ |
+
+ |
+
+ Repeated refresh sends.
+ |
+
+
+ |
+ |
+ |
+ |
+
+
+ master_repeat
+
+
+ integer
+
+ |
+
+ |
+
+ GARP repeat count.
+ |
+
+
+
+ |
+ |
+ |
+
+
+ health_check
+
+
+ dictionary
+
+ |
+
+ |
+
+ VRRP group health check options.
+ |
+
+
+ |
+ |
+ |
+ |
+
+
+ failure_count
+
+
+ integer
+
+ |
+
+ |
+
+ Allowed number of failed checks.
+ |
+
+
+ |
+ |
+ |
+ |
+
+
+ interval
+
+
+ integer
+
+ |
+
+ |
+
+ Health check interval.
+ |
+
+
+ |
+ |
+ |
+ |
+
+
+ ping
+
+
+ string
+
+ |
+
+ |
+
+ Host to ping for checks.
+ |
+
+
+ |
+ |
+ |
+ |
+
+
+ script
+
+
+ string
+
+ |
+
+ |
+
+ Script to execute for health checking.
+ |
+
+
+
+ |
+ |
+ |
+
+
+ hello_source_address
+
+
+ string
+
+ |
+
+ |
+
+ Source address for VRRP hello packets.
+ |
+
+
+ |
+ |
+ |
+
+
+ interface
+
+
+ string
+
+ |
+
+ |
+
+ Interface used by the VRRP group.
+ |
+
+
+ |
+ |
+ |
+
+
+ name
+
+
+ string
+ / required
+
+ |
+
+ |
+
+ VRRP group name.
+ |
+
+
+ |
+ |
+ |
+
+
+ no_preempt
+
+
+ boolean
+
+ |
+
+
+ |
+
+ Disable preemption.
+ |
+
+
+ |
+ |
+ |
+
+
+ peer_address
+
+
+ string
+
+ |
+
+ |
+
+ Peer VRRP router address.
+ |
+
+
+ |
+ |
+ |
+
+
+ preempt_delay
+
+
+ integer
+
+ |
+
+ |
+
+ Delay before taking master role.
+ |
+
+
+ |
+ |
+ |
+
+
+ priority
+
+
+ integer
+
+ |
+
+ |
+
+ VRRP priority (higher = preferred master).
+ |
+
+
+ |
+ |
+ |
+
+
+ rfc3768_compatibility
+
+
+ boolean
+
+ |
+
+
+ |
+
+ Enable or disable RFC3768 compatibility mode.
+ |
+
+
+ |
+ |
+ |
+
+
+ track
+
+
+ dictionary
+
+ |
+
+ |
+
+ Track interface and VRRP behaviour.
+ |
+
+
+ |
+ |
+ |
+ |
+
+
+ exclude_vrrp_interface
+
+
+ boolean
+
+ |
+
+
+ |
+
+ Exclude VRRP interface from tracking.
+ |
+
+
+ |
+ |
+ |
+ |
+
+
+ interface
+
+
+ string
+
+ |
+
+ |
+
+ Interface to track.
+ |
+
+
+
+ |
+ |
+ |
+
+
+ transition_script
+
+
+ dictionary
+
+ |
+
+ |
+
+ Scripts executed during VRRP state transitions.
+ |
+
+
+ |
+ |
+ |
+ |
+
+
+ backup
+
+
+ string
+
+ |
+
+ |
+
+ Path to backup script.
+ |
+
+
+ |
+ |
+ |
+ |
+
+
+ fault
+
+
+ string
+
+ |
+
+ |
+
+ Path to fault script.
+ |
+
+
+ |
+ |
+ |
+ |
+
+
+ master
+
+
+ string
+
+ |
+
+ |
+
+ Path to master script.
+ |
+
+
+ |
+ |
+ |
+ |
+
+
+ stop
+
+
+ string
+
+ |
+
+ |
+
+ Path to stop script.
+ |
+
+
+
+ |
+ |
+ |
+
+
+ vrid
+
+
+ integer
+ / required
+
+ |
+
+ |
+
+ VRRP Virtual Router ID.
+ |
+
+
+
+ |
+ |
+
+
+ snmp
+
+
+ boolean
+
+ |
+
+
+ |
+
+ Enable SNMP support for VRRP.
+ |
+
+
+ |
+ |
+
+
+ sync_groups
+
+
+ list
+ / elements=dictionary
+
+ |
+
+ |
+
+ VRRP sync-groups for coordinated failover.
+ |
+
+
+ |
+ |
+ |
+
+
+ health_check
+
+
+ dictionary
+
+ |
+
+ |
+
+ Health check options for sync group.
+ |
+
+
+ |
+ |
+ |
+ |
+
+
+ failure_count
+
+
+ integer
+
+ |
+
+ |
+
+ Allowed number of failures.
+ |
+
+
+ |
+ |
+ |
+ |
+
+
+ interval
+
+
+ integer
+
+ |
+
+ |
+
+ Health check interval.
+ |
+
+
+ |
+ |
+ |
+ |
+
+
+ ping
+
+
+ string
+
+ |
+
+ |
+
+ Host to ping.
+ |
+
+
+ |
+ |
+ |
+ |
+
+
+ script
+
+
+ string
+
+ |
+
+ |
+
+ Script to run for health checking.
+ |
+
+
+
+ |
+ |
+ |
+
+
+ member
+
+
+ list
+ / elements=string
+
+ |
+
+ |
+
+ List of VRRP groups participating in this sync group.
+ |
+
+
+ |
+ |
+ |
+
+
+ name
+
+
+ string
+ / required
+
+ |
+
+ |
+
+ Sync-group name.
+ |
+
+
+ |
+ |
+ |
+
+
+ transition_script
+
+
+ dictionary
+
+ |
+
+ |
+
+ Transition scripts for sync group events.
+ |
+
+
+ |
+ |
+ |
+ |
+
+
+ backup
+
+
+ string
+
+ |
+
+ |
+
+ Backup state script.
+ |
+
+
+ |
+ |
+ |
+ |
+
+
+ fault
+
+
+ string
+
+ |
+
+ |
+
+ Fault state script.
+ |
+
+
+ |
+ |
+ |
+ |
+
+
+ master
+
+
+ string
+
+ |
+
+ |
+
+ Master state script.
+ |
+
+
+ |
+ |
+ |
+ |
+
+
+ stop
+
+
+ string
+
+ |
+
+ |
+
+ Stop state script.
+ |
+
+
+
+
+
+
+ |
+
+ running_config
+
+
+ string
+
+ |
+
+ |
+
+ Used only when state=parsed. Must contain the output of show configuration commands | grep high-availability.
+ |
+
+
+ |
+
+ state
+
+
+ string
+
+ |
+
+ Choices:
+ - deleted
+ merged ←
+ - purged
+ - replaced
+ - gathered
+ - rendered
+ - parsed
+
+ |
+
+ Desired end state of the VRRP configuration.
+ |
+
+
+