Olen lukenut tälläistä opasta DNS-palvelimen pystytyksestä: http://www.ubuntugeek.com/dns-server-setup-using-bind-in-ubuntu.html
En ymmärrä, että miksi määritellään eri alueita (zone) ja erillaisia ohjauksia (forwarders). Tarkoitus on saada toiminta siten, että sisäverkko toimii ihan normaalisti, ja ulospäin saa yhteyden. Serverin tulisi toimia myös sisäisenä sekä ulkoisena web-palvelimena. DNS-palvelin pitäisi pystyttää siksi, kun ADSL-modeemi ei osaa reitittää porttia 80 serverikoneeseen. Lisäksi sisäverkosta pitäisi http://intranet osoitteella päästä intranettiin (Esim. /var/www/intranet) joka olisi salasanasuojattu.
Olisiko jotain järkevämpää keksintöä olemassa? Minusta tämä tuntuu todella hankalalta. Jos ADSL-modeemi osaisi reitittää oikein, niin se olisi hyvä.
Entä miten saisin koneille toimivat kiinteät IP-osoitteet? Windowsin puolella ainakin voi valita verkkoasetuksista, että käyttääkö automaattisesti DHCP-palvelimen antamaa IP-osoitetta vai valitseeko oman. Tarkoitus olisi seuraava:
Yläkerrassa 192.168.3.xxx IP-osoitteet
Keskikerroksessa 192.168.2.xxx IP-osoitteet
Alakerrassa 192.168.1.xxx IP-osoitteet
Miten tämä kannattaisi tehdä järkevästi? Saisiko jotenkin vieraskoneille, joille ei ole annettu kiinteää IP-osoitetta, IP-osoitteen 192.168.4.xxx?
Kiinteät sisäverkon IP-osoitteet auttavat tiedonsiirrossa, ja ei mene koneet sekaisin. Lisäksi kummassakin tapauksessa (DNS-serveri ja mahdollisesti ADSL-modeemin reititys) on parempi olla ainakin serverikoneella kiinteä IP.
Itse olisin vaihtoehto b:n kannalla, eli ADSL-modeemi alkaisi toimimaan kunnolla.
Jos puhutaan vaihtoehdosta a) DNS-serveri, niin miten kannattaisi toteuttaa, että ylläoleva toteutuisi järkevästi ja helposti?
Edit. ADSL-modeemin malli on TW-EA501 versio 3, Telewelin modeemi.
Onko järkevä tapa asentaa bind9 serveriin, ja muokata configure-tiedostoa ja laittaa se ohjaamaan http://intranet jonnekkin?
Miten DNS-serveristä ohjataan liikenne sitten taas ulos? Ei nettiyhteys voi siihenkään pysähtyä. Koska ADSL-modeemin reititys ei toimi (JulkinenIP:portti80 -> sisäIP:80) niin tämä meni hankalaksi. Lisäksi Telewelissä ei ole http-forwarderia.
Luitko niitä aiempia vastauksia ollenkaan? Et ilmeisesti vieläkään ymmärrä DNS-palvelimen roolia verkkoyhteyksissä, vaikka tämä kaikki on käyty läpi jo moneen kertaan.
Luin vielä aikaisemmasta aiheesta viestisi uudelleen läpi.
Reitittimestä voi määrittää DNS-palvelimen toisaalle. Jos kone on ihan normaalisti nettiyhteyden päässä, tarvitaanko mitään muuta kun DNS-kyselyt ohjataan ja DNS-palvelin toimii?
Eli, ei tarvita mitään ylimääräisiä verkkokortteja, kuten joku täälläpäin keksi?
Koneessa on Bind9, koska en tarvitse DHCP-serveriä.
Ohjeen kohta:
// Replace the IP address with the right IP addresses. www IN A 192.168.0.2 mta IN A 192.168.0.3 ns1 IN A 192.168.0.1
Laitetaanko joka kohtaa serverikoneen IP? Koneessa pyörii DNS, WWW ja Intranet.
Nyt "dig intranet" näyttää tuloksen:
; <<>> DiG 9.6.1-P2 <<>> intranet ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 11078 ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;intranet. IN A ;; Query time: 0 msec ;; SERVER: 192.168.0.20#53(192.168.0.20) ;; WHEN: Thu Apr 8 16:23:43 2010 ;; MSG SIZE rcvd: 26
Tämän pitäisi toimia siten, että DNS kyselyt kysytään palvelimelta ja http://intranet haetaan /var/www/intranet. Loput kyselyt ohjataan eteenpäin. Ohjeen mukaan ne pitäisi ohjata palveluntarjoajan nimipalvelimelle, johon ne olen ohjannut.
Telewell kertoo, että DNS-serveri olisi Elisan DNS-serveri. Olen määrittänyt ensisijaiseksi DNS-serveriksi serverikoneen (192.168.0.20). Tiedostossa /etc/bind/named.conf.options on forwarder, joka ohjaa Elisan 1. nimipalvelimelle.
Luulen, että Elisan nimipalvelimelle ohjaus tapahtuu ennen kuin http://intranet osoite ehditään selvittää. Mihin voin määrittää http://intranet -osoitteen ohjauksen /var/www/intranet-kansioon?
nls.intranet ja mta.intranet ovat joitain ihmeellisyyksiä. Ne olen määrittänyt myös tiedostoihin, kuten ohjeessa käsketään.
Mitähän mahdoin aiemmin sanoa tuosta DNS:n ja HTTP:n yhteydestä? Viestisi perusteella et tainnut vieläkään sisäistää sitä, kun vieläkin jaksat jauhaa niistä ihan sekaisin.
Kuten näet tulosteesta, kysely lähetettiin ihan oikein palvelimelle 192.168.0.20. Status SERVFAIL vihjaisi, että palvelimella sattui jokin virhe. Kai olet käynnistänyt DNS-palvelimen uudestaan asetusten säätämisen jälkeen? Seuraavaksi kannattaa varmaan tutkia sen lokitiedostoa, joka löytynee sovinnaisesta lokihakemistosta /var/log.
Jos olisit pystyttänyt ehdottamani dnsmasq-palvelimen, kaikki ehkä toimisi jo. Tarjosin siihen käytännöllisesti katsoen valmiita asetuksiakin.
Olet oikeassa, että saattaisin olla jo valmis käyttäessäni tuota dnsmasq-ohjelmaa.
Millanien Apachen konfigurointitiedoston tulisi olla, että se osaisi hakea kaikki siltä kysytyt sivut osoitteesta /var/www/haettusivu? Kuten sinulla siis.
Edit. Miksi saan kokoajan tietää nslookupilla, että sivua ei löydy? Saan viestin:
Server: 192.168.0.254 Address: 192.168.0.254#53 ** server can't find xxx: NXDOMAIN
NXDOMAIN on Non-existent domain? Eli sitä ei löydy. Mitä pitäisi tehdä?
DNS-kyselyt ohjataan serveriin, jossa pyörii dnsmasq. Asetustiedosto on myös lyhyt:
resolv-file=/etc/resolv.conf.real address=/sensuroitu.osoite/192.168.0.105
Muokkaus. Edistystä, edistystä! Nyt nslookup palauttaa DNS-serverinä ko. serverikoneen, mutta väittää ettei sivua löydy. Mitä tehdä?
Muokkasin asetustiedostoa (/etc/dnsmasq.conf) sen verran, että otin ensimmäisen rivin pois. Koitan vielä ilman real päätettä.
Ja takapakkia: Vain Ubuntusta saa yhteyden dnsmasq-serveriin. Muut koneet sanovat, että ensisijaiseen DNS-palvelimeen ei saada yhteyttä, ja otetaan yhteys toissijaiseen. Mistä sellainen johtuu? Ubuntun palomuuri (ufw) ei ole käytössä, eikä muitakaan ole asennettu.
Lisäksi toiseksi viimeisessä lauseessa on virhe, en minä tuota tiedostoa muokannut.
Macro kirjoitti:
Nyt nslookup ... väittää ettei sivua löydy.
Siis mitä väittää? Sivuilla ei edelleenkään ole mitään tekemistä DNS:n kanssa.
Käyttävätkö ne muut koneet nyt varmasti oikeaa DNS-palvelinta? Salliiko Ubuntu yhteydet kyseiseen porttiin? (Aja nc -u palvelimen-ip 53
ja kokeile syöttää jotain, niin näet, tuleeko ilmoitus "connection refused".)
Entä käyttääkö dnsmasq itse järkeviä palvelimia? Mitä laitoit resolv.conf.real-tiedostoon? (Neuvoin senkin jo kertaalleen, samoin resolv.conf-tiedoston uuden sisällön. Kai ymmärrät, mitä varten nämä kaksi tiedostoa ovat?)
Eipä oteta enään enempää kantaa tuohon sivujen löytymiseen. Minun virheeni. :)
Luulisin, että nyt portti 53, ja kaikki muutkin tarvittavat ovat täysin auki.
Olen mennyt nyt jossain vaiheessa sekaisin: Mihin tiedostoon pitäisi laittaa nimipalvelimen omat säädökset, eli kertoa jonkin domainin uusi osoite?
resolv.conf:
domain sensuroitu search sensuroitu nameserver 192.168.0.105 nameserver 192.168.0.254
Minulla ei edes ole resolv.conf.real-tiedostoa. Jos haluan kertoa jotakin domainia etsittäessä, että sen osoite olisikin palvelimen IP, niin mihin tiedostoon se pitäisi laittaa?
Resolv.conf kertoo siis missä ovat nimipalvelimet, mutta mihin tarkoitukseen resolv.conf.real on?
Ps. Tietääkö joku ADSL-modeemia, josta löytyisi mahdollisuus tähän & toimiva porttiohjaus? Budjetilla 100€.
Tiedosto resolv.conf kertoo tavallisille ohjelmille, mistä tietoja kysellään. Siihen kuuluu nykyään sinun oman DNS-palvelimesi osoite, palvelimella itsellään siis vaikka 127.0.0.1. Tiedosto resolv.conf.real taas sisältää ne nimipalvelimet, joita dnsmasq käyttää niiden osoitteiden selvittämiseen, joita ei ole erikseen listattu sen omaan asetustiedostoon. Jälkimmäisen nimen voit päättää ihan vapaasti, kunhan muutat sen myös dnsmasq:n asetuksista.
$ cat /etc/resolv.conf nameserver 127.0.0.1 $ cat /etc/resolv.conf.real nameserver 123.456.789.123 # jokin oikea nimipalvelin $ grep "^[^#]" /etc/dnsmasq.conf resolv-file=/etc/resolv.conf.real # oikeita nimipalvelimia address=/omasivu.dy.fi/10.0.0.1 # oma domain, oma palvelin
Kolme tiedostoa, neljä riviä. Onko tässä vielä jotain epäselvää?
Olen tehnyt ihan kuten olet kertonut. Jostain syystä, kun käynnistän networkingin uudelleen (sudo /etc/init.d/networking restart), niin resolv.conf palautuu peruslukemille. Lisäsin resolv.conffiin noin kun näytit, ja sitten sinne palautuu tekstit
domain sensuroitu search sensuroitu nameserver 192.168.0.254
Lisäksi ADSL-modeemista on nimipalvelimeksi määrätty tämä kone.
Muokkaus! Yleensä kun jotain asetuksia tehdään, niin ohjelma/tms. täytyy käynnistää uudelleen, että asetukset tulevat voimaan. Uudelleenkäynnistys vaihtaa DSN-palvelimen ADSL-modeemiksi.
Lisäksi tämmöinen lisätieto, jos auttaa:
$ dig 192.168.0.105 ; <<>> DiG 9.6.1-P2 <<>> 192.168.0.105 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 36279 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;192.168.0.105. IN A ;; ANSWER SECTION: 192.168.0.105. 0 IN A 192.168.0.105 ;; Query time: 11 msec ;; SERVER: 192.168.0.105#53(192.168.0.105) ;; WHEN: Fri Apr 9 15:24:10 2010 ;; MSG SIZE rcvd: 47
Ai, et siis ole asettanut palvelimelle itse verkkoasetuksia vaan käytät yhä DHCP:tä? Pidin selvänä, että palvelin olisi asetettu käsin; se olisi vähintäänkin loogista, kun se itse jakaa DNS:llä omaa osoitettaan. Kaipa sen noinkin saa toimimaan. Mutta mitä se resolv.conf.real nykyään sisältää? Toivottavasti ei ADSL-modeemin osoitetta, siitähän tulisi silmukka...
Noh, asetin verkkoasetukset käsin, mutta ei se silti mitään auttanut.
resolv.conf.real sisältää Elisan nimipalvelimien osoitteet.
nameserver 193.229.0.40 nameserver 193.229.0.42
Tilanne on näin: ADSL-modeemista on asetettu DNS-kyselyt ohjattavaksi serverille. Serveri hakee ne ensin omasta tiedostostaan, ja jollei löytynyt niin lähettää ne Elisalle. Yhteys on lisäksi aivan järjettömän hidas. Minkäänlaista silmukkaa ei ole.
Lisäksi, nyt nslookup kyselyt palauttavat ";; connection timed out; no servers could be reached
".
Kokeilinpa kotona ihan piruuttani:
1. DSL-boksin konffeista (Buffalo WBMR-G125 192.168.11.1 "gateway") "Static DNS 1": 192.168.11.2
2. Palvelinkoneesta (192.168.11.2 "sakura") dnsmasqin käynnistysparametreihin -E --domain=blaze.dyndns.ws
, sakuran /etc/hosts-tiedostossa on sen, DSL-boksin ja verkon toisen kiinteällä IP-osoitteella varustetun koneen (192.168.11.4 "mai") osoitteet.
3. Työläppäri DHCP:llä (DHCP-palvelin on 192.168.11.1 "gateway") verkkoon,
karrika@dango ~ $ cat /etc/resolv.conf # generated by NetworkManager, do not edit! domain anvianet.fi search anvianet.fi nameserver 192.168.11.2 nameserver 81.209.27.12 nameserver 81.209.27.20 # NOTE: the glibc resolver does not support more than 3 nameservers. # The nameservers listed below may not be recognized. nameserver 81.209.27.28 karrika@dango ~ $ dig mai ; <<>> DiG 9.4.3-P5 <<>> mai ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 47602 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;mai. IN A ;; ANSWER SECTION: mai. 0 IN A 192.168.11.4 ;; Query time: 17 msec ;; SERVER: 192.168.11.2#53(192.168.11.2) ;; WHEN: Fri Apr 9 20:01:17 2010 ;; MSG SIZE rcvd: 37
Ainoa fiba tässä viien minuutin konffissa tuntuu olevan se, että sisäverkon verkkonimet toimii muualla kuin digissä vaan muodossa "nimi." tai "nimi.blaze.dyndns.ws", pelkkä "nimi" ei siis pelaa.
Edit: ah, ja toinen on se, että kiinteällä IP:llä varustetut koneet ei nää tuon DHCP:llä verkkoon tulevan nimeä. Arvatenkin, koska DHCP ja DNS on eri koneilla. Noh, säädän joskus lisää jos sattuu nappasemaan.
En nää näin äkkiä dnsmasqin man-sivulta, millä tuon korjaisi, oisin luullu, että se oli just tuo -E. Osaako joku heittää lonkalta, mitä sille syötän, että homma toimii?
Koitan nyt pystyttää sen DNS-palvelimen ihan omin voimin.
Aihe on jo aika vanha, joten et voi enää vastata siihen.