» »

Zakaj neuporaba DNS?

Zakaj neuporaba DNS?

MrStein ::

Zakaj ljudje (in programi, zato tule pišem) uporabljajo in pričakujejo "surove" IP naslove namesto imen?

"vrabec" je ja preprosteje zapomniti ter tudi vtipkati kot 123.88.49.31.

Tudi precej popularni programi to počno (pričakujejo vpis številk in imena ne sprejmejo), čeprav DNS sicer (v kakem drugem delu programa) uporabljajo (torej ni razlog, da je namenjen kakemu specifičnemu okolju ali podobno).
(imena ne bom našteval, da se ne sprožijo fanboyi)
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!

AndrejO ::

Žnj razlogov. Od lenobe do varnosti. Če ne daš konkretnega primera, potem je nemogoče reči kaj je v danem primeru verjeten vzrok. Npr. za nastavitev DNS strežnika je IP naslov skoraj nujen, sicer bi imel problem kure in jajca.

MrStein ::

Govorim o primerih, ki imajo smisel. ;)

Recimo: poveži "TV remote app client" s "TV remote server"-jem.
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!

SeMiNeSanja ::

Sicer ne vem, kakšen "TV Remote" imaš to v mislih, ampak če se gre za neko zadevo za 'domačo rabo': koliko domačih uporabnikov ima na svoji mreži DNS server? 1%? Torej bi program delal zgolj z 1% vseh možnih uporabnikov, ostalim pa bi velel "pred uporabo si namestite še DNS server". ZATO v takšnih rešitvah odpade možnost uporabe DNS imen za 'domače resurse'.

V podjetjih je že malenkost drugače in se lahko greš ali/ali - ali ime ali IP naslov. Ko pa se gre za 'javne resurse', po možnosti takšne, kjer je v uporabi več IP naslovov, ki se lahko tudi spreminjajo, takrat pa nimaš boljše izbire, kot uporabo DNS strežnikov in imen.

Logično?

AndrejO ::

Varianta A: razvijalec je bil skrajno lesen.
Varianta B: razvijalec je bil pragmatičen.
Varianta C: nekaj čisto tretjega, o čemer lahko ugibaš na dolgo in široko.

B te morda malo bolj zanima: predstavljaj si, da si v omrežju, kjer imaš dva računalnika, nimaš pa lokalnega DNS-ja. Odvisno od tega, kateri operater ima v neki državi prevladujoč tržni delež, je lahko takšnih 99% domačih omrežij ali pa 1% domačih omrežij, pač odvisno kakšen hišni usmerjevalnik je pri uporabnikih najpogostejši.

Tako imaš DNS za raznorazne javne strežnike, nimaš pa DNS-ja, ki ga bi lahko brez dodatnega znanja in izkušenj uporabil v lokalnem omrežju, da bi eni napravi pojasnil na katerem naslovu se nahaja druga naprava.

K temu dodaj še množico naprav, kjer uporabniki na napravi sami in zavestno nastavijo neko čisto tretjo javno DNS storitev, pa imaš recept za nočno moro na podpori. Pragmatičen programer se lahko odloči, da se mu s tem ne da ukvarjati in zahteva vpis IP naslova.

Ali je to res potrebno? Verjetno ne. Ampak tudi ti verjetno samo iščeš kakšen ventil, da sprostiš svojo frustracijo nad nečim, kar ti ne sede.

MrStein ::

Torej je bolje, da uporabnik vpiše "vrabec" in dobi "can't find server", kot pa da vpiše "vrabec" in dobi "can't find server" ? :))

SeMiNeSanja je izjavil:

Sicer ne vem, kakšen "TV Remote" imaš to v mislih, ampak če se gre za neko zadevo za 'domačo rabo': koliko domačih uporabnikov ima na svoji mreži DNS server? 1%? Torej bi program delal zgolj z 1% vseh možnih uporabnikov, ostalim pa bi velel "pred uporabo si namestite še DNS server". ZATO v takšnih rešitvah odpade možnost uporabe DNS imen za 'domače resurse'.

V podjetjih je že malenkost drugače in se lahko greš ali/ali - ali ime ali IP naslov. Ko pa se gre za 'javne resurse', po možnosti takšne, kjer je v uporabi več IP naslovov, ki se lahko tudi spreminjajo, takrat pa nimaš boljše izbire, kot uporabo DNS strežnikov in imen.

Logično?

Sploh ne.

1.) Imena delujejo v veliko domačih omrežjih, to si malo slabo raziskal.
2.) Tudi če ne, možnost vpisa imena ne bo imela čisto nobene negativne posledice. Če ni resolverja, imena pač ne bodo delovala (enako, kot če ne bi bila podprta s strani programa).
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!

Zgodovina sprememb…

  • spremenil: MrStein ()

SeMiNeSanja ::

MrStein je izjavil:


1.) Imena delujejo v veliko domačih omrežjih, to si malo slabo raziskal.
2.) Tudi če ne, možnost vpisa imena ne bo imela čisto nobene negativne posledice. Če ni resolverja, imena pač ne bodo delovala (enako, kot če ne bi bila podprta s strani programa).

1.) "Imena", o katerih ti govoriš, niso domenska imena ampak NetBios imena, Ms legacy zadeva, ne pa internetni standard. Če nimaš lastnega DNS strežnika ali ne popravljaš/kopiraš hosts datoteke med računalniki, ne boi imel na voljo naslavljanja pametnega TV, mobitela, raspberry-ja,...., hladilnika z imenom. Ker pa TV-ju,....hladilniku ne moreš popravljati hosts tabele, ti preostane edino postavitev DNS strežnika, če hočeš vse naprave v hiši naslavljati z imeni.

2.) Programer seveda lahko malo zaviha rokave in omogoči vnos tako IP naslova, kot imena v neko polje. Žal pa so uporabniki....no...recimo, da je treba naresti zadevo kolikor tolikor 'trotelziher', pa je najlažje zahtevati vnos IP naslova (preprosto za preveriti osnovno tipkarsko napako), poleg tega pa direktno naslavljanje z IP naslovom vedno deluje (če se seveda ne uporablja DHCP za vse naprave, brez rezervacij in po možnosti z hudi kratkim lease-om) - za razliko od naslavljanja z imenom, kjer je nemogoče že ob vnosu preveriti tipkarsko napako, poleg tega pa deluje le redko kje.

Skratka - kje imaš problem? Ti je teško vtipkati tistih max. 12 številk in tri pikice? Počakaj na IPv6, pa boš potem šele jokal :P

AndrejO ::

SeMiNeSanja je izjavil:

1.) "Imena", o katerih ti govoriš, niso domenska imena ampak NetBios imena, Ms legacy zadeva, ne pa internetni standard.

V odsotnosti natančnejše opredelitve Mr. Steinove trditve, se motiš. To niso nujno samo NetBIOS imena, temveč so lahko tudi imena iz mDNS (RFC6762, promotor je Apple) ali pa LLMNR (ni standard, je pa Microsoft objavil informativen RFC4795). Ravno tako si spregledal množico domačih usmerjevalnikov, ki poleg DHCP strežnika nudijo tudi DNS strežnik, ki lokalno razreši imena s katerimi so se identificirali DHCP odjemalci.

Rešitev je tako dovolj. Vse, kar imaš prav, je to, da velja YMMV. "Povprečje" v dobrem in v slabem določa operater s prevladujočo tržno močjo na področju, kjer se nahajaš.

SeMiNeSanja je izjavil:

2.) Programer seveda lahko malo zaviha rokave in omogoči vnos tako IP naslova, kot imena v neko polje.

Programer seveda ne rabi nič vihati rokavov, ker ima za takšne primere že pripravljeno funkcijo, ki to že zna.
#include <arpa/inet.h>
#include <errno.h>
#include <netdb.h>
#include <stdio.h>
#include <strings.h>

void print_address(const char *name) {
	struct hostent *he;
	char **addr;

	if (NULL == (he = gethostbyname(name))) {
		printf("Error resolving name \"%s\": %s\n", name, strerror(errno));
		return;
	}

	printf("Addresses of \"%s\":\n", name);
	for (addr = he->h_addr_list; NULL != *addr; ++addr) {
		printf("  %s\n", inet_ntoa(*(struct in_addr*)*addr));
	}
}

int main(int, char*[]) {
	print_address("127.0.0.1");
	print_address("localhost");
	return 0;
}

MrStein ::

SeMiNeSanja je izjavil:


1.) "Imena", o katerih ti govoriš, niso domenska imena ampak NetBios imena, Ms legacy zadeva, ne pa internetni standard. Če nimaš lastnega DNS strežnika ali ne popravljaš/kopiraš hosts datoteke med računalniki, ne boi imel na voljo naslavljanja pametnega TV, mobitela, raspberry-ja,...., hladilnika z imenom. Ker pa TV-ju,....hladilniku ne moreš popravljati hosts tabele, ti preostane edino postavitev DNS strežnika, če hočeš vse naprave v hiši naslavljati z imeni.

1.) Sem pravkar "pingal" z telefona svoj PC, po imenu (domači WLAN). Brez bilokakšnih priprav ali konfiguracij.
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!

SeMiNeSanja ::

Jaz sem govoril o 'povprečnem domačem omrežju', tako da apple/mDNS tu ni ravno pretirano zastopan. DNS strežniki na routerjih obstajajo - toda v kolikšnem odstotku? Koliko teh, ki imajo tak router, potem vanj še vpisujejo dodatne zapise? Pametni TV pač v svoji konfiguraciji ne predvideva vpisa domenskega imena in moraš kar lepo na roke vnesti zadeve v DNS, pa še kakšno rezervacijo IP naslova na DHCP-ju narest, da ne bo jutri na drugem IP naslovu.

Če si razvijalec, pač moraš imeti pred očmi tisto, kar ima večina ljudi na razpolago - in da tudi zna upravljati s tem.

Kar se tiče 'programerske obrti', seveda obstajajo funkcije, ki preverjajo, če se nek naslov resolva - vendar uporaba take funkcije pogojuje, da si pred tem že skonfiguriral vse ostalo, skratka predpisuješ vrstni red nameščanja posameznih komponent - kar zagotovo ni vedno zaželjeno.
Sploh pa imaš potem problem, če IP naslov deluje (in bi rad vpisal zgolj statični IP naslov), in nimaš DNS ali drugega mehanizma za resolvanje imena.

Da se zadeva narest v vseh variantah, vprašanje je samo, s katero varianto boš imel najmanj težav, ko bo uporabniku zmanjkalo znanja in bo klical na tehnično podporo. Nebi rad bil na mestu podpornika, ki bo nekemu 'Janezu' moral razlagati, kako naj si naštima lastni DNS server......

Kot uporabna alternativa 'fiksnemu vpisovanju' se lahko uporabi tudi network broadcast, da se strežniki sami odzovejo klientu. Tako dejansko lahko na en mah ubiješ dve muhi. Štartaš klient, ta pošlje broadcast v mrežo in samo še izbereš ustrezni strežnik, ki se je odzval. Pa ne rabiš vedeti ne IP naslova, niti ne rabiš vedeti točnega DNS imena, niti ne potrebuješ DNS strežnik.

AndrejO ::

Omejen si na okolje, ki ga poznaš (pa ne v slabem, ampak vsak ima svoje omejitve in iz njih izhajajočo podzavestno pristranskost).

SeMiNeSanja je izjavil:

Jaz sem govoril o 'povprečnem domačem omrežju', tako da apple/mDNS tu ni ravno pretirano zastopan.

V UK in ZDA je še preklemano zelo zastopan pri tistih, ki si lahko sočasno privoščijo tudi širokopasoven dostop.

SeMiNeSanja je izjavil:

DNS strežniki na routerjih obstajajo - toda v kolikšnem odstotku?

Bom še tretjič ponovil, ker si spregledal: odvisno od operaterja. Npr. tu v Dublinu imamo pretežno UPC kabel in usmerjevalnik, ki ga UPC priloži paketu to privzeto omogoča.

SeMiNeSanja je izjavil:

Koliko teh, ki imajo tak router, potem vanj še vpisujejo dodatne zapise?

Nihče. Začuda pa je v mojem usmerjevalniku samo od sebe pisalo OpenELEC, A580-IP, SamsungTVnnnnnn in še kakšen zanimiv primerek se najde. Še najbolj neuporabni so Android telefončki, ki so vsi po vrsti Android-njegovpolnmacnaslov.

SeMiNeSanja je izjavil:

Če si razvijalec, pač moraš imeti pred očmi tisto, kar ima večina ljudi na razpolago - in da tudi zna upravljati s tem.

Se strinjam. Pomembno pa je tudi to, da moraš razumeti, da lahko ta razvijalec prihaja iz okolja, ki ti je tako tuje, kot je npr. tebu tuje okolje, ker v polovici hiš polovica naprav čeblja mDNS, usmerjevalniki pa imajo nekaj drugačnih funkcij, kot pa jih tipično srečuješ v svojem trenutnem okolju.

Pa to ni kritika. Samo namig za širitev obzorja in namenjeno tudi Mr Steinu. Če je njemu nekaj nerazumljivo in nelogično, to lahko pomeni tudi to, da njegovega načina uporabe razvijalec tudi v sanjah ni videl kot "tipičnega".

SeMiNeSanja je izjavil:

Kot uporabna alternativa 'fiksnemu vpisovanju' se lahko uporabi tudi network broadcast, da se strežniki sami odzovejo klientu. Tako dejansko lahko na en mah ubiješ dve muhi. Štartaš klient, ta pošlje broadcast v mrežo in samo še izbereš ustrezni strežnik, ki se je odzval. Pa ne rabiš vedeti ne IP naslova, niti ne rabiš vedeti točnega DNS imena, niti ne potrebuješ DNS strežnik.

Odlično si opisal soliden približek delovanja mDNS in LLMNR. Sedaj te povabim, da si o njiju še kaj prebereš. ;)

AndrejO ::

SeMiNeSanja je izjavil:

Kar se tiče 'programerske obrti', seveda obstajajo funkcije, ki preverjajo, če se nek naslov resolva - vendar uporaba take funkcije pogojuje, da si pred tem že skonfiguriral vse ostalo, skratka predpisuješ vrstni red nameščanja posameznih komponent - kar zagotovo ni vedno zaželjeno.

Očitno nisi nikoli programiral teh stvari, da bi videl za kaj se gre v tistem koščku kode. Zato raje ne ugibaj kaj je dejansko potrebno ali ne, da bi stvar delovala tako, kot si jo predstavja MrStein.

SeMiNeSanja ::

Saj broadcasting protokoli niso nič novega, so se uporabljali že davno pred prvim Mac-om.

USA in UK definitivno premoreta nekaj % več Apple šare v tipičnem gospodinjstvu, kot pa Slovenija. Tu marsikdo še Androida nima, kaj šele Apple ropotijo. Imamo ogromno število gospodinjstev, kjer imajo eden ali dva PC-ja na Windows-ih in to je to. Ostalo, razen Androida je tu skoraj 'egzotika'.
Če potem nekdo sprašuje čisto na splošno, valjda ne bom tuhtal o egzotiki, ampak se bom omejil na tisto, kar dejansko srečaš praktično v vsakem gospodinjstvu.

Kar se onega programčka tiče - res nisem programer, ampak toliko pa še zmorem poštekat, kaj naj bi tisti programček delal. Ampak - če ma kmet Janez dva Samsung TV-ja istega modela - mu bo tvoja tabelica kaj koristila, če mu ni nekdo na roke popravil DNS zapise, da bi mu izpisalo 'SamsungTV_Dnevna' in 'SamsungTV_Spalnica'? Se bojim, da bo naletel na problem.... Poleg tega ročni popravki brez DHCP rezervacije ali fiksne IP adrese spet delajo težave.

Skratka moj point je v tem, da je treba naresti zadeve 'trotlziher' kolikor se le da. V nasprotnem primeru bo problem s tehnično podporo programu ali napravi.
Istočasno pa morajo zadeve tudi delovati v VSEH okoljih, tudi tam, kjer je nekdo zamenjal ponudnikov router in si postavil svojega, pa posledično nima 'avtomatskega DNS-a' (bog ne daj, da si je 8.8.8.8 definiral za DNS?), pa tudi tam, kjer ponudnik ne da na voljo takega usmerjevalnika s to funkcijo.

Odvisno je tudi o kakšnem proizvodu/programu pravzaprav sploh govorimo.
Če je nek enostaven programček, ne pričakuj čudežev. Če pa se gre za nek obsežen (drag?) proizvod, pa lahko tudi pričakuješ, da bo morda sprobaval celo različne protokole predenj bo obupal in te zaprosil, da mu ti povej IP naslov naprave, na katero naj se poveže.

Skratka, ne gre se za tehniko - tehnično je vse sorte možno. Vprašanje je samo cena. Cena programerja, cena podpore. Vse ostalo se že nekako 'spaca' skupaj.

jukoz ::

> Skratka, ne gre se za tehniko - tehnično je vse sorte možno. Vprašanje je samo cena. Cena programerja, cena podpore. Vse ostalo se že nekako 'spaca' skupaj.

Tako, to je razlog zakaj moraš vpisovat IP naslove: ker vse ostalo je dražje, oz potem laserski printer ne more bit 50€, ker kdo bo pa obravnaval reklamacijske zahtevke ker je ime napačno vpisano ali pa dobival negativne review-je v spletnih trgovinah zaradi tega.

MrStein ::

SeMiNeSanja je izjavil:


nisem programer

Tema je namenjena programerjem.

Istočasno pa morajo zadeve tudi delovati v VSEH okoljih, tudi tam, kjer je nekdo zamenjal ponudnikov router in si postavil svojega, pa posledično nima 'avtomatskega DNS-a' (bog ne daj, da si je 8.8.8.8 definiral za DNS?), pa tudi tam, kjer ponudnik ne da na voljo takega usmerjevalnika s to funkcijo.

Ja saj. Program ki podpira obe možnosti, pokriva več, kot tisti, ki ne.

Firefox recimo podpira oboje. Si kdaj slišal, da se je kdo pritoževal čez to?
Pa vsi priloženi programi v Windows, Linux, MacOS, Android itd. podpirajo tako imenske kot številčne naslove.
Spet, še nikoli nisem slišal, da bi kdo to imel za slabost ali problem.
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!

BigWhale ::

AndrejO je izjavil:

Rešitev je tako dovolj. Vse, kar imaš prav, je to, da velja YMMV. "Povprečje" v dobrem in v slabem določa operater s prevladujočo tržno močjo na področju, kjer se nahajaš.


IMO je tole najbolj pogost razlog. Discovery protokoli so stevilni in leta 2014 se vedno precej nezanesljivi. Na zalost.

Potem pa lahko naletis se na problem, ko discovery traja predolgo casa. Uporabnik vpise ime naprave, potem jo gres pa iskat po vseh standardih in na koncu ne najdes nicesar, uporabnik pa ugotovi, da se je zatipkal. Ali pa, da njegove naprave enostavno ni. :)

Na koncu se verjetno odlocas med possibly crappy user experiencom povezovanja dveh naprav ali pa crappy user experiencom vnasanja stevilke naprave namesto imena.

MrStein ::

Saj če narobe vtipka številko je isto. (le da dlje traja)

Pa ne rabi se (programer) odločit, kot sem rekel večina programov podpira oboje (in se še noben uporabnik ni pritožil, lahko pa kdo linka taki primer).
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!

SeMiNeSanja ::

Saj ni problem narest, da 'podpira'.
Vendar moraš razumeti, da obstaja razlika v namembnosti različnih rešitev, temu ustrezno se potem tudi programerji odločajo, katera opcija bo bolj uporabna in povzročala manj težav, ko bo enkrat v rokah uporabnikov.

Večinoma VSI programi, ki so namenjeni komuniciranju z internetom, podpirajo tako vpis IP naslova kot domenskega imena - ker se lahko zanašajo na globalne DNS sisteme in bi lahko naleteli na resen odpor uporabnikov, če te opcije nebi podpirali.

Vprašljivi pa so vedno programi, ki so namenjeni lokalni rabi, ker ne veš, kaj imajo uporabniki na svoji strani postavljeno, zadeva pa naj bi se povezovala zanesljivo in hitro - to pa dosežeš ravno s pomočjo direktnega vpisa IP naslova (v upanju, da se ne uporablja DHCP za serversko stran).
Dokler je govora zgolj o IPv4 je pač tako. Čim pa govorimo o IPv6, pa se zadeva obrne v prid domenskim imenom in različnim discovery protokolom, saj je bistveno večja verjetnost, da se bo nekdo zatipkal pri vpisovanju IPv6 naslova (če ga navadni Janez sploh ve?), kot pri zapisu IPv4 naslova. Pri tem je Janez lahko še zmeden, ker ne ve ali naj uporabi link local adrese, kako deluje DHCP, rezervacije in ostala šara. Tudi programček tipa onega od AndrejaO ne bo veliko pomagal, če boš moral čakati, da prebrska cel /64 naslovni prostor...

Skratka kot je rekel BigWhale - gre se za user experience in kompromise glede tega kaj je bolj ali manj crappy v očeh uporabnika.

BigWhale ::

Bottom line je to, da imamo leta 2014 discovery protokole totalno v analah. :> Jaz sem nedolgo nazaj tudi na veliko pizdil zaradi tega. User experience je grozn, ko pride do tega.

Po vsej verjetnosti pa sploh do kaksnega odlocanja niti ne pride, ker se s tem ne ukvarjajo.

pegasus ::

Imam predlog za izboljšanje UX - osnove tcp, ipv4 in ipv6 v osnovne šole.

BigWhale ::

pegasus je izjavil:

Imam predlog za izboljšanje UX - osnove tcp, ipv4 in ipv6 v osnovne šole.


Ne pozabit na ASM.

pegasus ::

To itak, glej ono drugo temo - na FE delajo to prav ;)


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

IPv6 (strani: 1 2 3 4 5 6 7 8 )

Oddelek: Omrežja in internet
35777399 (2953) jotunn2
»

T2 ponudnik in domače omrežje

Oddelek: Omrežja in internet
433288 (1966) MrStein
»

VMware Player - DNS server zmešan

Oddelek: Programska oprema
224322 (3891) AndrejO
»

Ne razumem teh naslovov IP :)

Oddelek: Omrežja in internet
4210066 (8734) SasoS
»

Boj z mlini na veter in igre na srečo (strani: 1 2 )

Oddelek: Novice / Zasebnost
9326000 (23078) denial

Več podobnih tem