Pi-Hole and IPV6 – How to make it work?

Im using Pi-Hole with IPV4, recently I discovered my router Xiaomi AX1800 (OpenWRT) supports IPv6, as well as my ISP (A1).

I noticed that I can assign DHCP static IPv4 assignment from the router’s interface, but I can’t do the same for IPv6. That’s why I decided to set a static IPv6 address for the machine running Pi-Hole (Raspberry Pi 2).

There is a short guide on how to do that:

  1. Identify the network interface: Run the command ip -6 addr to find the interface name and its current IPv6 address. For example:
    eno1: mtu 1500
    inet6 fe80::1234:5678:9012:3456/64 scope link
    

    In this example, the interface name is eno1. Replace eno1 with your actual interface name.

  2. Edit the /etc/network/interfaces file: Use a text editor like nano or vim to edit the file:
    sudo nano /etc/network/interfaces
  3. Locate the relevant section: Find the section for the identified interface (e.g., eno1). If it doesn’t exist, create a new one.
  4. Add the IPv6 configuration: Append the following lines to the interface section:
    iface <interface_name> inet6 static
    address <IPv6_address>
    netmask <netmask>
    gateway <default_router>
    

    Replace <interface_name> with your actual interface name, <IPv6_address> with the desired static IPv6 address, <netmask> with the subnet prefix length, and <default_router> with the default router’s IPv6 address.

    For example:

    iface eth0 inet6 static
    address fe80::9c1b:cda1:706f:f08d
    netmask 64
    gateway fe80::9e9d:7eff:fe91:9b33
    
  5. Save and restart the networking service: Save the changes and restart the networking service using:
    sudo service networking restart
    

    Alternatively, you can reboot the system:

    sudo reboot
    

Verify the static IPv6 address assignment by running ip -6 addr again. The interface should now have the configured static IPv6 address.

Remember to replace the example values with your actual network settings. Additionally, ensure that the IPv6 address is not already in use on your network before assigning it statically. You can use tools like nmap (as mentioned in the article) or arp-scan to scan your network and identify available IPv6 addresses.