Come sapete Fastweb non fornisce IPv6 dual-stack, ma mette a disposizione IPv6 via 6RD (Ufficialmente sono escluse le linee S-VULA ma se configurato manualmente l'IPv6 funziona comunque).
Su apparati UniFi 6rd non è supportato nativamente, ma è perfettamente funzionante tramite SIT tunnel + script on-boot.
Di seguito la procedura testata su UniFi Cloud Gateway Max (UCG-Max), ma vale identica per UDM, UDR e gateway UniFi basati su UniFi OS.
Prerequisiti
- Gateway UniFi funzionante su rete Fastweb
- Modem libero oppure
- Parametri Fastweb clonati correttamente
(IPv4 deve già funzionare)
- Accesso SSH al gateway
- Consapevolezza che:
- Fastweb assegna una sola /64
- Con questa configurazione il firewall IPv6 non viene creato automaticamente
1️⃣ Abilitare script persistenti all’avvio (on-boot)
UniFi OS non mantiene modifiche manuali dopo reboot o apply config.
Serve quindi lo script: https://github.com/unifi-utilities/unifios-utilities/tree/main/on-boot-script-2.x
Questo abilita l’esecuzione automatica degli script in: /data/on_boot.d/
2️⃣ Creare lo script Fastweb 6RD
Creiamo il file: /data/on_boot.d/20-fastweb-6rd.sh
Parametri da adattare
WAN_IF (Interfaccia WAN) --> Dipende dal vostro setup, nel mio caso: eth4.835 (porta 5 + VLAN 835)
br0 --> Bridge su cui assegnare l’IPv6, avendo una sola /64, potete usarla solo su un bridge
Script completo
#!/bin/bash
# Fastweb 6RD Configuration for Unified Cloud Gateways
# Fastweb 6RD Parameters
GATEWAY="81.208.50.214"
PREFIX="2001:b07"
# WAN interface (CHANGE IT)
WAN_IF="eth4.835"
# Get your WAN IPv4 address from WAN interface
WAN_IP=$(ip -4 addr show $WAN_IF | grep -oP '(?<=inet\s)\d+(\.\d+){3}' | head -1)
# If wan doesn't exist yet, wait for it
RETRIES=0
while [ -z "$WAN_IP" ] && [ $RETRIES -lt 30 ]; do
sleep 2
WAN_IP=$(ip -4 addr show $WAN_IF 2>/dev/null | grep -oP '(?<=inet\s)\d+(\.\d+){3}' | head -1)
RETRIES=$((RETRIES + 1))
done
if [ -z "$WAN_IP" ]; then
echo "Error: Could not determine WAN IP address"
exit 1
fi
echo "WAN IP: $WAN_IP"
# Calculate 6RD IPv6 address using Fastweb format
# Format: 2001:b07:aabb:ccdd::1 where aa.bb.cc.dd is your IPv4 HEX
IFS='.' read -r o1 o2 o3 o4 <<< "$WAN_IP"
IPV6_ADDR=$(printf "%s:%02x%02x:%02x%02x::1" $PREFIX $o1 $o2 $o3 $o4)
echo "IPv6 Address: $IPV6_ADDR/64"
# Remove existing 6rd tunnel if it exists
ip tunnel del 6rd 2>/dev/null
# Create 6RD tunnel (SIT tunnel)
ip tunnel add 6rd mode sit remote $GATEWAY local $WAN_IP ttl 255
ip link set 6rd up
# Add default IPv6 route through relay
ip -6 route replace default dev 6rd metric 1024
# Enable IPv6 forwarding
sysctl -w net.ipv6.conf.all.forwarding=1 >/dev/null
# Configure br0 (LAN bridge) with IPv6 - FORCE flush first
ip -6 addr flush dev br0 scope global
ip -6 addr add ${IPV6_ADDR}/64 dev br0
echo ""
echo "6RD tunnel configured successfully!"
echo ""
echo "LAN: $IPV6_ADDR/64 on br0"
echo ""
echo "Testing connectivity..."
if ping6 -c 2 -W 3 google.com >/dev/null 2>&1; then
echo "✓ IPv6 is working!"
curl -6 -s ifconfig.co 2>/dev/null && echo ""
else
echo "✗ IPv6 connectivity test failed"
echo "Check: ip -6 route"
fi
Rendiamolo eseguibile: chmod +x /data/on_boot.d/20-fastweb-6rd.sh
3️⃣ Primo avvio e verifica
Riavviate il gateway oppure eseguite manualmente:
/data/on_boot.d/20-fastweb-6rd.sh
Se tutto è corretto:
ping6 google.com funziona
curl -6 ifconfig.co mostra il tuo IPv6 Fastweb
4️⃣ Integrazione con GUI UniFi
⚠️ IMPORTANTE
A questo punto qualsiasi modifica alla rete UniFi rimuove l’IPv6 dalla LAN, perché UniFi non sa che lo state gestendo a mano.
Soluzione, andate sul controller unifi Settings → Networks, selezionate il bridge su cui volete IPv6 (es. LAN), sezione IPv6, modalità: Static e Inserite l’indirizzo restituito dallo script: 2001:b07:aabb:ccdd::1/64
Da questo momento:
IPv6 sopravvive a reboot
IPv6 sopravvive a modifiche di configurazione
Client IPv6 funzionano correttamente
5️⃣ ⚠️ Sicurezza / Firewall
Nota MOLTO importante
Con questa configurazione:
Il firewall IPv6 di UniFi NON viene creato
Tutte le connessioni IPv6 in ingresso sono permesse
👉 Se esponete servizi, dovete creare manualmente le regole IPv6 firewall
(es. bloccare inbound WAN → LAN)