Stuck getting IPv6 working with Proxmox containers and pfSense - OVH network

PairedPrototype

New Member
May 28, 2020
8
0
1
28
UK
My problem:
IPv6 connectivity on the Proxmox host appears to be working fine, I can make connections to and from the Proxmox host, for example, SSH (over IPv6) into the host and pinging the Cloudflare IPv6 DNS address works fine, but that's as far as I can get. Connections from the pfSense guest using IPv6 don't work at all. I think the issue I'm facing now is to do with proxying NDP to the pfSense guest. This is purely a guess though, I'm not that well versed with IPv6.

Setup:
I'll substitute some address for obvious reasons:
  • 12.34.56.78 = Proxmox public IPv4
  • 12.34.56.254 = Proxmox OVH IPv4 gateway
  • 11.34.56.78 = pfSense public IPv4
  • 11.34.56.254 = pfSense OVH IPv4 gateway
  • 2001:41d0:dead:beef::1 = Proxmox public IPv6
  • 2001:41d0:dead:beef::2 = pfSense WAN IPv6
  • 2001:41d0:dead:beff:ff:ff:ff:ff = OVH IPv6 gateway
  • ov:hs:gi:ve:nm:ac = OVH supplied virtual MAC for pfSense IPv4 address (a second IP from OVH that they call a failover IP)

Code:
auto lo
iface lo inet loopback

auto enp1s0f0
iface enp1s0f0 inet manual

auto vmbr1
iface vmbr1 inet static
        address 10.1.0.4/16
        bridge-ports none
        bridge-stp off
        bridge-fd 0

auto vmbr0
iface vmbr0 inet static
        address 12.34.56.78/24
        gateway 12.34.56.254
        bridge-ports enp1s0f0
        bridge-stp off
        bridge-fd 0

iface vmbr0 inet6 static
        address 2001:41d0:dead:beef::1/64
        post-up /sbin/ip -f inet6 route add 2001:41d0:dead:beff:ff:ff:ff:ff dev vmbr0
        post-up /sbin/ip -f inet6 route add default via 2001:41d0:dead:beff:ff:ff:ff:ff
        post-up echo 1 > /proc/sys/net/ipv6/conf/vmbr0/proxy_ndp
        pre-down /sbin/ip -f inet6 route del default via 2001:41d0:dead:beff:ff:ff:ff:ff
        pre-down /sbin/ip -f inet6 route del 2001:41d0:dead:beff:ff:ff:ff:ff dev vmbr0

Code:
agent: 1
args: -cpu kvm64,-x2apic
balloon: 2048
bios: ovmf
bootdisk: scsi0
cores: 4
efidisk0: local:106/vm-106-disk-0.qcow2,size=128K
memory: 6144
name: pfsense
net0: virtio=ov:hs:gi:ve:nm:ac,bridge=vmbr0
net1: virtio=96:CF:AB:D6:D0:85,bridge=vmbr1
numa: 0
onboot: 1
ostype: other
scsi0: local:106/vm-106-disk-1.qcow2,discard=on,iothread=1,size=32G,ssd=1
scsihw: virtio-scsi-single
shares: 2000
smbios1: uuid=9f791e6e-7ca7-40a8-9809-7fcf2ca22060
sockets: 1
startup: order=10,up=45
vmgenid: 4e66c7da-4895-42d4-bf3c-894dd8b57398

Code:
ipv4: 11.34.56.78
ipv4 gateway: 11.34.56.254
ipv6: 2001:41d0:dead:beef::2
ipv6 gateway: 2001:41d0:dead:beff:ff:ff:ff:ff

Code:
root@proxmox:~$ ip -6 neigh show
2001:41d0:dead:beef::2 dev vmbr0 lladdr ov:hs:gi:ve:nm:ac router STALE
2001:41d0:dead:beff:ff:ff:ff:fd dev vmbr0 lladdr 00:ff:03:07:ff:fd router STALE
fe80::4cdb:a2ff:fefa:55f dev vmbr1 lladdr 4e:db:a2:fa:05:5f STALE
2001:41d0:dead:beff:ff:ff:ff:ff dev vmbr0 lladdr 00:f2:03:07:ff:ff router REACHABLE
fe80::2ff:3ff:fe07:fffe dev vmbr0 lladdr 00:ff:03:07:ff:fe router STALE
fe80::ff:fe72:6304 dev vmbr0 lladdr ov:hs:gi:ve:nm:ac router STALE
fe80::86e:78a3:dfa:3d64 dev vmbr1 lladdr 16:d3:ab:82:f0:3d STALE
2001:41d0:dead:beff:ff:ff:ff:fe dev vmbr0 lladdr 00:ff:03:07:ff:fe router STALE
fe80::2ff:3ff:fe07:fffd dev vmbr0 lladdr 00:ff:03:07:ff:fd router STALE
fe80::8c52:faff:feeb:f52d dev vmbr1 lladdr 8e:52:fa:eb:f5:2d STALE

Code:
[2.5.0-RELEASE][root@pfsense]/root: ndp -a -n
Neighbor                             Linklayer Address  Netif Expire    S Flags
fe80::94cf:abff:fed6:d085%vtnet1     96:cf:ab:d6:d0:85 vtnet1 permanent R
2001:41d0:dead:beef::1                d0:50:99:d8:1f:8a vtnet0 14s       R R
2001:41d0:dead:beef::2                ov:hs:gi:ve:nm:ac vtnet0 permanent R
fe80::ff:fe72:6304%vtnet0            ov:hs:gi:ve:nm:ac vtnet0 permanent R
fe80::d250:99ff:fed8:1f8a%vtnet0     d0:50:99:d8:1f:8a vtnet0 24s       R R

Code:
[2.5.0-RELEASE][root@pfsense]/root: ping6 -c4 2606:4700:4700::1111
PING6(56=40+8+8 bytes) 2001:41d0:dead:beef::2 --> 2606:4700:4700::1111

--- 2606:4700:4700::1111 ping6 statistics ---
4 packets transmitted, 0 packets received, 100.0% packet loss

Notes:
I did have success at one point by using ip6tables to accept all the traffic the Proxmox host needs i.e. SSH, the web GUI ports and Spice ports etc... Then DNAT the traffic to the pfSense guest and masquerade any outcoming connections from the pfSense guest, that did let me ping out from the pfSense guest to public IPv6 addresses, but I couldn't ping the pfSense guest IPv6 from my local machine. Traceroute seems to show the requests for the pfSense IPv6 getting to the OVH network fine but never seems to reach my server.

Code:
# Generated by ip6tables-save v1.8.2 on Sun Mar 07 02:47:16 2021
*nat
:PREROUTING ACCEPT [36:3216]
:INPUT ACCEPT [2:144]
:OUTPUT ACCEPT [2:192]
:POSTROUTING ACCEPT [2:192]
-A PREROUTING -i vmbr0 -p icmp -j ACCEPT
-A PREROUTING -i vmbr0 -p tcp -m multiport --dports 25,2003,3128,8006,5900:5999,60000:60050 -j ACCEPT
-A PREROUTING -i vmbr0 -p udp -m multiport --dports 111,5404,5405 -j ACCEPT
-A PREROUTING -i vmbr0 -j DNAT --to-destination {My-IPv6-block}::2
-A POSTROUTING -s {My-IPv6-block}::/64 -o vmbr0 -j MASQUERADE
COMMIT
# Completed on Sun Mar 07 02:47:16 2021
# Generated by ip6tables-save v1.8.2 on Sun Mar 07 02:47:16 2021
*raw
:PREROUTING ACCEPT [891:183290]
:OUTPUT ACCEPT [689:228149]
-A PREROUTING -i fwbr+ -j CT --zone 1
COMMIT
# Completed on Sun Mar 07 02:47:16 2021
# Generated by ip6tables-save v1.8.2 on Sun Mar 07 02:47:16 2021
*filter
:INPUT ACCEPT [22:1552]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [433:147845]
-A INPUT -i vmbr0 -p tcp -m tcp --dport 22 -j DROP
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
COMMIT
# Completed on Sun Mar 07 02:47:16 2021

I've Googled so much over the last few days, but it seems not many still care for IPv6 yet so it's made it incredibly hard to get this far. I've tried these guides but none are working for me:

I used this guide for setting up IPv4 which is working well:

If anyone has ideas, please send them.
Thanks
 
Last edited:

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!