<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mediawiki.comfac.net/index.php?action=history&amp;feed=atom&amp;title=Training_Lab_10%3A_High_Availability</id>
	<title>Training Lab 10: High Availability - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mediawiki.comfac.net/index.php?action=history&amp;feed=atom&amp;title=Training_Lab_10%3A_High_Availability"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.comfac.net/index.php?title=Training_Lab_10:_High_Availability&amp;action=history"/>
	<updated>2026-06-05T11:00:15Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://mediawiki.comfac.net/index.php?title=Training_Lab_10:_High_Availability&amp;diff=236&amp;oldid=prev</id>
		<title>Justinaquino: Created from Netgate pfSense training PDF</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.comfac.net/index.php?title=Training_Lab_10:_High_Availability&amp;diff=236&amp;oldid=prev"/>
		<updated>2026-04-23T07:07:10Z</updated>

		<summary type="html">&lt;p&gt;Created from Netgate pfSense training PDF&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#003366; color:#ffffff; padding:10px; border-radius:5px; margin-bottom:15px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Netgate pfSense Plus Fundamentals — Lab 10: High Availability&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
In this lab, we add high availability at HQ by configuring a secondary firewall (&amp;#039;&amp;#039;&amp;#039;fw2-HQ&amp;#039;&amp;#039;&amp;#039;) to operate as the backup in an active/passive HA pair.&lt;br /&gt;
&lt;br /&gt;
== Configuring fw2-HQ ==&lt;br /&gt;
&lt;br /&gt;
From your machine or HQ-client, log into fw2-HQ at &amp;#039;&amp;#039;&amp;#039;https://172.17.1.3&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
=== Interface Assignment ===&lt;br /&gt;
&lt;br /&gt;
On fw2-HQ, browse to &amp;#039;&amp;#039;&amp;#039;Interfaces &amp;gt; Assign&amp;#039;&amp;#039;&amp;#039; and verify that your 5 interfaces are assigned correctly.&lt;br /&gt;
&lt;br /&gt;
=== Interface Configuration ===&lt;br /&gt;
&lt;br /&gt;
==== WAN ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Setting !! Value&lt;br /&gt;
|-&lt;br /&gt;
| Description || WAN&lt;br /&gt;
|-&lt;br /&gt;
| IPv4 Configuration Type || Static IPv4&lt;br /&gt;
|-&lt;br /&gt;
| IPv4 Address || 192.0.2.3/24&lt;br /&gt;
|-&lt;br /&gt;
| Gateway || GW_WAN — 192.0.2.1 (default gateway)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Then Save and Apply Changes.&lt;br /&gt;
&lt;br /&gt;
==== DMZ ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Setting !! Value&lt;br /&gt;
|-&lt;br /&gt;
| Description || DMZ&lt;br /&gt;
|-&lt;br /&gt;
| IPv4 Configuration Type || Static IPv4&lt;br /&gt;
|-&lt;br /&gt;
| IPv4 Address || 172.17.2.3/24&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Save and Apply Changes.&lt;br /&gt;
&lt;br /&gt;
==== WAN2 ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Setting !! Value&lt;br /&gt;
|-&lt;br /&gt;
| Description || WAN2&lt;br /&gt;
|-&lt;br /&gt;
| IPv4 Configuration Type || Static IPv4&lt;br /&gt;
|-&lt;br /&gt;
| IPv4 Address || 198.51.100.3/24&lt;br /&gt;
|-&lt;br /&gt;
| Gateway || GW_WAN2 — 198.51.100.1 (not default gateway)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Save and Apply Changes.&lt;br /&gt;
&lt;br /&gt;
==== SYNC ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Setting !! Value&lt;br /&gt;
|-&lt;br /&gt;
| Description || SYNC&lt;br /&gt;
|-&lt;br /&gt;
| IPv4 Configuration Type || Static IPv4&lt;br /&gt;
|-&lt;br /&gt;
| IPv4 Address || 172.17.3.3/24&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Save and Apply Changes.&lt;br /&gt;
&lt;br /&gt;
=== HA Sync Configuration (fw2-HQ) ===&lt;br /&gt;
&lt;br /&gt;
Browse to &amp;#039;&amp;#039;&amp;#039;System &amp;gt; High Avail Sync&amp;#039;&amp;#039;&amp;#039;. Only the top portion is configured on the secondary, enabling it to send and receive state synchronization traffic.&lt;br /&gt;
&lt;br /&gt;
* Check &amp;#039;&amp;#039;&amp;#039;Synchronize States&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Choose &amp;#039;&amp;#039;&amp;#039;Synchronize Interface&amp;#039;&amp;#039;&amp;#039; = SYNC&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;pfsync Synchronize Peer IP&amp;#039;&amp;#039;&amp;#039;: 172.17.3.2&lt;br /&gt;
&lt;br /&gt;
Then click Save at the very bottom of the page.&lt;br /&gt;
&lt;br /&gt;
=== Increase FW2 GUI Processes ===&lt;br /&gt;
&lt;br /&gt;
Navigate to &amp;#039;&amp;#039;&amp;#039;System &amp;gt; Advanced&amp;#039;&amp;#039;&amp;#039; and change &amp;#039;&amp;#039;&amp;#039;Max Processes&amp;#039;&amp;#039;&amp;#039; from the default 2 to &amp;#039;&amp;#039;&amp;#039;5&amp;#039;&amp;#039;&amp;#039;, to account for the extra work of sync and configuration.&lt;br /&gt;
&lt;br /&gt;
=== Firewall Rule Configuration (fw2-HQ) ===&lt;br /&gt;
&lt;br /&gt;
Browse to &amp;#039;&amp;#039;&amp;#039;Firewall &amp;gt; Rules&amp;#039;&amp;#039;&amp;#039;, SYNC tab, and click Add to allow the initial config sync:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Setting !! Value&lt;br /&gt;
|-&lt;br /&gt;
| Action || Pass&lt;br /&gt;
|-&lt;br /&gt;
| Interface || SYNC&lt;br /&gt;
|-&lt;br /&gt;
| Protocol || any&lt;br /&gt;
|-&lt;br /&gt;
| Source || any&lt;br /&gt;
|-&lt;br /&gt;
| Destination || any&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Then Save and Apply Changes.&lt;br /&gt;
&lt;br /&gt;
fw2-HQ is now ready.&lt;br /&gt;
&lt;br /&gt;
== Configuring fw1-HQ ==&lt;br /&gt;
&lt;br /&gt;
Switch over to fw1-HQ to continue the configuration.&lt;br /&gt;
&lt;br /&gt;
=== Assign and Configure Sync Interface ===&lt;br /&gt;
&lt;br /&gt;
Browse to &amp;#039;&amp;#039;&amp;#039;Interfaces &amp;gt; Assign&amp;#039;&amp;#039;&amp;#039; and verify the SYNC interface is assigned.&lt;br /&gt;
&lt;br /&gt;
Browse to &amp;#039;&amp;#039;&amp;#039;Interfaces &amp;gt; OPT3&amp;#039;&amp;#039;&amp;#039; and configure:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Setting !! Value&lt;br /&gt;
|-&lt;br /&gt;
| Enable || checked&lt;br /&gt;
|-&lt;br /&gt;
| Description || SYNC&lt;br /&gt;
|-&lt;br /&gt;
| IPv4 Configuration Type || Static IPv4&lt;br /&gt;
|-&lt;br /&gt;
| IPv4 Address || 172.17.3.2/24&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Save and Apply Changes.&lt;br /&gt;
&lt;br /&gt;
=== Add Sync Firewall Rules (fw1-HQ) ===&lt;br /&gt;
&lt;br /&gt;
Browse to &amp;#039;&amp;#039;&amp;#039;Firewall &amp;gt; Rules&amp;#039;&amp;#039;&amp;#039;, Sync tab. Add:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Setting !! Value&lt;br /&gt;
|-&lt;br /&gt;
| Action || Pass&lt;br /&gt;
|-&lt;br /&gt;
| Interface || Sync&lt;br /&gt;
|-&lt;br /&gt;
| Protocol || any&lt;br /&gt;
|-&lt;br /&gt;
| Source || any&lt;br /&gt;
|-&lt;br /&gt;
| Destination || any&lt;br /&gt;
|-&lt;br /&gt;
| Description || allow sync&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Save and apply changes.&lt;br /&gt;
&lt;br /&gt;
=== Change Interface IPs (fw1-HQ) ===&lt;br /&gt;
&lt;br /&gt;
The gateway IPs on the internal interfaces need to be CARP IPs so they fail over. Change the LAN and DMZ interface IPs:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;LAN&amp;#039;&amp;#039;&amp;#039;: change from 172.17.1.1 to &amp;#039;&amp;#039;&amp;#039;172.17.1.2&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;DMZ&amp;#039;&amp;#039;&amp;#039;: change from 172.17.2.1 to &amp;#039;&amp;#039;&amp;#039;172.17.2.2&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The .1 IPs will be added back as CARP IPs in the next step. Save and apply changes after each interface.&lt;br /&gt;
&lt;br /&gt;
=== Add CARP VIPs (fw1-HQ) ===&lt;br /&gt;
&lt;br /&gt;
Browse to &amp;#039;&amp;#039;&amp;#039;Firewall &amp;gt; Virtual IPs&amp;#039;&amp;#039;&amp;#039;, and click &amp;#039;&amp;#039;&amp;#039;+Add&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
==== LAN CARP VIP ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Setting !! Value&lt;br /&gt;
|-&lt;br /&gt;
| Type || CARP&lt;br /&gt;
|-&lt;br /&gt;
| Interface || LAN&lt;br /&gt;
|-&lt;br /&gt;
| IP Address || 172.17.1.1/24&lt;br /&gt;
|-&lt;br /&gt;
| Virtual IP Password || random characters (syncs automatically)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Leave the remainder at defaults. Save and Apply Changes.&lt;br /&gt;
&lt;br /&gt;
==== DMZ CARP VIP ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Setting !! Value&lt;br /&gt;
|-&lt;br /&gt;
| Type || CARP&lt;br /&gt;
|-&lt;br /&gt;
| Interface || DMZ&lt;br /&gt;
|-&lt;br /&gt;
| IP Address || 172.17.2.1/24&lt;br /&gt;
|-&lt;br /&gt;
| Virtual IP Password || random string&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note the VHID group increments to 2. Save and apply changes.&lt;br /&gt;
&lt;br /&gt;
=== Edit Existing WAN VIPs (fw1-HQ) ===&lt;br /&gt;
&lt;br /&gt;
==== WAN .4 VIP ====&lt;br /&gt;
&lt;br /&gt;
Edit 192.0.2.4: change type from IP Alias to CARP, subnet mask /24, VHID Group 3, random Virtual IP Password. Save.&lt;br /&gt;
&lt;br /&gt;
==== WAN .5 and .6 VIPs ====&lt;br /&gt;
&lt;br /&gt;
Edit 192.0.2.5 and 192.0.2.6: keep as IP Alias but change parent interface to the WAN CARP IP (192.0.2.4). Save and apply changes.&lt;br /&gt;
&lt;br /&gt;
==== WAN2 CARP VIPs ====&lt;br /&gt;
&lt;br /&gt;
Change 198.51.100.4 to CARP, and change the interface of 198.51.100.5 and .6 to 198.51.100.4.&lt;br /&gt;
&lt;br /&gt;
=== Configure HA Sync (fw1-HQ) ===&lt;br /&gt;
&lt;br /&gt;
Browse to &amp;#039;&amp;#039;&amp;#039;System &amp;gt; High Avail. Sync&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Setting !! Value&lt;br /&gt;
|-&lt;br /&gt;
| Synchronize States || checked&lt;br /&gt;
|-&lt;br /&gt;
| Synchronize Interface || SYNC&lt;br /&gt;
|-&lt;br /&gt;
| pfsync Synchronize Peer IP || 172.17.3.3&lt;br /&gt;
|-&lt;br /&gt;
| Synchronize Config to IP || 172.17.3.3&lt;br /&gt;
|-&lt;br /&gt;
| Remote System Username || admin&lt;br /&gt;
|-&lt;br /&gt;
| Remote System Password || pfsense&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Click &amp;#039;&amp;#039;&amp;#039;toggle all&amp;#039;&amp;#039;&amp;#039; to check all synchronize configuration boxes, then click Save.&lt;br /&gt;
&lt;br /&gt;
Configuration and state synchronization are now fully enabled. Do not make config changes directly on the secondary from here out, as they’ll be overwritten by the primary.&lt;br /&gt;
&lt;br /&gt;
=== Configure Outbound NAT ===&lt;br /&gt;
&lt;br /&gt;
Browse to &amp;#039;&amp;#039;&amp;#039;Firewall &amp;gt; NAT&amp;#039;&amp;#039;&amp;#039;, Outbound tab. Edit rules so traffic is NATed to IPs that fail over:&lt;br /&gt;
&lt;br /&gt;
* Edit &amp;quot;HQ 172.17./16 out via WAN IP&amp;quot; — change Translation to &amp;#039;&amp;#039;&amp;#039;192.0.2.6&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Edit &amp;quot;HQ 172.17./16 out via WAN2 IP&amp;quot; — change Translation to &amp;#039;&amp;#039;&amp;#039;198.51.100.6&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
=== Configure LAN DHCP ===&lt;br /&gt;
&lt;br /&gt;
Browse to &amp;#039;&amp;#039;&amp;#039;Services &amp;gt; DHCP Server&amp;#039;&amp;#039;&amp;#039;, LAN tab:&lt;br /&gt;
&lt;br /&gt;
* Set default gateway to the LAN CARP VIP &amp;#039;&amp;#039;&amp;#039;172.17.1.1&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Set &amp;#039;&amp;#039;&amp;#039;Failover Peer IP&amp;#039;&amp;#039;&amp;#039; to fw2-HQ LAN IP &amp;#039;&amp;#039;&amp;#039;172.17.1.3&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Save&lt;br /&gt;
&lt;br /&gt;
== Check Status ==&lt;br /&gt;
&lt;br /&gt;
Browse to &amp;#039;&amp;#039;&amp;#039;Status &amp;gt; CARP&amp;#039;&amp;#039;&amp;#039; on both fw1-HQ and fw2-HQ. All CARP IPs should show:&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;master&amp;#039;&amp;#039;&amp;#039; status on fw1-HQ&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;backup&amp;#039;&amp;#039;&amp;#039; status on fw2-HQ&lt;br /&gt;
&lt;br /&gt;
== Testing Failover ==&lt;br /&gt;
&lt;br /&gt;
=== Force Failover by Disabling CARP on Primary ===&lt;br /&gt;
&lt;br /&gt;
On fw1-HQ, browse to &amp;#039;&amp;#039;&amp;#039;Status &amp;gt; CARP&amp;#039;&amp;#039;&amp;#039; and click &amp;#039;&amp;#039;&amp;#039;Temporarily Disable CARP&amp;#039;&amp;#039;&amp;#039;. After reload, all CARP IPs change to &amp;quot;disabled.&amp;quot; Check fw2-HQ — they should all show master status.&lt;br /&gt;
&lt;br /&gt;
=== Force Failover by Simulating Power Removal ===&lt;br /&gt;
&lt;br /&gt;
Navigate to &amp;#039;&amp;#039;&amp;#039;Diagnostics &amp;gt; Halt System&amp;#039;&amp;#039;&amp;#039; and click &amp;#039;&amp;#039;&amp;#039;Reboot&amp;#039;&amp;#039;&amp;#039; on the primary. Within a second after rebooting, fw2-HQ should show master status on all CARP IPs. After fw1-HQ reboots, it will regain master status automatically.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#e6f2ff; padding:10px; border-left:4px solid #003366; margin-top:15px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Previous Module:&amp;#039;&amp;#039;&amp;#039; [[Training: High Availability|Training: High Availability — HA Overview and Concepts]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Source Attribution ==&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;Netgate pfSense Plus Fundamentals and Practical Application&amp;#039;&amp;#039;&lt;br /&gt;
* © 2021 Rubicon Communications, LLC (Netgate)&lt;br /&gt;
* Source PDF: FUND001-LIVE-Lab10-HA.pdf&lt;br /&gt;
* Reference fw2-HQ IPs: WAN 192.0.2.3, LAN 172.17.1.3, DMZ 172.17.2.3&lt;/div&gt;</summary>
		<author><name>Justinaquino</name></author>
	</entry>
</feed>