Tj. mělo by to (?) brát vždy nejdříve /ect/hosts (předpokládám, že to se míní tím "files")
Jo.
Možná je chyba v mém chápání DNS - myslel jsem (asi podobně jako Vy), že stačí přesměrovat nadřazenou doménu - rackcdn.com - a všechny podřazené tím budou mimo hru. Ale není to tak, resp. systém se tak nechová.
Jak jsem psal - "ping rackcdn.com" pingá localhost - ok. "ping 1b9a50f4f9de4348cd9f-e703bc50ba0aa66772a874f8c7698be7.ssl.cf5.rackcdn.com" pingá ven do internetu.
/etc/hosts je databáze
hostů. Když program zavolá funkci gethostbyname, tak se knihovna do toho souboru koukne a pokud tam host je, použije tamní IP adresu. Pokud není, použije další metodu, typicky ten dotaz na DNS server.
Docela detailně je to popsaný v manpage:
http://man7.org/linux/man-pages/man3/gethostbyname.3.htmlNení ale nikde řečeno, že každý program musí použít tuhle metodu. Může mít klidně svoji implementaci převádění hostname na IP, může mít svoje cachování atd. atd.
Ten ping nebude pingat "do internetu", když do /etc/hosts dáš záznam pro toho konkrétního hosta:
A.B.C.D 1b9a50f4f9de4348cd9f-e703bc50ba0aa66772a874f8c7698be7.ssl.cf5.rackcdn.com
Pokud bys chtěl dělat složitější věci jako přesměrovávat domény, použít wildcardy apod., tak musíš mít lokální dns server, který tyhle operace bude provádět. Některé jsou jednoduché a určené přesně na takové operace, cachování apod. (např. dnsmasq)