├── .gitattributes ├── README.md └── images ├── Docker IPv6 Securely.png ├── Proxmox1.png ├── ProxmoxIPv6.png ├── ProxmoxIPv6v2.drawio.png ├── VMs.png ├── bridges.png ├── hetzner_ipv6.png ├── lab.png ├── pfsense.png ├── pfsense_bridge.png ├── pfsense_gateways.png ├── pfsense_interfaces.png ├── pfsense_interfaces2.png ├── pfsense_lan_dhcp.png ├── pfsense_lan_fw.png ├── pfsense_routing.png ├── pfsense_static_routes.png ├── pfsense_wan_fw.png ├── pfsense_wireguard.png ├── pfsense_wireguardPeer.png └── proxmox.png /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | - [Description](#description) 3 | - [Objectives](#objectives) 4 | - [Diagram](#diagram) 5 | - [Networking](#networking) 6 | - [Routes](#routes) 7 | - [Ranges](#ranges) 8 | - [IPv4](#ipv4) 9 | - [IPv6](#ipv6) 10 | - [Proxmox Install](#proxmox-install) 11 | - [Download and install utilities](#download-and-install-utilities) 12 | - [Boot the installer and access it via VNC](#boot-the-installer-and-access-it-via-vnc) 13 | - [After install](#after-install) 14 | - [Optional settings](#optional-settings) 15 | - [Proxmox configuration](#proxmox-configuration) 16 | - [Bridges and Network interfaces](#bridges-and-network-interfaces) 17 | - [Proxmox interface configuration](#proxmox-interface-configuration) 18 | - [Firewall VM (OpnSense)](#firewall-vm-opnsense) 19 | - [Interfaces assignments in pfSense](#interfaces-assignments-in-pfsense) 20 | - [LAN6 (WAN)](#lan6-wan) 21 | - [LAN](#lan) 22 | - [WireGuard](#wireguard) 23 | - [Proxmox KVM](#proxmox-kvm) 24 | - [Home network](#home-network) 25 | - [Routing in OPNSense](#routing-in-opnsense) 26 | - [Firewall Rules](#firewall-rules) 27 | - [LAN DHCPv6](#lan-dhcpv6) 28 | - [Create a Debian template](#create-a-debian-template) 29 | - [VM configuration](#vm-configuration) 30 | - [Docker configuration](#docker-configuration) 31 | 32 | # Description 33 | This howto will help you set up a Proxmox host with a fully routed IPv4 and IPv6 network for VMs with an out of band firewall. 34 | 35 | Point to Point internal networks will help route IP traffic between the public internet an our internal network avoiding ARP resolution, `169.254.0.0/16` and `range::1/80` 36 | ## Objectives 37 | * Fully routed IPv6 and NATed IPv4 to VMs 38 | * Each VM will receive a IPv6 from a /77 subnet 39 | * Each container under this VM will receive an IPv6 automatically. 40 | * IPv4 to IPv6 Tunnel using WireGuard 41 | * Out of band Firewall 42 | * PfSense controlling the access to all public traffic 43 | * Having an out of band firewall, meaning outside of the VMs. This will increase the security of the system 44 | ## Diagram 45 | ![Diagram](images/ProxmoxIPv6v2.drawio.png) 46 | 47 | 48 | # Networking 49 | ## Routes 50 | IPv4 internal NAT: 51 | - 169.254.0.0/16 dev vmbr0 src 169.254.0.1 (vmbr0) 52 | - 172.16.0.0/16 via 169.254.0.2 (FW LAN) dev vmbr0 53 | 54 | IPv6: 55 | - range::2 dev eth0 (eth0) 56 | - range::3 dev vmbr0 (vmbr0) 57 | - range::4 dev vmbr0 (FW WAN) 58 | - range::/64 via range::4 dev vmbr0 59 | - default via fe80::1 dev eth0 60 | 61 | ## Ranges 62 | ### IPv4 63 | * Host: 64 | * eth0: Public IP 65 | * Port forward to VMs 66 | * vmbr0: 169.254.0.1/16 (Host to WAN and NAT) 67 | * Routes 172.16.0.0/16 via 169.254.0.2 (Firewall WAN) 68 | 69 | * Firewall VM: 70 | * LAN: 172.16.0.1/16 71 | * WAN: 169.254.0.2/16 72 | * Rotes 0.0.0.0 via 169.254.0.2 73 | ### IPv6 74 | * Host 75 | * eth0: range::2/128 (eth0) 76 | * vmbr0: range::3/128 (vmbr0) 77 | * range::4 dev vmbr0 (Firewall) 78 | * range::/64 via range::4 79 | 80 | * Firewall VM 81 | * WAN: range::4/128 82 | * LAN: range::/64 (Divided in 65536 /80) 83 | * range:1::/80 (Reserved for Host to Firewall) 84 | * range:2::/80 (WireGuard Tunnel) 85 | * range:3::/80 (VMs main IP) 86 | * range:4-ffff:/80 (Docker networks) 87 | 88 | # Proxmox Install 89 | For normal install go to: https://www.proxmox.com/en/proxmox-ve/get-started 90 | 91 | To install remotely boot into a rescue system with QEMU support. 92 | 93 | ## Download and install utilities 94 | ``` 95 | apt -y install ovmf wget 96 | wget -O pve.iso http://download.proxmox.com/iso/proxmox-ve_7.4-1.iso 97 | ``` 98 | ## Boot the installer and access it via VNC 99 | Change the password and the disk devices 100 | 101 | ``` 102 | printf "change vnc password\n%s\n" "password" | qemu-system-x86_64 -enable-kvm -cpu host -smp 4 -m 4096 -boot d -cdrom ./pve.iso -drive file=/dev/sda,format=raw,media=disk,if=virtio -drive file=/dev/sdb,format=raw,media=disk,if=virtio -vnc :0,password -monitor stdio -no-reboot 103 | ``` 104 | Connect to your public IP to port 5900 and the password you selected. 105 | 106 | ## After install 107 | Run it under QEMU once more. 108 | 109 | ``` 110 | printf "change vnc password\n%s\n" "password" | qemu-system-x86_64 -enable-kvm -cpu host -smp 4 -m 4096 -boot d -drive file=/dev/sda,format=raw,media=disk,if=virtio -drive file=/dev/sdb,format=raw,media=disk,if=virtio -vnc :0,password -monitor stdio -no-reboot 111 | ``` 112 | Connect via VNC once again and change the following: 113 | ``` 114 | nano /etc/default/grub 115 | 116 | # Edit this to disable "predictable" network interfaces, so the first interface is always eth0 117 | #GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=0 biosdevname=0" 118 | # Then run 119 | update-grub 120 | 121 | nano /etc/network/interfaces 122 | # Change brodge-ports from ens3 to eth0 123 | 124 | # Create a swapfile if you are NOT using ZFS 125 | fallocate -l 8G /swapfile 126 | chmod 600 /swapfile 127 | mkswap /swapfile 128 | echo "/swapfile swap swap defaults 0 0" >> /etc/fstab 129 | 130 | # Create ZFS volume for swap 131 | zfs create -V 8G -b $(getconf PAGESIZE) -o compression=zle \ 132 | -o logbias=throughput -o sync=always\ 133 | -o primarycache=metadata -o secondarycache=none \ 134 | -o com.sun:auto-snapshot=false rpool/swap 135 | 136 | # Prepare it as swap partition: 137 | mkswap -f /dev/zvol/rpool/swap 138 | swapon /dev/zvol/rpool/swap 139 | 140 | # Add it to fstab 141 | echo "/dev/zvol/rpool/swap none swap discard 0 0" >> /etc/fstab 142 | ``` 143 | Reboot into Promox and change /etc/network/interfaces as shown in [Proxmox interface configuration](#proxmox-interface-configuration) 144 | 145 | 146 | ## Optional settings 147 | 148 | ``` 149 | systemctl disable --now rpcbind rpcbind.socket 150 | sed -i 's/^\([^#].*\)/# \1/g' /etc/apt/sources.list.d/pve-enterprise.list 151 | echo "deb [arch=amd64] http://download.proxmox.com/debian/pve bullseye pve-no-subscription" > /etc/apt/sources.list.d/pve-no-subscription-repo.list 152 | sed -i "s|ftp.*.debian.org|ftp.debian.org|g" /etc/apt/sources.list 153 | apt update && apt -y upgrade && apt -y autoremove 154 | pveupgrade 155 | sed -Ezi.bak "s/(Ext.Msg.show\(\{\s+title: gettext\('No valid sub)/void\(\{ \/\/\1/g" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js && systemctl restart pveproxy.service 156 | apt install -y libguestfs-tools unzip iptables-persistent 157 | apt install net-tools 158 | echo "nf_conntrack" >> /etc/modules 159 | echo "net.ipv4.ip_forward=1" >> /etc/sysctl.d/99-proxmox.conf 160 | echo "net.ipv6.conf.all.forwarding=1" >> /etc/sysctl.d/99-proxmox.conf 161 | echo "net.netfilter.nf_conntrack_max=1048576" >> /etc/sysctl.d/99-proxmox.conf 162 | echo "net.netfilter.nf_conntrack_tcp_timeout_established=28800" >> /etc/sysctl.d/99-proxmox.conf 163 | # ZFS memory limits 164 | echo "options zfs zfs_arc_min=$[6 * 1024*1024*1024]" >> /etc/modprobe.d/99-zfs.conf 165 | echo "options zfs zfs_arc_max=$[12 * 1024*1024*1024]" >> /etc/modprobe.d/99-zfs.conf 166 | update-initramfs -u 167 | ``` 168 | 169 | ## Proxmox configuration 170 | We will need a way to provision VMs, for this article we selected Proxmox 171 | More information: 172 | * https://www.proxmox.com/en/proxmox-ve/get-started 173 | 174 | 175 | ![Proxmox](images/proxmox.png) 176 | 177 | 178 | ## Bridges and Network interfaces 179 | We will create 2 bridges and use the phisical network interface. 180 | ![Bridges](images/bridges.png) 181 | * **eth0:** Physical interface where we get our public IPv4 and v6 traffic. 182 | * **vmbr0**: Will be shared to OpenSense as WAN, all the traffic to VMs will go trough here 183 | * **vmbr1**: Internal IPv4/v6 network, will be shared as LAN with no host IPv4 184 | 185 | ## Proxmox interface configuration 186 | ``` 187 | auto lo 188 | iface lo inet loopback 189 | 190 | # device: eth0 191 | auto eth0 192 | iface eth0 inet static 193 | address xxx.76.28.177 194 | netmask 255.255.255.255 195 | pointopoint xxx.76.28.161 196 | gateway xxx.76.28.161 197 | 198 | iface eth0 inet6 static 199 | address range::2 200 | netmask 128 201 | gateway fe80::1 202 | up sysctl -p 203 | 204 | # for single IPs 205 | auto vmbr0 206 | iface vmbr0 inet static 207 | address 169.254.0.1 208 | netmask 255.255.0.0 209 | bridge_ports none 210 | bridge_stp off 211 | bridge_fd 0 212 | up ip route add 172.16.0.0/16 via 169.254.0.2 dev vmbr0 213 | 214 | # WAN Interface in the Firewall VM 215 | iface vmbr0 inet6 static 216 | address range::3 217 | netmask 128 218 | up ip -6 route add range::4 dev vmbr0 219 | up ip -6 route add range::/64 via range::4 dev vmbr0 220 | 221 | # LAN interface in the Firewall VM 222 | auto vmbr1 223 | iface vmbr1 inet static 224 | address 0.0.0.0 225 | ``` 226 | # Firewall VM (OpnSense) 227 | We will need an out of band Firewall to be able to whitelist open ports and for this, we are going to use OpnSense. 228 | 229 | More information here: https://opnsense.org/ 230 | 231 | We will add 2 (WAN,LAN) network cards and configure each one to one of the Bridges we created before 232 | 233 | ![pfSense](images/Proxmox1.png) 234 | 235 | ## Interfaces assignments in pfSense 236 | ![pfSense](images/pfsense_interfaces2.png) 237 | ### LAN6 (WAN) 238 | Default gateways for the VM hosts. 239 | * IPv6: range::4 /65 240 | * IPv4: 169.254.0.2 /16 241 | ### LAN 242 | * IPv4: 172.16.0.1/16 (NATed from Host) 243 | * IPv6: range:8000::2 /77 244 | ### WireGuard 245 | We configure WireGuard in a Site-to-Site setup as described here: https://docs.netgate.com/pfsense/en/latest/recipes/wireguard-s2s.html 246 | 247 | With this configuration: 248 | 249 | | Item | Value | 250 | | ------------- | --------------------------------- | 251 | | Design | Site-to-Site, one peer per tunnel | 252 | | Tunnel Subnet | `fda2:5d88:d5a3:1d4d::/64` | 253 | 254 | 255 | ### Proxmox KVM 256 | 257 | | Item | Value | 258 | | -------------- | --------------------------------------------------------- | 259 | | Endpoint IP Address | `Home IPv4` | 260 | | TUN IPv6 Address | `fda2:5d88:d5a3:1d4d::1/64` | 261 | | Listen Port | `51820` | 262 | | SatelliteGW | `fda2:5d88:d5a3:1d4d::2` via TUN interface | 263 | | Static Route| `range:8008::/77` via SatelliteGW | 264 | 265 | ![pfSense](images/pfsense_wireguard.png) 266 | 267 | ### Home network 268 | | Item | Value | 269 | | -------------- | --------------------------------------------------- | 270 | | Endpoint IP Address | `Proxmox IPv4` | 271 | | TUN IPv6 Address | `fda2:5d88:d5a3:1d4d::2/64` | 272 | | Listen Port | `51820` | 273 | | LAN IPv6 | `range:8008::1/77` | 274 | | GW IPv6 | `fda2:5d88:d5a3:1d4d::1/64` via TUN | 275 | | DHCPv6 on LAN| `range:8008:1::` to `range:800f:ffff:ffff:ffff` 276 | | RA on LAN| Assisted| 277 | 278 | ![pfSense](images/pfsense_wireguardPeer.png) 279 | 280 | ### Routing in OPNSense 281 | 282 | The default GW for IPv6 is range::3 trough the WAN interface, this is because this interface is connected to the KVM bridge that has access to the connection to the internet. 283 | 284 | Each Docker network in the VM host gets a static route so they can communicate between each other. 285 | 286 | For this we need to define a Gateway as range:8000:1:0:1 (VM1) trough the LAN interface called "DockerVM1" in the picture. 287 | 288 | SatelliteGW is the gateway on the other side of the WireGuard Tunnel. 289 | 290 | ![pfSense bridge](images/pfsense_gateways.png) 291 | 292 | Finally we add a 2 static routes: 293 | * Containers in VM1: Our container subnet range:8010::/77 can be reached trough the "DockerVM1" gateway that means trough the LAN interface via the host at range:8000:1:0:1 294 | * IPv4 to Ipv6 Tunnel: range:8008::/77 will be served to clients connected to the WireGuard tunnel via the other side of the TUN1 interface at fda2:5d88:d5a3:1d4d::2 295 | 296 | ![pfSense bridge](images/pfsense_static_routes.png) 297 | 298 | 299 | ### Firewall Rules 300 | The rules to allow a Port in our IPv6 networks is done in the WAN interface. 301 | 302 | ![pfSense wan fw](images/pfsense_wan_fw.png) 303 | 304 | Allow all IPv4 and IPv6 in the LAN interface 305 | ![pfSense lan fw](images/pfsense_lan_fw.png) 306 | ### LAN DHCPv6 307 | This is the VM ipv6 range that will be managed by the DHCP 308 | * Enable DHCPv6 server with range: range:8000:2:: to range:ffff:ffff:ffff 309 | * Enable Assisted RA 310 | * NO dhcpv6 on LAN6(wan) 311 | 312 | # Create a Debian template 313 | From https://cloud.debian.org/images/cloud/ Download the latest qcow2 file. 314 | ``` 315 | wget https://cloud.debian.org/images/cloud/bullseye/20230515-1381/debian-11-genericcloud-amd64-20230515-1381.qcow2 316 | qm create 9500 --name Debian11CloudInit --net0 virtio,bridge=vmbr0 317 | qm importdisk 9500 debian-11-genericcloud-amd64-20220613-1045.qcow2 local-lvm 318 | qm set 9500 --scsihw virtio-scsi-pci --scsi0 local-lvm:vm-9500-disk-0 319 | qm set 9500 --ide2 local-lvm:cloudinit 320 | qm set 9500 --boot c --bootdisk scsi0 321 | qm set 9500 --serial0 socket --vga serial0 322 | qm set 9500 --agent enabled=1 #optional but recommended 323 | qm template 9500 324 | ``` 325 | 326 | # VM configuration 327 | * ifconfig 328 | 329 | ``` 330 | docker0: flags=4099 mtu 1500 331 | inet 172.17.0.1 netmask 255.255.0.0 broadcast 172.17.255.255 332 | inet6 range:8010::1 prefixlen 77 scopeid 0x0 333 | 334 | ens19: flags=4675 mtu 1500 335 | inet 172.16.99.10 netmask 255.255.0.0 broadcast 172.16.255.255 336 | inet6 range:8000:1:0:1 prefixlen 128 scopeid 0x0 337 | ``` 338 | * route 339 | ``` 340 | ::1 dev lo 341 | range:8000:1:0:1 dev ens19 proto kernel metric 100 pref medium 342 | range:8000::/77 dev ens19 proto ra metric 100 pref medium 343 | range:8008::/77 dev docker0 metric 1024 linkdown pref medium 344 | range:8010::/77 dev docker0 proto kernel metric 256 linkdown pref medium 345 | range:8010::/77 dev docker0 metric 1024 linkdown pref medium 346 | fe80::/64 dev ens19 proto kernel metric 100 pref medium 347 | fe80::/64 dev docker0 proto kernel metric 256 linkdown pref medium 348 | default via fe80::3039:93ff:fe18:ccdd dev ens19 proto ra metric 20100 pref high 349 | ``` 350 | 351 | 352 | 353 | # Docker configuration 354 | More information: https://docs.docker.com/v17.09/engine/userguide/networking/default_network/ipv6/#routed-network-environment 355 | 356 | We configure docker to use a /77 subnets under range 357 | 358 | * /etc/docker/daemon.json 359 | ``` 360 | { 361 | "ipv6": true, 362 | "fixed-cidr-v6": "range:8010::/77" 363 | } 364 | 365 | ``` 366 | Test it by using an alpine container: 367 | 368 | ``` 369 | # docker run -it alpine ash 370 | / # ip -6 addr 371 | 1: lo: mtu 65536 state UNKNOWN qlen 1000 372 | inet6 ::1/128 scope host 373 | valid_lft forever preferred_lft forever 374 | 11: eth0@if12: mtu 1500 state UP 375 | inet6 range:8010:242:ac11:2/77 scope global flags 02 376 | valid_lft forever preferred_lft forever 377 | inet6 fe80::42:acff:fe11:2/64 scope link 378 | valid_lft forever preferred_lft forever 379 | / # ip -6 route 380 | range:8010::/77 dev eth0 metric 256 381 | fe80::/64 dev eth0 metric 256 382 | default via range:8010::1 dev eth0 metric 1024 383 | multicast ff00::/8 dev eth0 metric 256 384 | / # ping -6 www.google.com 385 | PING www.google.com (2a00:1450:4001:810::2004): 56 data bytes 386 | 64 bytes from 2a00:1450:4001:810::2004: seq=0 ttl=115 time=5.769 ms 387 | 64 bytes from 2a00:1450:4001:810::2004: seq=1 ttl=115 time=5.885 ms 388 | ^C 389 | --- www.google.com ping statistics --- 390 | 2 packets transmitted, 2 packets received, 0% packet loss 391 | round-trip min/avg/max = 5.769/5.827/5.885 ms 392 | 393 | ``` 394 | 395 | From here we can see we got range:ac11:2/77 and ping to Google over IPv6 works. 396 | 397 | 398 | -------------------------------------------------------------------------------- /images/Docker IPv6 Securely.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bruj0/ProxmoxIPv6/171562f7d443a0b5b21f043ff6635928ff740053/images/Docker IPv6 Securely.png -------------------------------------------------------------------------------- /images/Proxmox1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bruj0/ProxmoxIPv6/171562f7d443a0b5b21f043ff6635928ff740053/images/Proxmox1.png -------------------------------------------------------------------------------- /images/ProxmoxIPv6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bruj0/ProxmoxIPv6/171562f7d443a0b5b21f043ff6635928ff740053/images/ProxmoxIPv6.png -------------------------------------------------------------------------------- /images/ProxmoxIPv6v2.drawio.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bruj0/ProxmoxIPv6/171562f7d443a0b5b21f043ff6635928ff740053/images/ProxmoxIPv6v2.drawio.png -------------------------------------------------------------------------------- /images/VMs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bruj0/ProxmoxIPv6/171562f7d443a0b5b21f043ff6635928ff740053/images/VMs.png -------------------------------------------------------------------------------- /images/bridges.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bruj0/ProxmoxIPv6/171562f7d443a0b5b21f043ff6635928ff740053/images/bridges.png -------------------------------------------------------------------------------- /images/hetzner_ipv6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bruj0/ProxmoxIPv6/171562f7d443a0b5b21f043ff6635928ff740053/images/hetzner_ipv6.png -------------------------------------------------------------------------------- /images/lab.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bruj0/ProxmoxIPv6/171562f7d443a0b5b21f043ff6635928ff740053/images/lab.png -------------------------------------------------------------------------------- /images/pfsense.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bruj0/ProxmoxIPv6/171562f7d443a0b5b21f043ff6635928ff740053/images/pfsense.png -------------------------------------------------------------------------------- /images/pfsense_bridge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bruj0/ProxmoxIPv6/171562f7d443a0b5b21f043ff6635928ff740053/images/pfsense_bridge.png -------------------------------------------------------------------------------- /images/pfsense_gateways.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bruj0/ProxmoxIPv6/171562f7d443a0b5b21f043ff6635928ff740053/images/pfsense_gateways.png -------------------------------------------------------------------------------- /images/pfsense_interfaces.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bruj0/ProxmoxIPv6/171562f7d443a0b5b21f043ff6635928ff740053/images/pfsense_interfaces.png -------------------------------------------------------------------------------- /images/pfsense_interfaces2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bruj0/ProxmoxIPv6/171562f7d443a0b5b21f043ff6635928ff740053/images/pfsense_interfaces2.png -------------------------------------------------------------------------------- /images/pfsense_lan_dhcp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bruj0/ProxmoxIPv6/171562f7d443a0b5b21f043ff6635928ff740053/images/pfsense_lan_dhcp.png -------------------------------------------------------------------------------- /images/pfsense_lan_fw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bruj0/ProxmoxIPv6/171562f7d443a0b5b21f043ff6635928ff740053/images/pfsense_lan_fw.png -------------------------------------------------------------------------------- /images/pfsense_routing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bruj0/ProxmoxIPv6/171562f7d443a0b5b21f043ff6635928ff740053/images/pfsense_routing.png -------------------------------------------------------------------------------- /images/pfsense_static_routes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bruj0/ProxmoxIPv6/171562f7d443a0b5b21f043ff6635928ff740053/images/pfsense_static_routes.png -------------------------------------------------------------------------------- /images/pfsense_wan_fw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bruj0/ProxmoxIPv6/171562f7d443a0b5b21f043ff6635928ff740053/images/pfsense_wan_fw.png -------------------------------------------------------------------------------- /images/pfsense_wireguard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bruj0/ProxmoxIPv6/171562f7d443a0b5b21f043ff6635928ff740053/images/pfsense_wireguard.png -------------------------------------------------------------------------------- /images/pfsense_wireguardPeer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bruj0/ProxmoxIPv6/171562f7d443a0b5b21f043ff6635928ff740053/images/pfsense_wireguardPeer.png -------------------------------------------------------------------------------- /images/proxmox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bruj0/ProxmoxIPv6/171562f7d443a0b5b21f043ff6635928ff740053/images/proxmox.png --------------------------------------------------------------------------------