Edgerouter med Cloudflares DynDNS-tjänst

19 Feb 2020

Då jag precis blivit lycklig ägare till två Edgerouter ER-8 från Ubiquity så har jag fått klura ut några saker. Det första är hur man får Cloudflares dynamiska DNS-tjänst att fungera med Edgerouter. Jag har nämligen alla mina domäner hos Cloudflare och deras lysande DNS-tjänst (och nyttjar dem som registrar för de domäner de kan hantera i dagsläget).

Då jag har en extra internetanslutning hem via ADSL (redundans är bra grejer när man bor på landet med halvskakig fiberanslutning) utan statisk IPv4-adress så vill jag kunna uppdatera dess hostnamn i min zonfil hos Cloudflare varje gång jag tvingas byta IP-adress. Det kan vara extra nyttigt om jag är ute och reser eller annat och fibern hem är nere och jag ändå måste komma åt saker, eller om jag sitter och jobbar hemma och IP-Only bestämmer sig för att göra en IP-Only. Värt att understryka är att hela denna guide förutsätter att du redan har minst en domän i Cloudflares DNS-tjänst. Du måste ange värdnamn plus domännamn (exempelvis hemma.domän.tld) i exemplet nedan. Värdnamnet kan vara i princip vad som helst men domännamnet måste alltså redan finnas i Cloudflares DNS-tjänst och du måste ha bytt så din domän har Cloudflare:s DNS:er kopplad till sig.

En annan sak värd att notera är att den API-nyckel du behöver är den globala API-nyckeln i ditt konto hos Cloudflare. Du hittar den genom att logga in, klicka på pilen till höger om den lilla “gubben” i menyn och därefter väljer du “My profile”. Därefter väljer du “API Tokens” och väljer till sist att klicka på “View” på raden för “Global API Key”. Denna nyckel ska du INTE sprida eller på något sätt dela med dig av.

En sista sak värd att notera är att jag utgår från att din internetanslutning sitter på porten eth0 i din brandvägg. Sitter den i en annan port, byt ut eth0 mot det rätta värdet i exemplen nedan.

cloudflare domain token

Du behöver utöver detta också sätta upp en API Token för din domän. Bilden ovan visar hur det går till – det som kvarstår är att välja vilken domän du vill använda för DynDNS-tjänsten.

Sin vana trogen har Ubiquity sett till att detta inte finns med i webbgränssnittet i Edgerouterns operativsystem EdgeOS, men om man SSH:ar in i brandväggen så kan man fixa detta och jag tänkte visa hur man gör. Ubiquity har publicerat en egen guide inom detta ämne men den har ett stort fel som jag vill rätta till med denna bloggpost.

Först och främst SSH:ar du till din brandvägg. Logga in med samma användarnamn och lösenord som du använder när du loggar in via webbgränssnittet.

Därefter skriver du configure och trycker enter.

När du gjort det kan du sätta igång och mata in kommandon:

<br /> set service dns dynamic interface eth0 service custom-cloudflare hostnamn.domän.tld<br /> set service dns dynamic interface eth0 service custom-cloudflare login e-postadressen du loggar in med hos Cloudflare<br /> set service dns dynamic interface eth0 service custom-cloudflare password din API-nyckel hos cloudflare<br /> set service dns dynamic interface eth0 service custom-cloudflare protocol cloudflare<br /> set service dns dynamic interface eth0 service custom-cloudflare options zone=domän.tld<br /> set service dns dynamic interface eth0 service custom-cloudflare server api.cloudflare.com/client/v4/<br />

Ett praktiskt exempel kan se ut som följer:

<br /> set service dns dynamic interface eth0 service custom-cloudflare hemma.jocke.se<br /> set service dns dynamic interface eth0 service custom-cloudflare [email protected]<br /> set service dns dynamic interface eth0 service custom-cloudflare password 1234455678dfgsfsdfasdf<br /> set service dns dynamic interface eth0 service custom-cloudflare protocol cloudflare<br /> set service dns dynamic interface eth0 service custom-cloudflare options zone=jocke.se<br /> set service dns dynamic interface eth0 service custom-cloudflare server api.cloudflare.com/client/v4/<br />

Misstaget Ubiquity gjort i sin guide är att de sagt att den sista raden i exemplet ovan är valfri. Utan att ange den raden fungerar inte den dynamiska DNS-tjänsten hos Cloudflare med Edgerouter.

Du kan verifiera att din uppdatering fungerat genom att skriva show dns dynamic status. I mitt fall ser det ut enligt nedan:

joacim@gw02:~$ show dns dynamic status
interface : eth4
ip address : 217.210.187.50
host-name : adsl.melin.org
last update : Wed Feb 19 17:44:10 2020
update-status: good

När allt ser ut att fungera sparar du inställningarna genom att skriva commit ; save.

Logga till sist ut genom att skriva exit två gånger.