[Guide] Skaffa IPv6-tunnel med Unifi USG

Permalänk
Medlem

[Guide] Skaffa IPv6-tunnel med Unifi USG

Hej! Jag är en stor förespråkare av IPv6. ISP:er i sverige har legat på latsidan medan IPv4-adresserna sinar, och istället för att skynda på utrullningen av IPv6 har de börjat införa CGNAT och operatörer som Tele2 och Bredband2 har stängt ner sina 6rd-tunnlar...

Det finns trots det möjlighet för alla att köra IPv6 idag ändå. Det finns flera leverantörer av 6in4-tunnlar, en av de mest kända är nog Hurricane Electric och deras tunnelbroker.net.

De flesta vanliga konsumentroutrar har ett grafiskt UI för att konfigurera tunnlar, något som Unifi controller av någon outgrundlig anledning saknar. Stödet finns dock i både hårdvara och mjukvara på själva USG-enheten. Den här guiden visar dig hur du konfigurerar en 6in4-tunnel på din USG.

Grundkrav

  1. Du har tillgång till att skriva en config-fil på din Unifi controller

  2. Du har en riktig publik IPv4 från din operatör. Om du är bakom CGNAT måste du först kontakta din operatör och be om ett publikt ip, passa även på att tjata om att de borde ge dig IPv6 (utan efterfrågan kommer inget att hända). Du vet att du är bakom CGNAT om din routers IP ligger i spannet 100.64.0.0 - 100.127.255.255

  3. Du tillåter ICMP-pings i din brandvägg (https://www.eddgrant.com/blog/2020/10/01/enabling-wan-icmp-pi...)

  4. Du har tillgång till en 6in4-tunnel (den här guiden utgår ifrån att du har en tunnel från tunnelbroker.net, men det bör funka med alla 6in4-tunnlar)

Låt oss börja

Steg 1 är att skapa själva tunnel-interfacet på din USG, detta finns det som sagt inget UI för, så här är det json-filer som gäller

På enheten som kör din Unifi-controller: Leta upp din controllers data-folder, på en normal Linux-installation ligger den under /var/lib/unifi/data. Där inne finns sedan en map som heter "sites" och i den mappen ligger en map som har samma namn som din "site"-namn i Unifi-controllern, som standard heter den "default".

Så i /var/lib/unifi/data/sites/default ska vi skapa en config.gateway.json med detta innehåll:

{ "interfaces": { "tunnel": { "tun0": { "description": "6in4 tunnel", "address": [ "<Client IPv6 Address>" ], "encapsulation": "sit", "firewall": { "in": { "ipv6-name": "WANv6_IN" }, "local": { "ipv6-name": "WANv6_LOCAL" }, "out": { "ipv6-name": "WANv6_OUT" } }, "local-ip": "<Client IPv4 Address>", "remote-ip": "<Server IPv4 Address>", "mtu": "1480", "multicast": "disable", "ttl": "255" } } }, "protocols": { "static": { "interface-route6": { "::/0": { "next-hop-interface": { "tun0": "''" } } } } } }

Därefter måste du göra så att din USG laddar den nya konfigurationen:

I Unifi-controller, logga in -> gå till listan med enheter -> klicka på din USG -> Klicka på Device -> Klicka på Manage -> Trigger Provision

Vänta på att konfigurationen laddas, detta bör bara ta någon minut. Om enheten fastnar så kan man helt enkelt ta bort config.gateway.json och starta om USG. Du kan se eventuella problem med konfigurationen genom att läsa loggen som ligger under /var/log/unifi/server.log.

Valfritt: I det här läget kan du SSH:a in på din USG med SSH och verifiera att själva tunneln fungerar:

$ ip -6 addr 10: tun0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1480 inet6 <Client IPv6 Address> scope global valid_lft forever preferred_lft forever inet6 fe80::51e5:59a1/128 scope link valid_lft forever preferred_lft forever $ ip -6 route <Client IPv6 Address Prefix> dev tun0 proto kernel metric 256 fe80::51e5:59a1 dev tun0 proto kernel metric 256 fe80::/64 dev eth0 proto kernel metric 256 fe80::/64 dev eth1 proto kernel metric 256 fe80::/64 dev ifb_eth0 proto kernel metric 256 default dev tun0 proto zebra metric 1024

Du kan även testa att pinga exempelvis googles DNSv6-server:

$ ping6 2001:4860:4860::8888 PING 2001:4860:4860::8888(2001:4860:4860::8888) 56 data bytes 64 bytes from 2001:4860:4860::8888: icmp_seq=1 ttl=121 time=33.0 ms 64 bytes from 2001:4860:4860::8888: icmp_seq=2 ttl=121 time=31.8 ms

Nu behöver vi bara se till att ditt lokala nätverk får IPv6-addresser. Detta kan vi tack och lov göra genom unifi-controller UI.

Navigera till Settings -> Networks -> Klicka på falafelmenyn (tre vertikala prickar) -> Edit -> Advanced -> Scrolla hela vägen ner till IPv6 Interface Type och välj "Static".

Fyll i följande:

IPv6 Gateway Subnet: <Routed /64> fast sätt en 1a före /64: Exempel: 2001:470:1234:1234::1/64
IPv6 RA: Ska vara påslaget
IPv6 RA Priority: High
IPv6 RA Valid Lifetime: 86400
IPv6 RA Preferred Lifetime: 14400
DHCPv6: Avstängt
DHCPv6/RDNSS DNS Control: Manual
DHCPv6/RDNSS Name Server: Vilka DNSv6-servrar du vill.

Google DNSv6: 2001:4860:4860::8888 och 2001:4860:4860::8844
Cloudflare DNSv6: 2606:4700:4700::1111 och 2606:4700:4700::1001

Kort efter att du har sparat bör alla dina klienter ha fått en IPv6-address. Grattis och välkommen till 2000-talet!

Permalänk
Medlem

Har inte själv just USG men det ser ju ut som en välbehövlig guide om de inte exponerar inställningarna för sådant.

Något jag kan slänga in som tips är att om man specifikt använder Hurricane Electrics tunnelbroker.net-tjänst är att man kan använda en dyndns-klient för att uppdatera sin egen IP-adress automatiskt i tjänsten. (Parametrarna står i "advanced"-vyn på tunneln på tunnelbroker.net)