summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--content/posts/openbsd-vpn-gateway/index.org17
1 files changed, 17 insertions, 0 deletions
diff --git a/content/posts/openbsd-vpn-gateway/index.org b/content/posts/openbsd-vpn-gateway/index.org
index c961f82..0fff8d7 100644
--- a/content/posts/openbsd-vpn-gateway/index.org
+++ b/content/posts/openbsd-vpn-gateway/index.org
@@ -339,3 +339,20 @@
=192.168.0.0/24=.
- =to any= Packets with any destination.
+
+ - =nat-to ($vpn_if)= Translate the IP addresses on the matched
+ packets to the address on =$vpn_if=. In this case =$vpn_if=
+ evaluates to =tun0=.
+
+ Notice that =($vpn_if)= is in parentheses. This tells pf to
+ re-evaluate the rule when the status of =$vpn_if=
+ changes. Without this, if the VPN has to restart, and the
+ interface gets created and destroyed by OpenVPN, or of OpenVPN
+ starts after pf, the entire firewall configuration would have to
+ be manually reloaded.
+
+ With the parentheses, this rule will get updated as =tun0= get
+ updated. This includes going created or destroyed, or even
+ changing IP addresses. This way it's possible to have OpenVPN
+ reconnect itself should the connection drop without any user
+ intervention.