Sanidi Seva ya DNS ya Master-Slave Kwa Kutumia Zana za Bind katika RHEL/CentOS 6.5
Seva ya Jina la Kikoa (DNS) inayotumika kusuluhisha jina kwa seva pangishi yoyote. Seva Kuu za DNS (Seva ya Msingi) ni vidhibiti vya data vya eneo asili na seva ya Slave DNS (Seva ya Sekondari) ni seva chelezo tu zinazotumika kunakili taarifa za eneo zile zile kutoka kwa seva kuu. Seva Kuu itasuluhisha majina kwa kila seva pangishi tuliyofafanua katika hifadhidata ya eneo na kutumia itifaki ya UDP, kwa sababu itifaki za UDP hazitumii mchakato wa kukiri ilhali tcp hutumia uthibitishaji. Seva za DNS pia hutumia itifaki za UDP kutatua ombi la hoja mapema zaidi.
Kuelewa DNS kunaweza kuwa na utata kidogo kwa wanaoanza. Hapa kuna maelezo mafupi juu ya jinsi DNS inavyofanya kazi.
Hebu tuseme, ikiwa tunahitaji kufikia tovuti yoyote tutafanya nini? Charaza tu www.google.com kwenye kivinjari na ubofye Ingiza. Hmm hiyo ndiyo tu tunayojua, lakini ukweli ni kwamba, jinsi maumivu ya DNS hupitia, huku ikituuliza. Wakati tunaandika www.google.com mfumo utatafuta www.google.com. Wakati wowote tunapoandika jina la kikoa, kuna . (dot) mwishoni mwa www.google.com inayosema kutafuta seva ya msingi ya nafasi ya majina.
Ulimwenguni kuna seva 13 za mizizi zinazopatikana ili kutatua swali. Mara ya kwanza, tunapogonga kuingia kama www.google.com kivinjari chetu kitapitisha ombi kwa kisuluhishi chetu cha ndani, ambacho kina ingizo kuhusu maelezo ya seva kuu na mtumwa wa DNS. Ikiwa hawana maelezo kuhusu hoja kama hiyo iliyoombwa, watatuma ombi hilo kwa kikoa cha Kiwango cha Juu (TLD), TLD ikisema sijui ombi hilo, huenda seva iliyoidhinishwa inajua ombi lako, itatumwa kwa mamlaka. seva, hapa ni www.google.com pekee iliyofafanuliwa kama anwani 72.36.15.56.
Kwa wakati huu seva iliyoidhinishwa itatoa jibu kwa TLD na TLD itapita kwa seva ya mizizi na mizizi itatoa maelezo kwa kivinjari, kwa hivyo kivinjari kitahifadhi ombi la DNS kwa matumizi ya baadaye. Kwa hivyo mchakato huu mrefu utasuluhisha tu kwa milisekunde. Ikiwa hawajui ombi hilo watalijibu kama NXDOMAIN. Hiyo ina maana, hakuna rekodi yoyote-iliyopatikana katika hifadhidata ya Eneo. Natumai hii inakufanya uelewe jinsi DNS inavyofanya kazi.
Soma Pia: Sanidi Seva ya Akiba ya DNS katika Ubuntu
Kwa nakala hii, ninatumia mashine 3, 2 kwa usanidi wa seva (bwana na mtumwa) na 1 kwa mteja.
--------------------------------------------------- Master DNS Server --------------------------------------------------- IP Address : 192.168.0.200 Host-name : masterdns.tecmintlocal.com OS : Centos 6.5 Final
--------------------------------------------------- Slave DNS Server --------------------------------------------------- IP Address : 192.168.0.201 Host-name : slavedns.tecmintlocal.com OS : Centos 6.5 Final
--------------------------------------------------- Client Machine to use DNS --------------------------------------------------- IP Address : 192.168.0.210 Host-name : node1.tecmintlocal.com OS : Centos 6.5 Final
bind, bind-utils, bind-chroot
config file : /etc/named.conf script file : /etc/init.d/named
53, UDP
Sanidi Seva ya DNS Mkuu
Kwanza, thibitisha anwani ya IP, Jina la Mpangishi na toleo la Usambazaji la Seva Kuu ya DNS, kabla ya kusonga mbele kwa ajili ya kusanidi.
$ sudo ifconfig | grep inet $ hostname $ cat /etc/redhat-release
Mara moja, unathibitisha kuwa mipangilio iliyo hapo juu ni sahihi, ni wakati wake wa kusonga mbele ili kusakinisha vifurushi vinavyohitajika.
$ sudo yum install bind* -y
Baada ya kusakinisha vifurushi vinavyohitajika, sasa fafanua faili za eneo katika faili kuu ya usanidi ya 'named.conf'.
$ sudo vim /etc/named.conf
Inayopewa hapa chini ni ingizo langu la faili linaloitwa.conf, badilisha faili ya usanidi kulingana na hitaji lako.
// // named.conf // // Provided by Red Hat bind package to configure the ISC BIND named(8) DNS // server as a caching only nameserver (as a localhost DNS resolver only). // // See /usr/share/doc/bind*/sample/ for example named configuration files. // options { listen-on port 53 { 127.0.0.1; 192.168.0.200; }; # Here we need to add our Master DNS Server IP. listen-on-v6 port 53 { ::1; }; directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named_mem_stats.txt"; allow-query { localhost; 192.168.0.0/24; }; # subnet range where my hosts are allowed to query our DNS. allow-transfer { localhost; 192.168.0.201; }; # Here we need to our Slave DNS server IP. recursion no; dnssec-enable yes; dnssec-validation yes; dnssec-lookaside auto; /* Path to ISC DLV key */ bindkeys-file "/etc/named.iscdlv.key"; managed-keys-directory "/var/named/dynamic"; }; logging { channel default_debug { file "data/named.run"; severity dynamic; }; }; zone "." IN { type hint; file "named.ca"; }; ## Define our forward & reverse Zone file here for tecmintlocal.com. zone"tecmintlocal.com" IN { type master; file "tecmintlocal.fwd.zone"; allow-update { none; }; }; zone"0.168.192.in-addr.arpa" IN { type master; file "tecmintlocal.rev.zone"; allow-update { none; }; }; ##### include "/etc/named.rfc1912.zones"; include "/etc/named.root.key";
Yafuatayo ni maelezo ya kila usanidi tuliotumia kwenye faili hapo juu.
- kusikiliza-kwenye mlango 53 - Hii inatumika kwa DNS kusikiliza katika violesura vinavyopatikana.
- DNS Kuu - Bainisha, anwani yako ya IP ya DNS Kuu ili kusikiliza hoja.
- DNS ya Watumwa - Bainisha DNS yako ya Mtumwa, ambayo inatumika kusawazisha maelezo ya eneo letu ili kutatua wapangishi kutoka kwa Mwalimu.
- hapana ya kujirudia - Iwapo itawekwa kuwa ndiyo, maswali yanayojirudia yatafanya seva kuwa mashambulizi ya DDOS.
- Jina la Eneo - Bainisha jina la Eneo lako hapa likifafanuliwa kama tecminlocal.com.
- aina ya bwana - Kwa vile mfumo huu ulisanidiwa kwa seva kuu, kwa seva inayokuja ya watumwa hii itakuwa mtumwa.
- tecmintlocal.fwd.zone - Faili hii ina maelezo ya seva pangishi ya eneo hili.
- hairuhusu kusasisha - Ikiwa hakuna itaweka. haitatumia Dynamic DNS (DDNS).
Kwanza hebu tufafanue ingizo la eneo la kuangalia mbele. Hapa tunahitaji kuunda faili za eneo kwa jina la kile tumefafanua katika faili ya named.conf kama ilivyo hapo chini.
tecmintlocal.fwd.zone tecmintlocal.rev.zone
Tunatumia sampuli za faili za usanidi kuunda faili za eneo la mbele, kwa hili tunapaswa kunakili sampuli za faili za usanidi.
$ sudo cp /var/named/named.localhost /var/named/tecmintlocal.fwd.zone $ sudo cp /var/named/named.loopback /var/named/tecmintlocal.rev.zone
Mara moja, umenakili faili za usanidi, sasa hariri faili za maeneo haya kwa kutumia vim kihariri.
$ sudo vim /var/named/tecmintlocal.fwd.zone
Kabla ya kufafanua maelezo yetu ya mwenyeji katika faili ya eneo la mbele, kwanza angalia kwa haraka sampuli ya faili ya eneo.
Huu ni usanidi wangu wa eneo la mbele, ongeza ingizo hapa chini na ufanye mabadiliko kulingana na hitaji lako.
$TTL 86400 @ IN SOA masterdns.tecmintlocal.com. root.tecmintlocal.com. ( 2014090401 ; serial 3600 ; refresh 1800 ; retry 604800 ; expire 86400 ) ; minimum ; Name server's @ IN NS masterdns.tecmintlocal.com. @ IN NS slavedns.tecmintlocal.com. ; Name server hostname to IP resolve. @ IN A 192.168.0.200 @ IN A 192.168.0.201 ; Hosts in this Domain @ IN A 192.168.0.210 @ IN A 192.168.0.220 masterdns IN A 192.168.0.200 slavedns IN A 192.168.0.201 node1 IN A 192.168.0.210 rhel1 IN A 192.168.0.220
Hifadhi na uache faili ukitumia wq!. Baada ya kuhariri utaftaji wa mbele, inaonekana kama hapa chini, Tumia TAB kupata umbizo la heshima katika faili ya eneo.
Sasa, unda faili ya kuangalia nyuma, tayari tumetengeneza nakala ya faili ya kitanzi kwa jina la tecmintlocal.rev.zone. Kwa hivyo, tunatumia faili hii kusanidi ukaguzi wetu wa kinyume.
$ sudo vim /var/named/tecmintlocal.rev.zone
Kabla ya kufafanua maelezo ya mwenyeji wetu katika faili ya eneo la kinyume, angalia kwa haraka sampuli ya faili ya kuangalia kinyume kama inavyoonyeshwa hapa chini.
Huu ni usanidi wangu wa eneo la nyuma, ongeza ingizo hapa chini na ufanye mabadiliko kama hitaji lako.
$TTL 86400 @ IN SOA masterdns.tecmintlocal.com. root.tecmintlocal.com. ( 2014090402 ; serial 3600 ; refresh 1800 ; retry 604800 ; expire 86400 ) ; minimum ; Name server's @ IN NS masterdns.tecmintlocal.com. @ IN NS slavedns.tecmintlocal.com. @ IN PTR tecmintlocal.com. ; Name server hostname to IP resolve. masterdns IN A 192.168.0.200 slavedns IN A 192.168.0.201 ;Hosts in Domain node1 IN A 192.168.0.210 rhel IN A 192.168.0.220 200 IN PTR masterdns.tecmintlocal.com. 201 IN PTR slavedns.tecmintlocal.com. 210 IN PTR node1.tecmintlocal.com. 220 IN PTR rhel1.tecmintlocal.com.
Hifadhi na uache faili ukitumia wq!. Baada ya kuhariri utazamaji wa nyuma, inaonekana kama hapa chini, Tumia TAB kupata umbizo la heshima katika faili ya eneo.
Angalia umiliki wa kikundi wa kuangalia mbele na kubadilisha faili za kuangalia, kabla ya kuangalia hitilafu zozote katika usanidi.
$ sudo ls -l /var/named/
Hapa tunaweza kuona faili zote mbili ziko katika umiliki wa watumiaji wa mizizi, kwa sababu faili ambazo tunafanya nakala kutoka kwa faili za sampuli zinapatikana chini ya /var/named/. Badilisha kikundi kiwe na jina kwenye faili zote mbili kwa kutumia amri zifuatazo.
$ sudo chgrp named /var/named/tecmintlocal.fwd.zone $ sudo chgrp named /var/named/tecmintlocal.rev.zone
Baada ya kuweka umiliki sahihi kwenye faili, zithibitishe tena.
$ sudo ls -l /var/named/
Sasa, angalia makosa katika faili za eneo, kabla ya kuanza huduma ya DNS. Kwanza angalia faili yenye jina.conf, kisha uangalie faili zingine za eneo.
$ sudo named-checkconf /etc/named.conf $ sudo named-checkzone masterdns.tecminlocal.com /var/named/tecmintlocal.fwd.zone $ sudo named-checkzone masterdns.tecminlocal.com /var/named/tecmintlocal.rev.zone
Kwa chaguo-msingi iptables zilikuwa zikifanya kazi na seva yetu ya DNS inatumika kwa localhost tu, ikiwa mteja anataka kutatua jina kutoka kwa Seva yetu ya DNS, basi inabidi turuhusu ombi la ndani, kwa hilo tunahitaji kuongeza sheria ya kuingiza iptables kwa mlango wa 53.
$ sudo iptables -I INPUT -p udp --dport 53 -m state --state NEW -j ACCEPT
Sasa, thibitisha kuwa sheria zimeongezwa kwa usahihi katika msururu wa INPUT.
$ sudo iptables -L INPUT
Ifuatayo, hifadhi sheria na uanze upya firewall.
$ sudo service iptables save $ sudo service iptables restart
Anzisha huduma iliyopewa jina na uifanye iendelee.
$ sudo service named start $ sudo chkconfig named on $ sudo chkconfig --list named
Hatimaye, jaribu faili za eneo la Master DNS zilizosanidiwa (mbele na nyuma), kwa kutumia dig & nslookup zana.
$ dig masterdns.tecmintlocal.com [Forward Zone]
$ dig -x 192.168.0.200
$ nslookup tecmintlocal.com $ nslookup masterdns.tecmintlocal.com $ nslookup slavedns.tecmintlocal.com
Baridi! tumesanidi DNS Kuu, sasa tunahitaji kusanidi Seva ya DNS ya Mtumwa. Wacha tusonge mbele ili kusanidi seva ya mtumwa, Hii haitachukua muda mwingi kama usanidi mkuu.
Sanidi Seva ya DNS ya Mtumwa
Katika mashine ya Slave, pia tunahitaji kusakinisha vifurushi sawa na inavyoonyeshwa katika Master, kwa hivyo wacha tuvisakinishe kwa kutumia amri ifuatayo.
$ sudo yum install bind* -y
Fungua na uhariri faili ya 'named.conf' kwa hifadhidata yetu ya eneo na usikilize mlangoni.
$ sudo vim /etc/named.conf
Fanya mabadiliko kama inavyoonyeshwa, kulingana na mahitaji yako.
// // named.conf // // Provided by Red Hat bind package to configure the ISC BIND named(8) DNS // server as a caching only nameserver (as a localhost DNS resolver only). // // See /usr/share/doc/bind*/sample/ for example named configuration files. // options { listen-on port 53 { 127.0.0.1; 192.168.0.201}; # Our Slave DNS server IP listen-on-v6 port 53 { ::1; }; directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named_mem_stats.txt"; allow-query { localhost; 192.168.0.0/24; }; recursion no; dnssec-enable yes; dnssec-validation yes; dnssec-lookaside auto; /* Path to ISC DLV key */ bindkeys-file "/etc/named.iscdlv.key"; managed-keys-directory "/var/named/dynamic"; }; logging { channel default_debug { file "data/named.run"; severity dynamic; }; }; zone "." IN { type hint; file "named.ca"; }; ## Define our slave forward and reverse zone, Zone files are replicated from master. zone"tecmintlocal.com" IN { type slave; file "slaves/tecmintlocal.fwd.zone"; masters { 192.168.0.200; }; }; zone"0.168.192.in-addr.arpa" IN { type slave; file "slaves/tecmintlocal.rev.zone"; masters { 192.168.0.200; }; }; ##### include "/etc/named.rfc1912.zones"; include "/etc/named.root.key";
Anzisha huduma ya DNS kwa kutumia.
$ sudo service named start
Baada ya kuanzisha upya huduma ya kuunganisha, si lazima tufafanue maelezo ya eneo kibinafsi, kwani uhamishaji wetu wa kuruhusu utaiga maelezo ya eneo kutoka kwa seva kuu kama inavyoonyeshwa kwenye picha hapa chini.
$ sudo ls -l /var/named/slaves
Thibitisha, habari ya eneo kwa kutumia amri ya paka.
$ sudo cat /var/named/slaves/tecmintlocal.fwd.zone $ sudo cat /var/named/slaves/tecmintlocal.rev.zone
Kisha, fungua mlango wa DNS 53 kwenye iptables ili kuruhusu muunganisho wa ndani.
$ sudo iptables -I INPUT -p udp --dport 53 -m state --state NEW -j ACCEPT
Hifadhi sheria za iptables na uanze tena huduma ya iptables.
$ sudo service iptables save $ sudo service iptables restart
Fanya huduma iendelee kwenye buti ya mfumo.
$ sudo chkconfig iptables on
Check whether persistent set for run-levels .
$ sudo chkconfig --list iptables
Ni hayo!. Sasa ni wakati wa kusanidi mashine za mteja wetu na kuangalia jina la mwenyeji.
Sanidi Mashine ya Wateja
Katika upande wa mteja tunahitaji kukabidhi ingizo la Msingi (192.168.0.200) na DNS ya Sekondari (192.168.0.201) katika mipangilio ya mtandao ili kukabidhi jina la mpangishaji. Ili kufanya, endesha amri ya usanidi ili kufafanua maingizo haya yote kama inavyoonekana kwenye picha.
$ setup
Vinginevyo, hariri faili ya '/etc/reslov.conf' na uongeze maingizo yafuatayo.
$ vim /etc/resolv.conf
search tecmintlocal.com nameserver 192.168.0.200 nameserver 192.168.0.201
Sasa, thibitisha utafutaji wa ip, jina la mwenyeji na seva ya jina.
$ ifconfig | grep inet $ hostname $ nslookup tecmintlocal.com
Sasa, angalia utazamaji wa mbele na Ubadilishe DNS ukitumia.
$ dig masterdns.tecmintlocal.com $ dig -x 192.168.0.200
Kuelewa Pato la kuchimba:
- Kichwa - Hii inasema kila kitu ambacho tumeuliza na jinsi matokeo yalikuwa.
- Hali – Hali HAKUNA HITILAFU, hiyo inamaanisha ni ombi gani la hoja tulilotuma lilifanikiwa bila HITILAFU yoyote.
- Swali – Hoja ambayo tuliifanya, hapa swali langu lilikuwa masterdns.tecmintlocal.com.
- Jibu - Ombi la Hoja lilitatuliwa ikiwa kuna habari inayopatikana.
- Mamlaka - Majibu ya seva za jina kwa kikoa na eneo.
- Ziada - Taarifa za ziada kuhusu seva-jina kama vile jina la mwenyeji na anwani ya IP.
- Muda wa hoja - Ilichukua muda gani kutatua majina kutoka kwa seva zilizo hapo juu.
Hatimaye angalia nodi yetu na ufanye ping.
$ dig node1.tecmintlocal.com
$ ping masterdns.tecmintlocal.com -c 2 $ ping slavedns.tecmintlocal.com -c 2 $ ping 192.168.0.200 -c 2 $ ping 192.168.0.201 -c 2
Hatimaye, usanidi umekamilika, hapa tumesanidi seva ya DNS ya Msingi (Mwalimu) na Slave (Sekunde) ya DNS kwa mafanikio, natumai kila mtu ameweka mipangilio bila tatizo lolote, jisikie huru kudondosha maoni ikiwa utakumbana na tatizo lolote wakati wa kusanidi.