az előző cikkben ebben a két részből álló sorozat, Bevezetés a DNS (Domain Name System), leírtam, hogy a DNS adatbázis felépítése, valamint hogyan kell beállítani név szolgáltatások egy ügyfél. Felsoroltam és leírtam néhány gyakoribb DNS-rekordot is, amelyekkel valószínűleg találkozik egy névkiszolgáló építésekor, vagy csak megpróbálja értelmezni a dig parancs eredményeit.

ebben a cikkben megmutatom, hogyan lehet saját névkiszolgálót létrehozni a BIND (Berkeley Internet Name Domain) segítségével., Ez nem olyan nehéz, mint gondolnád, különösen azért, mert meg tudod csinálni két szakaszban.

ebben a cikkben, akkor kezdődik a tanulás, hogyan kell létrehozni egy gyorsítótár névszerver, akkor lépni, és megtanulják, hogyan kell frissíteni, hogy egy teljes elsődleges (mester) domain név szerver a hálózat, kiegészítve előre és fordított zóna fájlokat.

DNS-kiszolgáló beállítása a BIND

névkiszolgáló beállítása a BIND használatával meglehetősen egyszerű, ezért megmutatom, hogyan kell ezt megtenni minden olyan számítógépen, amely elérhető a kísérletezéshez., Ez a kis labor projekt megmutatja, hogyan kell telepíteni és konfigurálni BIND a számítógépen, mint egy caching név szerver, tesztelni, majd állítsa be, mint egy elsődleges név szerver egy zóna fájlt, hogy lehet használni, mint egy név feloldó a hálózathoz, vagy csak tesztelésre.

névszerver beállítása bármely rendelkezésre álló GNU / Linux számítógépen technikailag lehetséges, mert nem zavarja a hálózat többi gazdagépét vagy azok működését. Ezt azonban valószínűleg nem szabad olyan számítógépen elvégeznie, amelyet nem birtokol, vagy módosítania kell, kivéve, ha erre kifejezett engedélye van.,

saját beállítás

csak egy számítógépre van szüksége, hogy elvégezze az összes feladatot, kivéve a laboratóriumi projekt egyik feladatát. Ezt a beállítást a sokkal erősebb ThinkPad-en használom, mert a DHCP (Dynamic Host Configuration Protocol) által biztosított névszerverek, amikor vezetékes vagy vezeték nélküli kapcsolatokkal nem otthoni hálózatokhoz csatlakozom, néha megbízhatatlanok lehetnek. Annak bizonyítására, hogy szinte minden gazdagép jól teljesít, mint egy névszerver, teszteltem ezt a projektet egy régi ASUS EeePC 900 netbookon.,

ehhez a projekthez az ASUS privát IP-címét fogom használni, de a használt gazdagép IP-címét kell használnia.

a hosts fájl

először nézzük meg az / etc / hosts fájlt. Alapértelmezett állapotában csak két sor lehet A hosts fájlban,az első két sor az 1. listában látható.

1. lista: Egyszerű hosts fájlt tarthat fenn a feloldó funkciójának végrehajtásához kis hálózatokban.,

bár a hostneveket és azok IP-címeit az 1. felsorolás szerint adhatja hozzá, ez nem optimális megoldás a szolgáltatások megnevezésére, különösen utazás közben. Ha vannak más bejegyzések a hosts fájlban, előfordulhat, hogy kommentálnia kell őket a projekt időtartama alatt, ha zavarják az elnevezést vagy az IP-címeket. A legtöbb nem lesz semmilyen bejegyzést más, mint a két alapértelmezett sor.,

előkészítés

a gyorsítótárazási névkiszolgáló nem helyettesítheti az / etc / hosts használatát a belső hálózat hostneveinek megoldására; azonban az ISP vagy más nyilvános névkiszolgáló használatához képest a gyorsítótárazási névkiszolgáló javíthatja a teljesítményt az általánosan használt külső nevek, például www.cnn.com. a legjobb az egészben az, hogy a gyorsítótár névkiszolgáló beállítása meglehetősen egyszerű.

az indítás előtt a következő lépések végrehajtásával kell felkészülnie.

először készítsen biztonsági másolatot a /etc/hosts, /etc/named fájlokról.conf, resolv.conf, és / etc / sysconfig / iptables.,

Ha még nincs telepítve, a disztribúció csomagkezelőjével telepítse a következő BIND RPMs-t: bind, bind-chroot, and bind-utils. Ahhoz, hogy a labor host a gyorsítótárazási névkiszolgáló használatát engedélyezze, hozzá kell adnia egy névkiszolgáló sort, hogy a /etc/resolv saját gazdagépére mutasson.conf. Például, ha a labor host IP-címe 192.168.0.203, mint az én epc, adja hozzá a következő sort az /etc/resolv névkiszolgáló listájának tetejére.conf:

name server 192.168.0.203

feltétlenül használja annak a gazdagépnek az IP-címét, amelyen ezt a projektet végzi.,

használhatja a localhost, 127.0.0.1 IP-címét a külső IP-cím helyett. Azt is meg kell megjegyzést ki sorokat mutat más házigazdák névszerverek. Ügyeljen arra, hogy mentse a felülvizsgált resolv.conf fájl.

ezek a változások azonnal hatályba lépnek, nincs szükség újraindításra vagy a szolgáltatás újraindítására. Most próbálja meg pingelni egy közös nyilvános gazdagépet, amely nem blokkolja az ICMP (Internet Control Message Protocol) csomagokat; nyugodtan használja a tűzfalat, amely egy Raspberry Pi.,

ping wally2.both.org

” ismeretlen gazdagép “vagy” név vagy szolgáltatás nem ismert ” hibát kell kapnia, mert jelenleg nincs működő DNS-szolgáltatás vagy feloldó a resolv-ben.conf fájl. Most használja a dig parancsot, hogy megnézze, működik-e a névszolgáltatások.

dig wally2.both.com

akkor kap a hiba, ” kapcsolat időzített ki; nem szerverek lehet elérni.”

caching névkiszolgáló beállítása

a gyorsítótár névkiszolgáló nem hiteles forrás bármely tartomány számára., Egyszerűen gyorsítótárazza a hálózat összes névfeloldó kérésének eredményeit, amelyek arra szolgálnak, hogy felgyorsítsák az ugyanazon távoli gazdagépre vonatkozó jövőbeli kérésekre adott válaszokat.

megjegyzés: a megnevezett.conf fájl nagyon különös a szintaxis, különösen írásjelek. Pontosvesszőket használnak egy bejegyzés végének, valamint egy stanza végének, valamint egy sor végének meghatározására. Ügyeljen arra, hogy helyesen adja hozzá őket a mintákban látható módon.

a gyorsítótár névkiszolgáló kezdeti beállításához néhány módosítást kell végrehajtani az alapértelmezett /etc/named-en.conf fájl szükséges, így szerkeszteni a fájlt a kedvenc szerkesztő., Először adja hozzá a helyi tesztgazda IP-címét a” listen-on port 53 ” sorhoz, amint az az alábbi 2.listában látható. Ez lehetővé teszi a named számára, hogy meghallgassa a gazdagép külső IP-címét, így más számítógépek névszerverként is használhatják.

alapértelmezés szerint a BIND az Internet gyökérnévszervereire utal, hogy megkeresse a tartomány hiteles névszervereit. Lehetőség van olyan kiszolgálók megadására, amelyeket “szállítmányozóknak” neveznek, amelyekhez a BIND helyi példánya kéréseket küld a gyökérkiszolgálók helyett. Ez növeli a DNS-eltérítés lehetőségét.,

adjon hozzá egy” szállítmányozók ” sort az alábbiak szerint. Ez megmondja a gyorsítótárazási DNS-kiszolgálónak, hogy hol szerezze be az IP-címeket, ha még nem gyorsítótárazott helyileg. Az IP-Címeket a lista alatt a Google nyilvános DNS-szervereket lehet használni a helyi INTERNETSZOLGÁLTATÓ, vagy Nyit vagy más nyilvános név szerver, mint a szállítmányozó nem tagadhat meg. Nem szükséges semmilyen szállítmányozót meghatározni, és ebben az esetben a BIND a /var/named/named.ca fájlban meghatározott internetes gyökérkiszolgálókat használja a tartományok hiteles névkiszolgálóinak megkeresésére, ha nincs szállítmányozó., De ehhez a gyakorlathoz, kérjük, határozza meg a szállítmányozókat, mint én a Listing 2-ben.

kommentálja az IPV6 sort, mert nem használunk IPV6-ot a laboratóriumi környezetben. Vegye figyelembe, hogy a “/ / ” két előremenő Slash a megnevezett megjegyzéseket jelöli.conf fájl.

Listing 2: az / etc / named.a conf fájl biztosítja a gyorsítótár-névkiszolgáló beállításához szükséges egyszerű konfigurációt. A sorokat, amelyeket hozzá kell adni vagy módosítani kell, félkövérrel kiemeljük.

adja hozzá a helyi hálózati címet, 192.168.0.0/24, Az allow-query vonalhoz., Ez a sor meghatározza azt a hálózatot(hálózatokat), ahonnan a DNS-lekérdezéseket elfogadja ez a DNS-kiszolgáló.

indítsa el a

névszolgáltatást most indítsa el a megnevezett szolgáltatást, majd konfigurálja a megnevezett szolgáltatást, hogy minden indításkor elinduljon. A systemctl parancsot A Fedora 25 gazdagépemen használom, de a parancs eltérő lehet a gazdagépen, a használt terjesztéstől függően. Vegye figyelembe, hogy a BIND resolver szolgáltatás neve.,

systemctl enable named
systemctl start named

Az első vizsgálatot végezhet annak érdekében, hogy a cache szerver működik, hogy használja ásni, hogy keresse meg a DNS-adatbázis információk wally2.both.org. További vizsgálat a cache-name server kiszolgálóval használja, az ásatást parancs, hogy szerezze be az IP-Cím(ek) egy közös Internetes weboldalak, mint például a www.opensource.com CNN, Vezetékes, valamint bármely más, mint. Az eredményeknek most meg kell mutatniuk a gazdagépet, mint válaszoló szervert.,

ezen A ponton a cache szerver helyesen megoldani hosts az Internet pedig azért, mert azok a DNS-kérések a nyilvános állomás továbbítja a Google nyilvános név szerverek—lásd a “szállítmányozók” vonal neve.conf. Azonban továbbra is függ az /etc/hosts fájltól a belső névszolgáltatásokhoz. Az elsődleges névszerver létrehozása megoldhatja ezt a problémát.

elsődleges névkiszolgáló létrehozása

a gyorsítótár-névkiszolgáló létrehozása után nem túl nehéz teljes értékű elsődleges névkiszolgálóvá konvertálni., Az elsődleges névszerver az általa képviselt tartomány hiteles forrása.

meg kell változtatni elemzi.conf újra, és hozzon létre egy pár új fájlokat. Létrehoz egy domain nevet Example.com, amely egy olyan domain név, amelyet például ilyen dokumentumokban tartanak fenn. Az Example.com a domainnek van egy IP-címe az interneten és egy nagyon ritka weboldala, de a labor projekt többi részében használhatja a nevet anélkül, hogy bárki számára problémát okozna. Majd használja a Example.com domain, mint a belső domain név a többi ezt a gyakorlatot.,

a két új létrehozott fájl a forward és a reverse zone fájlok, amelyeket a /var/named könyvtárban helyez el. Ezt a helyet a megnevezett “könyvtár” irányelv határozza meg.conf konfigurációs fájl.

hozza létre a forward zone fájlt

a forward zone fájl “A” rekordokat tartalmaz, amelyek párosítják a zónában lévő házigazdák nevét, más néven tartományt a megfelelő IP-címekkel. Tartalmazhat CNAME-rekordokat is, amelyek az A-rekordok valódi hostneveinek álnevei, az MX-rekordok pedig a levelezőszerverek számára.

Hozzon létre egy alapvető forward zone fájlt, /var/named/example.com.,zóna, majd adja hozzá a következő sorokat. A zóna fájlnak úgy kell kinéznie, mint a minta zóna fájl a Listing 3-ban, az alábbiakban, amikor elkészült.

; Authoritative data for example.com zone
;
$TTL 1D
@ IN SOA epc.example.com root.epc.example.com. (
2017031301 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
$ORIGIN example.com.
example.com. IN NS epc.example.com.
epc IN A 127.0.0.1
server IN A 192.168.25.1
www IN CNAME server
mail IN CNAME server
test1 IN A 192.168.25.21
t1 IN CNAME test1
test2 IN A 192.168.25.22
test3 IN A 192.168.25.23
test4 IN A 192.168.25.24
; Mail server MX record
example.com. IN MX 10 mail.example.com.

Listing 3: The forward zone file for the Example.com a tartomány tartalmazza a tartomány hostneveit és IP-címeit.

a Listing 3 Első nem megjegyzéssora az élő specifikátor ideje, amely ebben az esetben egy nap minden olyan rekord esetében, amely egyébként nincs megadva. A D a napot jelenti. A SOA (a hatóság kezdete) sor specifikátorai ugyanolyan nyilvánvalóak., A SOA rekord paramétereinek részleteit itt részletesen ismertetjük.

az NS rekordnak rendelkeznie kell annak a gazdagépnek az FQDN-jével (teljesen minősített Domain név), amelyen ezt a laboratóriumi projektet végzi. A fájlban egy rekordnak is kell lennie, amely érvényes IP-címet tartalmaz a gazdagép számára. Ebben az esetben a localhost IP-címet kell használnia 127.0.0.1.

a fenti bejegyzések néhány hostnevet adnak, amelyekkel kísérletezni lehet.

ügyeljen arra, hogy a mai dátumot használja, majd a 01-től kezdődő számlálót csatolja a sorozatszámhoz. A fenti sorozatszám az első változás 2017.március 4-én., A sorozatszám akkor növekszik, amikor a zónafájl megváltozik. Ha voltak olyan másodlagos névszerverek, amelyek ezt az elsődlegeset használták, akkor azokat nem frissítik, kivéve, ha a sorozatszám növekszik.

adja hozzá a forward zone fájlokat a named-hez.conf

mielőtt a DNS-kiszolgáló működni fog, azonban létre kell hoznia egy bejegyzést az /etc/named alkalmazásban.conf, amely az új zóna fájlra mutat. Adja hozzá a következő sorokat a felső szintű tippek zónájához tartozó bejegyzés alatt, de az “include” sorok előtt.

zone "example.com" IN {
type master;
file "example.com.zone";
};

4.lista: adja hozzá ezeket a sorokat a névhez.conf fájl a példa hozzáadásához.,com zóna fájl a resolver konfigurációhoz.

most indítsa újra a named-et, hogy ezek a változások hatályba lépjenek. Tesztelje a névkiszolgálót a dig and nsloookup parancsok segítségével, hogy megszerezze a forward zone fájlban konfigurált házigazdák IP-címét. Vegye figyelembe, hogy az IP-cím visszaadásához a gazdagépnek nem kell léteznie a hálózaton a dig és az nslookup parancsok számára.

vegye figyelembe, hogy az FQDN használata ezekre a parancsokra szükséges, kivéve az nslookup parancsot, mindaddig, amíg a Example.com az/etc / resolv tartalmazza.conf fájl., Ebben az esetben valószínűleg nem, ezért csak használja az FQDNs-t a projekt összes teszteléséhez.

A gyökérnév-kiszolgálók használata

vegye figyelembe, hogy a gyökérnév-kiszolgálók a Amazon.com keresés. De ne feledje, hogy a Google nyilvános névszervereit szállítmányozóként használja. Most kommentálja a forwarders sort a named-Ben.conf és restart nevű. Futtassa újra a fenti parancsokat a visszaküldött eredmények összehasonlításához. Az eredményeknek hasonlónak kell lenniük az 5. felsorolásban szereplő eredményekhez.

5. lista: a keresés eredményei a www.amazon.,com van néhány érdekes információt, beleértve alkalommal élni a különböző rekord típusok.

amikor ezt tettem, az első hívás, amely megoldotta az Amazon külső címét, 3857ms-t vett igénybe, miközben az adatok megtalálhatók voltak. Az ugyanazon lekérdezés végrehajtására szolgáló későbbi eredmények 1ms voltak, ami a gyorsítótárazási feloldó eredményeinek helyi előnyét mutatja. Figyeljük meg a számok 1800, 300, és 60 a válasz szakasz vonalak és 1831 hatóság szakasz vonalak-ezek TTL (alkalommal élni) másodpercben., Ha többször elvégzi a keresést, ezek a számok megváltoznak, megmutatva azt az időtartamot, ameddig a rekordok a helyi gyorsítótárban élnek.

A fordított zóna fájl létrehozása

a tartomány fordított zónája lehetővé teszi a fordított keresést. Sok szervezet nem teszi ezeket belsőleg, de a fordított keresések hasznosak lehetnek a probléma meghatározásában. Sok spam harci konfiguráció, például a SpamAssassin, fordított keresést keres az érvényes e-mail szerverek ellenőrzésére.

hozza létre a reverse zone fájlt, /var/named/example.com.rev fájlt, majd adja hozzá a következő tartalmat., Ügyeljen arra, hogy megfelelő sorozatszámot használjon.

; Authoritative data for example.com reverse zone
;
$TTL 1D
@ IN SOA test1.example.com root.test1.example.com. (
2017031501 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ IN NS epc.example.com.
example.com. IN NS epc.example.com.
1 IN PTR mail.example.com.
1 IN PTR server.example.com.
21 IN PTR test1.example.com.
22 IN PTR test2.example.com.
23 IN PTR test3.example.com.
24 IN PTR test4.example.com.

Listing 6: használja ezt a fordított zóna fájlt, például.com.rev, a névkiszolgálóhoz.

a reverse zone file /var/named/25.168.192.in-addr.arpa fájlt is megnevezheti, amely a régebbi konvenciókat követi. Akkor valóban nevet, amit akarsz, mert akkor pont, hogy kifejezetten a megnevezett.conf fájl, de a két egyezmény egyikének használata megkönnyíti mások számára, hogy kövessék munkáját.

adja hozzá a fordított zónát a named-hez.conf:

zone "25.168.192.in-addr.arpa" IN {
type master;
file "example.com.rev";
};

Listing 7: hozzáadása ez stanza a megnevezett.,conf fájl lehetővé teszi a fordított keresést.

adja hozzá a stanzát a 7. listához az /etc/named-hez.conf fájl az új fordított zónára mutat. Most újratöltés elemzi, majd tesztelje a fordított zóna a parancsok Listing 8. Az eredményeknek hasonlónak kell lenniük az alábbiakhoz.

8. lista: a named újraindítása után hasonló eredményeket kell látnia, ha fordított keresést végez egy IP-címen a fordított zónában.

győződjön meg róla, hogy tesztelje a hálózat többi fordított bejegyzését, valamint próbálja ki a következőket, valamint más fordított kereséseket is, amelyekkel kísérletezni szeretne., A-x opció fordított keresést jelent.

dig -x 192.168.25.23
dig -x 192.168.25.1

vegye figyelembe, hogy nem minden olyan gazdagépnek kell bejegyzéseket tartalmaznia a hátsó zónában, de következetesebb eredményeket tesz lehetővé, ha igen.

Ezen a ponton van egy működő névszerver a BIND használatával. A külső házigazdák azonban még nem használhatják ezt a névkiszolgálót, mert a tűzfalat még nem szabad úgy konfigurálni, hogy engedélyezze a DNS-kéréseket.

IPTables konfigurálása DNS-hez

ezt a lépést megteheti, ha azt szeretné, hogy a helyi hálózaton lévő más házigazdák névkiszolgálóként használják a gazdagépet.,

a tesztgazda tűzfala valószínűleg blokkolja a névszolgáltatásokhoz való hozzáférést a gazdagéphez. Az IPTables-t úgy kell konfigurálni, hogy az UDP (User Datagram Protocol) csomagok bejussanak a névkiszolgálóra annak érdekében, hogy más gazdagépek névfelbontáshoz használhassák. Használja a következő parancsokat a szükséges bejegyzések hozzáadásához, majd mentéséhez.

adjon hozzá egy szabályt az IPTables vagy firewalld tűzfalhoz, amely lehetővé teszi a bejövő csomagokat az UDP 53 (tartomány) portján, majd mentse el az új szabályrendszert., Feltétlenül illessze be az új szabályt a-A INPUT-m állapot –állapothoz kapcsolódó,létrehozott-j ACCEPT sor után, így ehhez meg kell számolnia a szűrőasztal bemeneti sorainak számát. A következő parancs 7-es száma azt jelenti, hogy ez a szabály a meglévő beviteli szabályokban a 7-es pozícióba kerül.

iptables -t filter -I INPUT 7 -p udp -m conntrack --ctstate NEW -m udp --dport 53 -j ACCEPT

mentheti az új tűzfalszabályokat, ha úgy tetszik, és ha ez egy állandó telepítés lenne, nem pedig egy laboratóriumi projekt. Ezután tesztelje ezt az egyik másik gazdagépről a 9. lista alatt található parancs segítségével., A @epc argumentum azt mondja a dig parancsnak, hogy használja a megadott névkiszolgálót az EPC gazdagépnévvel. Cserélje ki az éppen létrehozott DNS-kiszolgáló IP-címét, vagy a hálózaton feloldható gazdagépnevet, amely az új névkiszolgálóra mutat. Természetesen mindig hozzáadhatja ezt a gazdagépnevet az IP-címével a távoli teszthez használt gazdagép/etc / hosts fájljához.

9. lista: az ugyanazon a hálózaton egy másik gazdagépről létrehozott névfeloldó tesztelése.,

Cleanup

a tisztításhoz a következő feladatokat kell elvégeznie a terjesztéshez megfelelő eszközökkel. Lehet, hogy csak szeretné megtartani ezt a névkiszolgálót a hálózatához, ha még nincs ilyen.

  1. állítsa vissza az eredeti / etc / hosts fájlt.
  2. a labor projekthez használt resolver gazdagépen megadott Stop.
  3. tiltsa le a megnevezett szolgáltatást.
  4. törölje a zónafájlokat.
  5. állítsa vissza az eredeti nevet.conf fájl.
  6. az eredeti resolv visszaállítása.conf fájl.,

végső gondolatok

a névszolgáltatások működése nagyon homályosnak tűnt számomra, amíg valójában létrehoztam egy névszervert a HÁLÓZATOMHOZ a BIND használatával. Ez elég egyszerű, és javíthatja a DNS keresési teljesítményt. A saját névkiszolgáló is megakadályozhatja a viszonylag kisebb, mégis bosszantó névszolgáltatás megszakításait, amelyeket a rosszul karbantartott ISP névkiszolgálók okoznak.

vegye figyelembe, hogy annak ellenére, hogy a kis EeePC 100% – os CPU-használattal fut a Seti@Home számára, rendkívül gyorsan reagál a feloldó kérésekre., Önnek képesnek kell lennie arra, hogy kipróbálja ezt a projektet minden olyan Linux gazdagépen, amely elérhető apró hatással. Remélem, hogy sokan megpróbálják létrehozni a saját névszerverét, és kísérletezni vele. A névkiszolgáló telepítésének sajátosságai a gazdagép és a hálózat adataitól függenek.