Vraag Hostnamen - Waar gaat het allemaal over?


Ik ben onlangs "gedwongen" geweest om wat sysadmin-werk uit te voeren, terwijl dit niet iets is waar ik absoluut dol op ben. Ik heb veel gelezen, geëxperimenteerd en veel geleerd.

Er is een fundamenteel aspect van de serverconfiguratie dat ik niet heb kunnen begrijpen - hostnames.

In Ubuntu bijvoorbeeld, zou men de hostnaam op deze manier moeten instellen (volgens de Linode-bibliotheek):

echo "plato" > /etc/hostname
hostname -F /etc/hostname

Het dossier: / Etc / hosts

127.0.0.1        localhost.localdomain        localhost
12.34.56.78      plato.example.com            plato

ik veronderstel dat plato is een willekeurige naam en dat plato.example.com is de FQDN.

Nu zijn mijn vragen:

  • Is het verplicht?
  • Met welk doel?
  • Waar is het nodig / gebruikt?
  • Waarom kan ik "localhost" niet definiëren als de hostnaam voor elke machine?
  • Moet ik een DNS-vermelding instellen voor de plato.example.com FQDN?
  • moeten plato.example.com worden gebruikt als de omgekeerde DNS-vermelding voor mijn IP?

Zijn er ook "best practices" voor het kiezen van hostnamen? Ik heb mensen gezien die Griekse letters, planeetnamen en zelfs mythologische figuren gebruikten ... Wat gebeurt er als we geen letters / planeten meer hebben?

Het spijt me als dit een domme vraag is, maar ik ben nog nooit zo enthousiast geweest met netwerkconfiguraties.


49
2018-01-28 13:10


oorsprong


Ik denk dat Chris S hier niet thuis is. De vraag - wat is een systeemhostnaam en hoe verhoudt deze zich tot DNS - is een geldige. - larsks
@Chris S: Ik snap het, geloof me. Ik heb het een keer geprobeerd, maar het hele ding streelde me als enorm verwarrend. Ik ben niet van plan om een ​​SA te zijn, gewoon proberen de basisprincipes een beetje beter te begrijpen. - Alix Axel
Dit zou naar de community-wiki moeten gaan - lynxman
@lynxman: dat vind ik niet erg, maar waarom? - Alix Axel
Omdat het erg interessant is :) - lynxman


antwoorden:


Tegenwoordig kan een systeem meerdere interfaces hebben, elk met meerdere adressen, en elk adres kan zelfs meerdere DNS-vermeldingen hebben. Dus wat betekent een "systeemhostnaam" zelfs?

Veel toepassingen gebruiken de systeemhostnaam als een standaard-ID wanneer ze ergens anders communiceren. Als u bijvoorbeeld syslog-berichten verzamelt op een centrale server, worden de berichten allemaal getagd met de hostnaam van het oorspronkelijke systeem. In een ideale wereld zou je dit waarschijnlijk negeren (omdat je niet per se de client wilt vertrouwen), maar het standaardgedrag - als je al je systemen "localhost" noemde - zou resulteren in een heleboel logberichten die je zou niet kunnen associëren met een specifiek systeem.

Zoals andere mensen hebben opgemerkt, is de hostnaam van het systeem ook een nuttige identifier als u merkt dat u op afstand toegang hebt tot een aantal systemen. Als je vijf vensters hebt gekoppeld aan een systeem met de naam "localhost", dan zul je het moeilijk hebben om ze recht te houden.

Op dezelfde manier proberen we ervoor te zorgen dat de hostnaam van het systeem overeenkomt met de hostnaam die we gebruiken voor administratieve toegang tot een systeem. Dit helpt verwarring te voorkomen bij het verwijzen naar het systeem (in e-mail, gesprekken, documentatie, enz.).

Wat betreft DNS:

U wilt de juiste DNS-ingangen voor uw applicaties doorsturen en ongedaan maken om verwarring te voorkomen. Jij hebt nodig sommige doorsturen (naam -> ip-adres) zodat mensen uw toepassing gemakkelijk kunnen openen. Het hebben van de omgekeerde boeking is om verschillende redenen nuttig - het helpt u bijvoorbeeld om de toepassing correct te identificeren als u het bijbehorende ip-adres in een log vindt.

Merk op dat ik het hier heb over "applicaties" en niet "systemen", omdat - met name met webservers - het gebruikelijk is om meerdere ip-adressen op een systeem te hebben, geassocieerd met verschillende hostnamen en services.

Proberen om naam te behouden aan IP-toewijzingen in uw /etc/hosts bestand wordt snel moeilijk als u een toenemend aantal systemen beheert. Het is erg gemakkelijk om het lokale hosts-bestand niet synchroon te laten lopen met DNS, wat mogelijk leidt tot verwarring en in sommige gevallen tot storingen (omdat iets probeert te binden aan een ip-adres dat bijvoorbeeld niet meer bestaat op het systeem).


26
2018-01-28 13:33



Bedankt voor je antwoord, ik ben nog steeds in de war als ik het bestand / etc / hosts zou moeten (of moet) onderhouden in plaats van alleen te vertrouwen op de DNS-vermeldingen. - Alix Axel
Ik negeer het meestal /etc/hosts in het voordeel van DNS. Dit vermindert het aantal plaatsen dat ik nodig heb om informatie over naam -> adrestoewijzing bij te houden. Op het grootste deel van de systemen die ik onderhoud, /etc/hosts bevat alleen de enkele invoer voor localhost. - larsks
Wanneer u met clusters omgaat - zoals ganeti of een Linux-HA / Corosync-cluster - / etc / hosts wordt gebruikt om te praten tussen de leden van het cluster. Het is slecht om alleen op DNS te vertrouwen omdat uw DNS-service zich in die clusters bevindt en tijdens een knoopwijziging wordt gemigreerd of offline, dus / etc / hosts en een correcte hostnaam zullen u een geweldige tijd helpen. - coredump
dus, met betrekking tot "uniek", proberen we eerder "uniek" te zijn dan "moet" uniek zijn, correct? Omdat er zoveel servers zijn en ze allemaal dezelfde reikwijdte hebben, is het onmogelijk om 'uniek' te zijn. Is dit begrip correct? - shenkwen


Je zou elke hostnaam kunnen instellen op "localhost", maar het is erg handig om te hebben alix@plato ~ $ in uw opdrachtprompt wanneer u machines via ssh beheert. Het op afstand beheren van servers kan erg verwarrend zijn als u dat niet doet.

Het hebben van een correcte FQDN is belangrijk voor het hosten van een webserver of een mailserver. Dit soort servertoepassingen willen graag weten "met wie" ze bezig zijn.

Voor het kiezen van een goed naamgevingsschema, verwijs ik u naar deze zeer populaire vraag .

Een FQDN wordt alleen nuttig als deze betekenis heeft voor een andere computer. Er zijn drie niveaus:

  • Eén computer op uw lokale netwerk heeft een vermelding in zijn hosts-bestand die naar die computer verwijst
  • U hebt een DNS-server die wordt uitgevoerd op uw lokale netwerk en elke lokale computer die deze gebruikt als een DNS-server kent nu plato op naam.
  • U registreert een domeinnaam en nu weet de hele wereld naar welke machine de naam plato.alixaxel.com verwijst.

Wanneer u e-mail verzendt of webpagina's aan de buitenwereld aanbiedt, is de derde die u wilt hebben. In de meeste andere gevallen kunt u genoegen nemen met een lokale DNS of zelfs met het bewerken van hosts-bestanden.

In dat geval kunt u gewoon een domeinnaam verzinnen (plato.alixnetwork kan prima als een FQDN) voor gebruik binnen uw lokale netwerk. De enige toegevoegde waarde van het hebben van het "alixnetwork" -deel (de domeinnaam) is gemak wanneer u een ander lokaal netwerk hebt waarmee u het wilt onderscheiden.


10
2018-01-28 13:21



Bedankt kenny, ik denk dat mijn grootste twijfel is waarom het belangrijk is voor een web / mailserver om een ​​goede FQDN te hebben. En wat is een "juiste" FQDN? Moet ik gewoon de hostnaam toevoegen aan het domein en naar het openbare IP-adres verwijzen? Ik heb de indruk dat ik A / AAAA-DNS-vermeldingen moet maken met de hostnaam, niet waar? - Alix Axel
Het hangt af van wat u wilt bereiken. Als u geen e-mails verzendt of webpagina's ter wereld met plato aanbiedt, is het echt niet nodig om een ​​wereldwijde DNS-record voor die machine te maken. - Kenny Rasschaert
"U registreert een domeinnaam en nu weet de hele wereld naar welke machine de naam plato.alixaxel.com verwijst." - Ik begrijp dit niet. Weet niet de hele wereld op welke computer de naam plato.alixaxel.com wijst door de DNS-resolutie van "alixaxel.com" te controleren? Wat heeft het te maken met het instellen van een FQDN op een willekeurige machine? - shenkwen


Een basisoverzicht. Hostnamen zijn slechts verwijzingen; u kunt een specifieke toewijzen als de hostnaam waarnaar wordt verwezen door de machine, maar deze kan meerdere bevatten. Sommige services, opmerkelijke e-mail en HTTP vertrouwen op domeinnamen om te weten waar services moeten worden gevonden en hoe u ze kunt bereiken.

Een lange tijd geleden werden al deze namen (die weer slechts verwijzingen naar IP-adressen zijn) bijgehouden in een bestand met de naam hosts. Naarmate het systeem groeide, konden ze het bestand niet gesynchroniseerd houden over alle relevante computers die deelnamen aan de verschillende onderling verbonden netwerken. Dus het DNS-systeem is uitgevonden. Wanneer u een naam opzoekt, wordt eerst het hosts-bestand gecontroleerd en vervolgens het DNS-systeem. Windows controleert mogelijk ook andere systemen zoals WINS of NetBIOS.

Wanneer u een item in een hosts bestand, u wijst het niet toe aan de computer. Het toewijzen van een hostnaam zoals die door de computer wordt gebruikt, wordt gedaan in de configuratiebestanden (op * nix-systemen) en systeemeigenschappen in Windows-systemen (Windows-systeem kan ook NIC-specifieke achtervoegsels hebben).

Invoer in de hosts bestand, net als het DNS-systeem, zijn slechts een toewijzing van een hostnaam naar een IP-adres. Om de hostnaam 'localhost' te gebruiken (er is niets speciaals aan, het is een hostnaam zoals de rest) moet het worden toegewezen aan de loopback-interface (zodat het altijd naar de lokale computer verwijst). Om ervoor te zorgen dat dit werkt, krijgen alle computers deze standaardtoewijzing in hun hostsbestand, maar het kan mogelijk worden verwijderd als u die hostnaam niet wilt kunnen gebruiken.

Verder is het, zoals anderen hebben opgemerkt, erg handig om een ​​hostnaam aan een computer toe te wijzen. Wanneer u bent verbonden met de computer, kunt u deze de hostnaam laten weergeven wanneer u inlogt, of als uw prompt, of een aantal andere plaatsen. Dit maakt het identificeren van de computer waarmee u bent verbonden gemakkelijker. Als u die hostnaam in DNS instelt of in alle hosts bestanden, kunt u verbinding maken met de computer door naar de hostnaam te verwijzen in plaats van het IP-adres altijd te weten. (Nog nuttiger als de computer DHCP gebruikt, omdat het adres kan veranderen. Als de computer DNS bijwerkt, wijst de DNS-record naar het nieuwe IP-adres, maar u kunt nog steeds verbinding maken zonder het nieuwe IP-adres te kennen omdat u de DNS-naam kent ).

Er zijn veel andere toepassingen van beide hosts en DNS, maar ik vermoed dat je meer vragen hebt dan antwoorden als je dit allemaal leest.


8
2018-01-28 13:41



+1 om de tijd te nemen om een ​​goed antwoord op te schrijven ondanks je aanvankelijke frustratie over de vraag. - Kenny Rasschaert
Geweldige uitleg! Als mijn begrip klopt, plaats ik de FQDN in de /etc/hosts is niet nodig, als de hostnaam in een DNS-invoer hetzelfde resultaat zou hebben, toch? - Alix Axel
@Alix, correct, als de invoer in DNS staat (en DNS werkt naar behoren) dan wordt het in de hosts bestand zou overbodig zijn. Ook de vermelding in de hosts bestand zou DNS overschrijven (handig om te testen, soms vervelend als je het echter vergeet). Merk op dat dit alles met betrekking tot A- en AAAA-records is, er zijn andere soorten records voor hostnamen, maar ik heb ze voor de duidelijkheid weggelaten. - Chris S
Bedankt Chris, dit maakt alles veel duidelijker. - Alix Axel


Elke gastheer moet een betekenisvolle naam krijgen. De hostnaam kan meerdere doelen serveren:

1- Het helpt u te herkennen waarop u momenteel werkt.

2- Gebruik van namen die zijn geconfigureerd in /etc/hosts en / of DNS-records is eenvoudiger dan het opslaan van veel IP-adressen.

3- Localhost is een gereserveerde naam om naar de huidige machine te verwijzen (adres 127.0.0.1).

4- DNS-records zijn handig om uw servers openbaar toegankelijk te maken.

Het kiezen van een geschikte naam voor elke server helpt je veel in je administratie. Het helpt ook uw klanten toegang te krijgen tot uw servers.


5
2018-01-28 13:19





Net als een kanttekening: Juist werken aan en terugdraaien van de DNS-resolutie is de absolute hoeksteen van elke IT-installatie op deze planeet. Onderschat nooit de noodzaak van een goed onderhouden DNS en juiste hostnaamresolutie!


2
2018-01-28 13:40



Ik kan niet begrijpen waarom het belangrijk is. Ik heb een linode-server die veel websites host. Omdat ik het doel van het instellen van de hostnaam niet begrijp, laat ik het gewoon zoals het is, wat "ubuntu" is. Deze server is al een paar jaar actief en ik heb nooit enig ongemak. Ik twijfel niet aan je antwoord, ik probeer gewoon te begrijpen waarom hostname belangrijk is. Wanneer zou ik in mijn geval willen dat ik een hostnaam correct had ingesteld? - shenkwen
@shenkwen - als je eerlijk gezegd maar één server hebt, kun je het een naam geven die je hart begeert, en dat doet er natuurlijk niet toe. Zodra het aantal servers groter wordt dan 1, hebt u nieuwe problemen om te beheren en is een goede naamgeving een belangrijk hulpmiddel. - mfinni


Disclaimer: de belangrijkste vraag gaat over Linux-systemen, dus voel je vrij om dit antwoord te negeren als je niet geïnteresseerd bent in de Windows-kant van het probleem.

Hoe dan ook, in Windows-systemen, afgezien van alle punten genoemd in andere antwoorden, wordt de hostnaam eigenlijk gebruikt door de O.S. zelf, voor netwerk- en authenticatiedoeleinden; in het bijzonder:

  • Elk systeem, of dit nu een domeinlid is of niet, moet een unieke naam hebben in hetzelfde netwerk (d.w.z. in hetzelfde IP-subnet), anders zal een naamconflict ontstaan ​​en zullen verschillende netwerkdiensten (voornamelijk bestands- en printdeling) niet werken.
  • Alle systemen die lid zijn van hetzelfde Active Directory-domein moeten een unieke naam hebben, ongeacht de netwerkgrenzen.
  • In een domeinomgeving fungeert de hostnaam van een systeem als een beveiligings-principal en kan deze worden gebruikt voor externe verificatie (denk er maar aan als een gebruikersaccount voor de machine); het kan rechten en toegangsrechten toegewezen krijgen en kan voor beveiligingsdoeleinden in groepen worden geplaatst. Dit heeft invloed op alle processen die op het systeem worden uitgevoerd met behulp van de ingebouwde LocalSystem en NetworkService gebruikersaccounts, die kunnen worden geverifieerd voor andere systemen met behulp van de referenties van het systeem waarop ze worden uitgevoerd; dit maakt f.e. een proces dat loopt als NetworkServiceop SystemA voor toegang tot een gedeelde map op SystemB door machtigingen voor de map te verlenen aan de gebruikersaccount van SystemA.

1
2017-10-14 14:22





Veel sites en / of vermeende 'beheerders' verklaren nu dat het kenmerk 'hostname' de FQDN van de OS-instantie bevat, die elke resolutie 'opbreekt' waaraan de 'domeinnaam' wordt toegevoegd:

hostname
  system1.domain1.org

ping hostname
  - kan system1.domain1.org.domain1.org niet oplossen


-1
2017-12-02 00:16



Kunt u een referentiebron voor uw verklaring opgeven? - Dave M