diff --git a/host_vars/america.mirror.pkgbuild.com b/host_vars/america.mirror.pkgbuild.com
index c93e017658544a62e6d80cdaef3b426a0c5621f5..817cc81b32de025a5c1d6c86ac799e1f33acb0ec 100644
--- a/host_vars/america.mirror.pkgbuild.com
+++ b/host_vars/america.mirror.pkgbuild.com
@@ -2,6 +2,9 @@ hostname: "america.mirror.pkgbuild.com"
 ipv4_address: "143.244.34.62"
 ipv4_netmask: "/25"
 ipv4_gateway: "143.244.34.126"
+ipv6_address: "2a02:6ea0:cc0e::2"
+ipv6_netmask: "/128"
+ipv6_gateway: "2a02:6ea0:cc0e::1337"
 filesystem: "btrfs"
 network_interface: "en*"
 system_disks:
diff --git a/host_vars/asia.mirror.pkgbuild.com b/host_vars/asia.mirror.pkgbuild.com
index be770e6c63335091360e1c090de06116825aab8e..cc917725dfe3224ce0c1db207a103d87318f3d33 100644
--- a/host_vars/asia.mirror.pkgbuild.com
+++ b/host_vars/asia.mirror.pkgbuild.com
@@ -1,8 +1,10 @@
-hostname: "archive1.mirror.pkgbuild.com"
-
+hostname: "asia.mirror.pkgbuild.com"
 ipv4_address: "84.17.57.98"
 ipv4_netmask: "/24"
 ipv4_gateway: "84.17.57.110"
+ipv6_address: "2a02:6ea0:d605::2"
+ipv6_netmask: "/128"
+ipv6_gateway: "2a02:6ea0:d605::1337"
 filesystem: "btrfs"
 network_interface: "en*"
 system_disks:
diff --git a/host_vars/europe.mirror.pkgbuild.com b/host_vars/europe.mirror.pkgbuild.com
index b81378c9538cdb501b968b66e63766e0c80b00d8..ed890c44dde3dcb8264dfdb66209c0b95cc9a53b 100644
--- a/host_vars/europe.mirror.pkgbuild.com
+++ b/host_vars/europe.mirror.pkgbuild.com
@@ -1,8 +1,10 @@
 hostname: "europe.mirror.pkgbuild.com"
-
 ipv4_address: "89.187.191.12"
 ipv4_netmask: "/26"
 ipv4_gateway: "89.187.191.62"
+ipv6_address: "2a02:6ea0:c237::2"
+ipv6_netmask: "/128"
+ipv6_gateway: "2a02:6ea0:c237::1337"
 filesystem: "btrfs"
 network_interface: "en*"
 system_disks:
diff --git a/host_vars/repro2.pkgbuild.com b/host_vars/repro2.pkgbuild.com
index 23244b4b74bb892f76fec88741c69d84332d09a9..e0b7c85a3e6ee9d8a162912cba9beab8e9e17965 100644
--- a/host_vars/repro2.pkgbuild.com
+++ b/host_vars/repro2.pkgbuild.com
@@ -3,6 +3,9 @@ hostname: "repro2.pkgbuild.com"
 ipv4_address: "212.102.38.209"
 ipv4_netmask: "/24"
 ipv4_gateway: "212.102.38.222"
+ipv6_address: "2a02:6ea0:c238::2"
+ipv6_netmask: "/128"
+ipv6_gateway: "2a02:6ea0:c238::1337"
 
 filesystem: "btrfs"
 network_interface: "en*"
diff --git a/host_vars/runner1.archlinux.org b/host_vars/runner1.archlinux.org
index 54737decb06dac4c4886baf007bb5465016679b7..46e7a41d2cc04f07aad533cdd390ca84dc979eda 100644
--- a/host_vars/runner1.archlinux.org
+++ b/host_vars/runner1.archlinux.org
@@ -3,8 +3,11 @@ hostname: "runner1.archlinux.org"
 ipv4_address: "84.17.49.250"
 ipv4_netmask: "/24"
 ipv4_gateway: "84.17.49.254"
+ipv6_address: "2a02:6ea0:c719::2"
+ipv6_netmask: "/128"
+ipv6_gateway: "2a02:6ea0:c719::1337"
 filesystem: "btrfs"
-network_interface: "en*"
+network_interface: "ens1f*"
 system_disks:
   - /dev/sda
   - /dev/sdb
diff --git a/roles/common/templates/10-static-ethernet.network.j2 b/roles/common/templates/10-static-ethernet.network.j2
index caec1d47714c6355da9e8f7f45ef8565ec2af9ec..28c9ae1d5d6de017acd2f5557dd111571e90e87f 100644
--- a/roles/common/templates/10-static-ethernet.network.j2
+++ b/roles/common/templates/10-static-ethernet.network.j2
@@ -21,3 +21,8 @@ Peer={{ ipv4_gateway }}{{ ipv4_netmask}}
 [Address]
 Address={{ ipv6_address }}{{ ipv6_netmask }}
 {% endif %}
+
+{% if not ipv6_gateway.startswith("fe80") %}
+[Route]
+Destination={{ ipv6_gateway }}
+{% endif %}
diff --git a/tf-stage1/archlinux.tf b/tf-stage1/archlinux.tf
index c82c5348e9b03d5c0b76c5b99adbbc8305b09319..05571b5ac31a5be84c90a21d8e4d6819db90df00 100644
--- a/tf-stage1/archlinux.tf
+++ b/tf-stage1/archlinux.tf
@@ -138,6 +138,13 @@ resource "hetznerdns_record" "pkgbuild_com_america_a" {
   type    = "A"
 }
 
+resource "hetznerdns_record" "pkgbuild_com_america_aaaa" {
+  zone_id = hetznerdns_zone.pkgbuild.id
+  name    = "america.mirror"
+  value   = "2a02:6ea0:cc0e::2"
+  type    = "AAAA"
+}
+
 resource "hetznerdns_record" "pkgbuild_com_asia_a" {
   zone_id = hetznerdns_zone.pkgbuild.id
   name    = "asia.mirror"
@@ -145,6 +152,13 @@ resource "hetznerdns_record" "pkgbuild_com_asia_a" {
   type    = "A"
 }
 
+resource "hetznerdns_record" "pkgbuild_com_asia_aaaa" {
+  zone_id = hetznerdns_zone.pkgbuild.id
+  name    = "asia.mirror"
+  value   = "2a02:6ea0:d605::2"
+  type    = "AAAA"
+}
+
 resource "hetznerdns_record" "pkgbuild_com_europe_a" {
   zone_id = hetznerdns_zone.pkgbuild.id
   name    = "europe.mirror"
@@ -152,6 +166,13 @@ resource "hetznerdns_record" "pkgbuild_com_europe_a" {
   type    = "A"
 }
 
+resource "hetznerdns_record" "pkgbuild_com_europe_aaaa" {
+  zone_id = hetznerdns_zone.pkgbuild.id
+  name    = "europe.mirror"
+  value   = "2a02:6ea0:c237::2"
+  type    = "AAAA"
+}
+
 resource "hetznerdns_record" "pkgbuild_com_repro1_a" {
   zone_id = hetznerdns_zone.pkgbuild.id
   name    = "repro1"
@@ -173,6 +194,13 @@ resource "hetznerdns_record" "pkgbuild_com_repro2_a" {
   type    = "A"
 }
 
+resource "hetznerdns_record" "pkgbuild_com_repro2_aaaa" {
+  zone_id = hetznerdns_zone.pkgbuild.id
+  name    = "repro2"
+  value   = "2a02:6ea0:c238::2"
+  type    = "AAAA"
+}
+
 resource "hetznerdns_record" "pkgbuild_com_www_a" {
   zone_id = hetznerdns_zone.pkgbuild.id
   name    = "www"
@@ -635,6 +663,13 @@ resource "hetznerdns_record" "archlinux_org_runner1_a" {
   type    = "A"
 }
 
+resource "hetznerdns_record" "archlinux_org_runner1_aaaa" {
+  zone_id = hetznerdns_zone.archlinux.id
+  name    = "runner1"
+  value   = "2a02:6ea0:c719::2"
+  type    = "AAAA"
+}
+
 resource "hetznerdns_record" "archlinux_org_runner2_a" {
   zone_id = hetznerdns_zone.archlinux.id
   name    = "runner2"