diff --git a/net/haproxy/src/opnsense/mvc/app/controllers/OPNsense/HAProxy/forms/main.xml b/net/haproxy/src/opnsense/mvc/app/controllers/OPNsense/HAProxy/forms/main.xml
index 04a05134c..3f2cb6d37 100644
--- a/net/haproxy/src/opnsense/mvc/app/controllers/OPNsense/HAProxy/forms/main.xml
+++ b/net/haproxy/src/opnsense/mvc/app/controllers/OPNsense/HAProxy/forms/main.xml
@@ -20,6 +20,58 @@
+
+
+ haproxy.general.peers.enabled
+
+ checkbox
+
+
+
+
+ header
+
+
+ haproxy.general.peers.name1
+
+ text
+
+
+
+ haproxy.general.peers.listen1
+
+ text
+
+
+
+ haproxy.general.peers.port1
+
+ text
+
+
+
+
+ header
+
+
+ haproxy.general.peers.name2
+
+ text
+
+
+
+ haproxy.general.peers.listen2
+
+ text
+
+
+
+ haproxy.general.peers.port2
+
+ text
+
+
+
diff --git a/net/haproxy/src/opnsense/mvc/app/models/OPNsense/HAProxy/HAProxy.xml b/net/haproxy/src/opnsense/mvc/app/models/OPNsense/HAProxy/HAProxy.xml
index 798cc4467..50435b9c8 100644
--- a/net/haproxy/src/opnsense/mvc/app/models/OPNsense/HAProxy/HAProxy.xml
+++ b/net/haproxy/src/opnsense/mvc/app/models/OPNsense/HAProxy/HAProxy.xml
@@ -17,6 +17,38 @@
1
+
+
+ 0
+ Y
+
+
+ N
+
+
+ N
+
+
+ 1024
+ 1
+ 65535
+ Please specify a value between 1 and 65535.
+ N
+
+
+ N
+
+
+ N
+
+
+ 1024
+ 1
+ 65535
+ Please specify a value between 1 and 65535.
+ N
+
+
0
diff --git a/net/haproxy/src/opnsense/mvc/app/models/OPNsense/HAProxy/Menu/Menu.xml b/net/haproxy/src/opnsense/mvc/app/models/OPNsense/HAProxy/Menu/Menu.xml
index d91b7c8ed..b49bddb1f 100644
--- a/net/haproxy/src/opnsense/mvc/app/models/OPNsense/HAProxy/Menu/Menu.xml
+++ b/net/haproxy/src/opnsense/mvc/app/models/OPNsense/HAProxy/Menu/Menu.xml
@@ -3,6 +3,7 @@
+
diff --git a/net/haproxy/src/opnsense/service/templates/OPNsense/HAProxy/haproxy.conf b/net/haproxy/src/opnsense/service/templates/OPNsense/HAProxy/haproxy.conf
index bd0954a1d..a4b193405 100644
--- a/net/haproxy/src/opnsense/service/templates/OPNsense/HAProxy/haproxy.conf
+++ b/net/haproxy/src/opnsense/service/templates/OPNsense/HAProxy/haproxy.conf
@@ -3,6 +3,15 @@
# Do not edit this file manually.
{% if helpers.exists('OPNsense.HAProxy') %}
+{# ############################### #}
+{# GLOBAL VARIABLES #}
+{# ############################### #}
+
+{%- if helpers.exists('OPNsense.HAProxy.general.peers') and OPNsense.HAProxy.general.peers.enabled|default("") == "1" -%}
+{% set peers_enabled = True %}
+{% set peers_name = 'opnsense-haproxy-peers' %}
+{%- endif -%}
+
{# ############################### #}
{# MACROS #}
{# ############################### #}
@@ -540,7 +549,8 @@
{% endif %}
{# # add stick-table #}
{% if table_type is defined %}
- stick-table type {{table_type}} {%if add_length is defined %}len {{data_length}} {% endif %}size {{proxy.stickiness_size}} expire {{proxy.stickiness_expire}} {{stickiness_store}}
+ stick-table type {{table_type}} {%if add_length is defined %}len {{data_length}} {% endif %}size {{proxy.stickiness_size}} expire {{proxy.stickiness_expire}} {{stickiness_store}} {% if peers_enabled is defined %}{{'peers ' ~ peers_name}}{% endif %}
+
{% endif %}
{# # sticky counters (frontends only) #}
{%- if backend == False -%}
@@ -558,7 +568,7 @@
{%- elif proxy.stickiness_pattern != '' %}
stick on src
{%- endif -%}
-{%- endif -%}
+{%- endif -%}
{% endif %}
{% else %}
# ERROR: StickTableConfig called with empty data
@@ -1058,6 +1068,24 @@ backend {{backend.name}}
{% endfor %}
{% endif %}
+{# ############################### #}
+{# PEERS #}
+{# ############################### #}
+
+{% if helpers.exists('OPNsense.HAProxy.general.peers') and OPNsense.HAProxy.general.peers.enabled|default("") == "1" %}
+{# # ensure that no value is missing #}
+{% if OPNsense.HAProxy.general.peers.name1|default("") != '' and
+ OPNsense.HAProxy.general.peers.listen1|default("") != '' and
+ OPNsense.HAProxy.general.peers.port1|default("") != '' and
+ OPNsense.HAProxy.general.peers.name2|default("") != '' and
+ OPNsense.HAProxy.general.peers.listen2|default("") != '' and
+ OPNsense.HAProxy.general.peers.port2|default("") != '' %}
+peers {{peers_name}}
+ peer {{OPNsense.HAProxy.general.peers.name1}} {{OPNsense.HAProxy.general.peers.listen1}}:{{OPNsense.HAProxy.general.peers.port1}}
+ peer {{OPNsense.HAProxy.general.peers.name2}} {{OPNsense.HAProxy.general.peers.listen2}}:{{OPNsense.HAProxy.general.peers.port2}}
+{% endif %}
+{% endif %}
+
{# ############################### #}
{# STATISTICS #}
{# ############################### #}