Website accessible via IPv6 is not accessible from outside of my network

I have a Ubuntu server 20.04, I cannot access my website outside of my house, I am running bind9, Apache2, PHP, MariaDB, I use Cloudflare and I have IPv6 enabled and I am in the DMZ on my router, ip address

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp0s25: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:23:24:08:58:1f brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.8/24 brd 192.168.1.255 scope global dynamic enp0s25
       valid_lft 84322sec preferred_lft 84322sec
    inet6 2604:99c0:8:2f0f:223:24ff:fe08:581f/64 scope global dynamic mngtmpaddr noprefixroute 
       valid_lft 43200sec preferred_lft 27000sec
    inet6 fe80::223:24ff:fe08:581f/64 scope link 
       valid_lft forever preferred_lft forever

Here is a screenshot of my Cloudflare settings:

Cloudflare settings

Here are my port forwarding settings:

enter image description here

A DNS propagation check shows the hostname and IPv6 are properly propagated.

Ifconfig

enp0s25: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.8  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::223:24ff:fe08:581f  prefixlen 64  scopeid 0x20<link>
        ether 00:23:24:08:58:1f  txqueuelen 1000  (Ethernet)
        RX packets 39144  bytes 8484850 (8.4 MB)
        RX errors 0  dropped 5561  overruns 0  frame 0
        TX packets 27929  bytes 5369531 (5.3 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 19  memory 0xf0500000-f0520000  

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 70795  bytes 6729178 (6.7 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 70795  bytes 6729178 (6.7 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

enter image description here


Nothing you’ve shown in your question points at the IPv6 firewall being correctly configured. IPv4 and IPv6 firewalling is completely separate because they are separate protocols.

Port forwarding is not commonly used with IPv6 because of not using NAT. Even your Exposed Host (often incorrectly labeled DMZ) settings are only effective for one protocol. If you have to input an IPv4 address, it’s even more obvious.

Dealing with IPv6 firewall rules is more challenging for your router; unlike before it does not necessarily control the IPv6 addresses of hosts on the local network. With SLAAC they can select it themselves. And then, the prefix could change at any time, changing all addresses again.

You need to find you router’s IPv6 firewall settings. On my FritzBox, I have dedicated IPv4/6 sections like this:

FritzBox Firewall Settings

Maybe try the “Firewall” settings next to the “Port Forwarding” settings.

If your router does not offer IPv6 firewall settings, this isn’t going to work. You should use IPv4 instead, probably in combination with a Dynamic DNS service.