Kirjoittaja Aihe: RegMyIP dynaaminen DNS (DDNS) Client  (Luettu 5752 kertaa)

ajaaskel

  • Palvelimen ylläpitäjä
  • Käyttäjä
  • Viestejä: 3392
    • Profiili
RegMyIP dynaaminen DNS (DDNS) Client
« : 23.02.15 - klo:15.51 »
Johdanto --- Mikä on DDNS ?

Ajatellaan että sinulla on kone joka on julkisessa Internetissä kiinni (eli ei siis palomuurin/NATin tms. reitittimen takana).  koneesi saa silloin automaattisesti jonkin ip-osoitteen operaattoriltasi.   Löydät koneesi tuolla ip-osoitteella olit missä hyvänsä mutta vain niin kauan kuin tuo osoite säilyy.  Tavallista on että osoite eivät ole pysyvä (ellei erikseen lisähintaan osta sellaista) vaan osoite voi vaihtua vaikka se joskus pysyy aika pitkäänkin samana.   Ongelma onkin millä löytää koneensa jos osoite vaihtuu yht'äkkiä ja olet jonkin verran kaukana koneestasi. 
Tuohon asiaan on kehitetty ratkaisuksi DDNS:  Rekisteröidään koneelle jokin pysyvä nimi johon tuo ip-osoite liitetään. Tuon rekisteröinnin voi käydä tekemässä webbiselaimella ja ilmaisia palveluja on useita.  Suomalaisista tunnetuin on "dy.fi".
Kun nimi on rekisteröity asennetaan koneeseen DDNS-Client eli ohjelma joka viestittää tuonne palveluun automaattisesti oman ip-osoitteensa.   Jos osoite vaihtuu niin kone päivittää itse osoitteensa tuonne palveluun.  Nytpä löytyy kone aina nimellä vaikka ip-osoite vaihtelisisi.   Tuo nimi on yleensä muotoa  <itse_keksitty_osa>.dy.fi  eli vaikkapa "late.lammas.dy.fi".

 
DDNS Client -ohjelmista
Nämä ovat enimmäkseen palvelukohtaisia erilaisia skriptejä.  Kokeilin useitakin mutta kirjoitin lopulta oman joka on sekä helppokäyttöinen että ominaisuuksiltaan riittävä tuohon tehtävään.  Kirjoitin sen niin että sitä voi ajaa sekä komentoriviltä (testi- ja aloitusvaihe) että crontab: ssa ajastettuna (varsinainen käyttö).  Ajastusvälinä crontab: ssa olen itse käyttänyt 10 minuuttia.  Tuo aika tulee siitä että ohjelma kysyy ajoittain "mikä minun osoitteeni on" palvelimelta ja jotkut ulkomaalaiset palveluntarjoajat eivät pidä tiuhemmasta kyselystä.  Ohjelma kysyy myös "oikeasta" dns-palvelusta ja vertaa paikallisesti säilöttyyn aiempaan osoitteeseen jolloin on mahdollista tunnistaa jos osoite on muutettu ohjelman ulkopuolelta.

Tässäpä tämä uutuus joka ollut itselläni käytössä jo jonkin aikaa:  RegMyIP DDNS-client.   Tuo rekisteröi julkisen osoitteen koneestasi (tai halutessasi palomuuristakin) DDNS-palvelimelle.

http://www.homelinuxpc.com/download/regmyip


RegMyIP: n käyttö lyhyesti:

- Asenna "curl" -ohjelma
Koodia: [Valitse]
sudo apt-get install curl
- Tee jokin hakemisto, vaikka /ddnsclient jonne laitat RegMyIP: n ja anna ajo-oikeus sille
- Tee asetukset.  RegMyIP sisältää sisäänrakennettuna osan jolla sille tehdään asetustiedostot.  Asetukset syntyvät kun ajat:

Koodia: [Valitse]
./regmyip dyfi --configure
Aja molemmat osat asetusohjelmassa missä annetaan domainisi nimet, tunnus ja salasana.  Nuo pystyt vaihtamaan halutessasi yksinkertaisesti ajamalla asetusohjelman uudestaan.  Salasanasi salakirjoitetaan niin että siitä ei ole ulkopuoliselle hyötyä.  Salasana ei edes toimi jos sen vie eri koneelle.

- Testaa toiminta käynnistämällä:
Koodia: [Valitse]
regmyip dyfi
Näet näytöllä tapahtumat mukaanlukien ddns-palvelimen vastauksen rekisteröintipyyntöön.  Huomaa että saat palvelimen vasteen vain yhden kerran jos rekisteröinti onnistui.  Muuten tulee vain ilmoitus että muutoksia ei ollut.  Tuo on tahallinen "palvelin-spammin" esto. Voit halutessasi tarkastaa lokitiedostoista tapahtumia.

- Lisää crontab: iin kaksi riviä niin että skripti ajetaan 10 minuutin välein ja uudelleen käynnistyksessä:

Koodia: [Valitse]
@reboot         sleep 60; <täysi_polku>/regmyip dyfi --log_all
*/10 * * * *    <täysi_polku>/regmyip dyfi
Tuo "sleep 60" on varmistamassa että kaikki ehtii käynnistyä ennen kuin päivitys tehdään. 

RegMyIP sisältää automaattisen virkistystoiminnon, 5 päivän kuluttua ohjelma lähettää automaattisesti rekisteröinnin ylläpitämiseksi päivityksen vaikka muutoksia ei olisi tapahtunut.  Tuo "log_all" antaa täyden loggauksen mikä on hyvä uudelleenkäynnistyksen yhteydessä mutta muuten et varmaankaan halua sitä.

Itse olen tehnyt edellä olevien asennusvaiheiden lisäksi oman tunnuksen "ddnclient"  tms. jolla ajetaan ja laittanut skriptin paikkaan jonne on tuolla tunnuksella oikeudet ja vastaavasti tuolla tunnuksella ei ole muualle oikeuksia.

RegMyIP tukee kahden palvelutarjoajan menetelmiä ja vastekoodeja:   dy.fi  ja DnsExit
Molempia rekisteröintejä voi toki käyttää samalla koneella samaan aikaan,  tuon DnsExit: in kautta itse ohjaan .com ja .org domaineja.

Molemmat toimintatavat on testattu ja käytössä itselläni useissa paikoissa. Bugi- ja kehityskommentit ovat silti tervetulleita.
 
« Viimeksi muokattu: 26.02.15 - klo:11.47 kirjoittanut ajaaskel »
Autamme ilolla ja ilmaiseksi omalla ajallamme.  Ethän vaadi, uhoa tai isottele näin saamasi palvelun johdosta.

raimo

  • Käyttäjä
  • Viestejä: 3507
    • Profiili
Vs: RegMyIP dynaaminen DNS (DDNS) Client
« Vastaus #1 : 24.02.15 - klo:21.07 »
So long and thanks for all the fish!

ajaaskel

  • Palvelimen ylläpitäjä
  • Käyttäjä
  • Viestejä: 3392
    • Profiili
Vs: RegMyIP dynaaminen DNS (DDNS) Client
« Vastaus #2 : 24.02.15 - klo:21.16 »
Hep!
http://www.homelinuxpc.com/download/regmyip
linkki ei toimi?!  :-[

Tipahti 100M linja alta, vaihdoin tulemaan varakoneelta 1M ADSL... Muutoksen domainiin tein RegMyIP: llä, päivittyi minuutissa.
Lataus on nyt hidas mutta yritetään pärjätä huomiseen.

Edit 25.2.2015
Oli VDSL2-modemi lopettanut toimintansa kokonaan. Sain vaihdettua tuon ja nyt on pääpalvelin takaisin käytössä.
« Viimeksi muokattu: 25.02.15 - klo:16.45 kirjoittanut ajaaskel »
Autamme ilolla ja ilmaiseksi omalla ajallamme.  Ethän vaadi, uhoa tai isottele näin saamasi palvelun johdosta.

ajaaskel

  • Palvelimen ylläpitäjä
  • Käyttäjä
  • Viestejä: 3392
    • Profiili
Vs: RegMyIP dynaaminen DNS (DDNS) Client
« Vastaus #3 : 21.10.17 - klo:00.40 »
Uusi versio v2.5 esillä.  Korjasin tilanteen, jossa on kaksi default gw määritystä.  Tein myös toistuvan konfiguraatiomuutoksen hieman helpommaksi sisäänrakennetussa konfiguraatioeditorissa.     

http://www.homelinuxpc.com/download/regmyip

Tämä skripti on tarkoitettu crontabissa ajettavaksi. Konffaus ja alkutestaus tehdään päätteessä.

Esimerkki tapauksesta dy.fi.

1) Rekisteröidy dy.fi käyttäjäksi ja tee sinne jokin nimi.   Hyvä idea lienee tehdä nimi esimerkiksi  muodossa  <joku_nimi_laitteellesi>. <oma_nimi_tai_tunnus>.dy.fi.   Jos sinulla on vaikka Huawein laite ja nimesi on Matti Meikäläinen niin tuosta saisi vaikka  "huawei.mattimeikalainen.dy.fi". Tai palvelin "fs1.mattimaikalainen.dy.fi", jne. 

2) Tee jokin kansio jonne laitat skriptin, vaikka "ddnsclient" ja aja konffaus ja testi siellä.  Helppiteksti tulee kun ajaa ilman parametreja tai jos antaa --help tai -h perään.

3) Aja konffaukset, molemmat osat:
 
Koodia: [Valitse]
./regmyip dyfi --configure
Konffauksen tuloksena syntyy kansioon dyfi.conf ja dyfi.id tiedostot.   Käyttäjätunnus ja salasana ovat sen jälkeen kryptattuina tiedostossa dyfi.id.  Ne toimivat vain koneella, jossa konffaus on ajettu eli konffaus pitää ajaa sillä koneella, jossa koodia käytetään.  Muutokset kannattaa tehdä ajamalla konffausosio, ei editoimalla suoraan dyfi.conf tiedostoa. 

Jos haluat rekisteröidä julkisen ip-osoitteen omaavan koneesi niin valitse konffauksessa Y kohdassa "Deny Private Route".  Jos sen sijaan olet sisäverkossa (esim. wlan-reitittimesi takana) ja haluat rekisteröidä reitittimen ulkoisen ip-osoitteen, niin valitse N tuossa kohdassa.  Tämä valinta on välttämätön/hyödyllinen koneessa, jossa on kaksi verkkokorttia eli toinen ulkoverkossa ja toinen sisäverkossa.  Samoin sitä voi hyödyntää reitittimen rekisteröintiin, riippumatta osaako reititin tuota itse.
Identifikaatioksi tuonne kannattaa laittaa oma nimesi ja puhelinnumerosi eli esim.  tyyliin "matti.meikäläinen_040_12345678".

4) Testaa päätteessä.  Käyttämällä --log_all tai -l se kertoo kaikki tapahtumat päätteeseen ja myös palvelimen vastaukset, joka helpottaa oleellisesti ongelman selvitystä jos jotain on ristissä.  Vasteista näkee, onko tunnuksesi/salasanasi oikein dy.fi palvelimella ja onko host määritetty sinne oikein.

Koodia: [Valitse]
./regmyip dyfi --log-all
5) Kun kaikki pyörii ok, on aika laittaa se crontabiin ajoon vaikkapa 10 minuutin syklillä.   Client ei lähetä palvelimelle rekisteröintejä muuta kuin silloin kun ip on muuttunut. Poikkeus on viiden päivän syksillä automaattisesti tehtävä ylläpitopäivitys rekisteröintiin.
Kannattaa antaa koko polku crontabissa.  Viestien vähentämiseksi merkintöjä lokiin dyfi.log syntyy vain, kun jotain muuttuu silloin kun ei käytetä --log_all vipua komennon perässä.

6) Client toimii myös dnsexit.com palvelun kanssa ja osaa lähettää monidomain rekisteröinnin yhdellä viestillä.

Skripti vaatii, että curl on asennettu.

Iloa testaukseen ja ei enää katoilevia koneita, kun julkinen ip vaihtuu  :)

Mikään ei estä käyttämästä dy.fi  -loppua hieman pidempiaikaisenakin domainina.  Nimiä saa tosin tuon alle vain 5 kpl per sähköpostiosoite (joka on tunnuksesi sinne).
« Viimeksi muokattu: 21.10.17 - klo:00.55 kirjoittanut ajaaskel »
Autamme ilolla ja ilmaiseksi omalla ajallamme.  Ethän vaadi, uhoa tai isottele näin saamasi palvelun johdosta.

ajaaskel

  • Palvelimen ylläpitäjä
  • Käyttäjä
  • Viestejä: 3392
    • Profiili
Vs: RegMyIP dynaaminen DNS (DDNS) Client
« Vastaus #4 : 22.02.18 - klo:22.04 »
Hetznerin virtuaalikoneella gw osoittaa yksityiseen osoitteeseen mutta koneen ip on julkisessa osoitteessa:
Koodia: [Valitse]
route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         172.31.1.1      0.0.0.0         UG    0      0        0 eth0
172.31.1.1      0.0.0.0         255.255.255.255 UH    0      0        0 eth0
Tein pienen päivityksen "regmyip" DDNS-client skriptiin tuon takia että se tunnistaa oikein sisäverkkotilanteen (NAT).
Täältä löytyy (korvasin vanhemman version):

http://www.homelinuxpc.com/download/regmyip
Autamme ilolla ja ilmaiseksi omalla ajallamme.  Ethän vaadi, uhoa tai isottele näin saamasi palvelun johdosta.