Skip to content
Snippets Groups Projects
README.1.md 4.44 KiB
Newer Older
# Tartalom

* A DDNS tipikus felhasználása
* Ajánlott updater
 * Konfiguráció
 * Parancssori paraméterek
* API a rekordok frissítéséhez annak, aki saját kódot használna
 * A kérésben megadandó értékek
 * Egy példa

# A DDNS tipikus felhasználása
Eckl, Máté's avatar
Eckl, Máté committed
A Dinamikus DNS röviden DDNS lehetővé teszi, hogy egy dinamikus IP címmel rendelkező eszköz rögzített domain névvel rendelkezzen.
Eckl, Máté's avatar
Eckl, Máté committed
Mivel az IP cím ezen szolgáltatás felhasználóinál dinamikus, így a kiszolgálón szokás **elévülési időt** beállítani.
Ez azt jelenti, hogyha egy frissítés után az elévülési időn belül nem küldünk újabb kérést, akkor a kiszolgáló nem fogja többé feloldani a domain nevet, csak a legközelebbi frissítés után fog ez újra megtörténni.
Eckl, Máté's avatar
Eckl, Máté committed
Ez nálunk jelen beállítás szerint **30 nap**.

# Ajánlott updater
Eckl, Máté's avatar
Eckl, Máté committed
A repóból letölthető Python nyelven írt szkript minden szükséges képességgel rendelkezik, ami egy egyszerű rekordfrissítéshez szükséges. Az egyszerűség és platformfüggetlenség kedvéért ez a szkript egyetlen frissítés után kilép és befejezi a futását. Az ütemezést a felhasználóra, vagy az operációs rendszerre bízzuk. Főleg az operációs rendszeren való ütemezés ajánlott (ehhez segítség később), illetve bizonyos gyakorisággal/áramszünetkor stb. publikus ip cím változhat, ekkor pedig nem ütemezett frissítés esetén a szerver elérhetetlenné válhat.
Eckl, Máté's avatar
Eckl, Máté committed
A Python minden elterjedt operációs rendszeren futtatható, ehhez az adott operációs rendszerre egy python3 interpreter telepítése illetve a *requests* library szükséges.
Eckl, Máté's avatar
Eckl, Máté committed
Külön leírás tartozik windowshoz és linuxhoz. Ezek a leírésok a README.windows.md és a README.linux.md fájlokban találhatóak.
Eckl, Máté's avatar
Eckl, Máté committed
Azok a dolgok, amik függetlenek az operációs rendszertől, ebben a fájlban találhatók.

## Konfiguráció
A repóban van egy conf_example.py nevű fájl, ami példaként szolgál a konfigurációs fájl kitöltésére. Ezt érdemes egy az egyben átmásolni conf.py névre (az updater ezt a fájlt fogja importálni), és itt a kommentben leírt magyarázatok alapján beírni a megfelelő adatokat.

Eckl, Máté's avatar
Eckl, Máté committed
Aki nem szereti a parancssort, annak érdemes először is a `LOG_FILE` paramétert megadni, ugyanis kattintásra futtatáskor ugyan megjelenik egy konzol, de futás után rögtön be is zárul, így a frissítés kimenetele alig látható. `LOG_FILE` megadása esetén a kimenet kiíródik a megadott fájlba.
Eckl, Máté's avatar
Eckl, Máté committed
**Figyelem!** Ha meg van adva logfájl, akkor parancssoros futtatás esetén is oda fog íródni a válasz. Ezt ideiglenesen meg lehet változtatni, a `-l ""` parancssori paraméterrel újra a standard kimenetre fog íródni.

## Parancssori paraméterek
Az updaternek megadhatók a futást befolyásoló paraméterek parancssorban is. Ezek megismeréséhez `--help` kapcsolóval kell futtatni: `update_i42_domain.py --help`.

**Figyelem!** A parancssori paraméterek magasabb prioritásúak, mint a konfigurációs fájlban megadott adatok.

# API a rekordok frissítéséhez annak, aki saját kódot használna
A frissítéshez egy POST kérést kell küldeni IP verziótól függően valamelyik címre.

| Verzió	| Cím								|
| --------	| ------------------------------	|
| IPv4		| https://updaterv4.i42.hu:10053	|
| IPv6		| https://updaterv6.i42.hu:10053	|

Ezekhez a címekhez valid SSL cert tartozik.

## A kérésben megadandó értékek
| Név	 		| Érték																											| Megadása		|
| ----------	| -----------------------------------------------------------------------------------------------------------	| ----------	|
| prefix		| A rekord i42.hu előtti része. pl: az **val.ami**.i42.hu-ban a **val.ami**.									| Kötelező		|
| token			| A honlapon generált token.																					| Kötelező		|
| ip_address	| A beírandó ip cím. Ha nincs a kérésben, akkor a küldő publikus ip címe kerül beírásra.						| Opcionális	|
| validate		| Nem tartozik hozzá érték. Ha meg van adva, akkor nem történik frissítés, csak a küldött adatok ellenőrzése.	| Opcionális	|

Mivel ip_address paraméter megadása esetén a megadott érték kerül beírásra, így szükség esetén lehetséges IPv4-es kapcsolaton keresztül IPv6-os címet frissíteni.

## Egy példa
A következő kis szkript linux rendszeren elküld egy-egy kérést IPv4-en és IPv6-on is.

```bash
#! /bin/bash
for x in 4 6
do
	curl -${x} https://updaterv${x}.i42.hu:10053 --data "token=my_token&prefix=my_prefix" && echo ""
done
```