Snúið svæðisúthlutun til undirneta minna en /24 í BIND. Hvernig það virkar

Dag einn stóð ég frammi fyrir því verkefni að gefa einum af viðskiptavinum mínum rétt til að breyta PTR færslum á /28 undirnetinu sem honum var úthlutað. Ég er ekki með sjálfvirkni til að breyta BIND stillingum að utan. Þess vegna ákvað ég að fara aðra leið - að fela viðskiptavininum hluta af PTR svæði /24 undirnetsins.

Það virðist - hvað gæti verið einfaldara? Við skráum undirnetið einfaldlega eftir þörfum og beinum því á viðkomandi NS, eins og gert er með undirlén. En nei. Þetta er ekki svo einfalt (þótt það sé í raun og veru almennt frumstætt, en innsæi mun ekki hjálpa), þess vegna er ég að skrifa þessa grein.

Allir sem vilja finna út úr því geta lesið RFC
Hver vill tilbúna lausn, velkominn í kött.

Til að tefja ekki þá sem líkar við copy-paste aðferðina mun ég fyrst birta verklega hlutann og síðan bóklega hlutann.

1. Æfðu þig. Umboðssvæði /28

Segjum að við höfum undirnet 7.8.9.0/24. Við þurfum að úthluta undirnetinu 7.8.9.240/28 til dns viðskiptavinur 7.8.7.8 (ns1.client.lén).

Á DNS þjónustuveitunnar þarftu að finna skrá sem lýsir andstæða svæði þessa undirnets. Láttu það vera 9.8.7.in-addr.harpa.
Við gerum athugasemdir við færslur frá 240 til 255, ef einhverjar eru. Og í lok skrárinnar skrifum við eftirfarandi:

255-240  IN  NS      7.8.7.8
$GENERATE 240-255 $ CNAME $.255-240

ekki gleyma að auka serial svæði og gera

rndc reload

Þetta lýkur þjónustuhlutanum. Við skulum halda áfram að dns viðskiptavinarins.

Fyrst skulum við búa til skrá /etc/bind/master/255-240.9.8.7.in-addr.arpa eftirfarandi efni:

$ORIGIN 255-240.9.8.7.in-addr.arpa.
$TTL 1W
@                       1D IN SOA       ns1.client.domain. root.client.domain. (
                        2008152607      ; serial
                        3H              ; refresh
                        15M             ; retry
                        1W              ; expiry
                        1D )            ; minimum
@                       IN NS        ns1.client.domain.
@                       IN NS        ns2.client.domain.
241                     IN PTR          test.client.domain.
242                     IN PTR          test2.client.domain.
245                     IN PTR          test5.client.domain.

Og í nefndur.conf bættu við lýsingu á nýju skránni okkar:

zone "255-240.9.8.7.in-addr.arpa." IN {
        type master;
        file "master/255-240.9.8.7.in-addr.arpa";
};

B endurræstu bindingarferlið.

/etc/init.d/named restart

Allt. Nú geturðu athugað.

#>  host 7.8.9.245 
245.9.8.7.in-addr.arpa is an alias for 245.255-240.9.8.7.in-addr.arpa.
245.255-240.9.8.7.in-addr.arpa domain name pointer test5.client.domain.

Vinsamlegast athugaðu að ekki aðeins PTR skráin er gefin upp heldur einnig CNAME. Þannig á það að vera. Ef þú ert að velta fyrir þér hvers vegna, þá velkominn í næsta kafla.

2. Kenning. Hvernig það virkar.

Það er erfitt að stilla og kemba svartan kassa. Það er miklu auðveldara ef þú skilur hvað er að gerast inni.

Þegar við framseljum undirlén á léni lén, þá skrifum við eitthvað á þessa leið:

client.domain.	NS	ns1.client.domain.
ns1.client.domain.	A	7.8.7.8

Við segjum öllum sem spyrja að við berum enga ábyrgð á þessari síðu og segjum hver ber ábyrgðina. Og allar beiðnir um viðskiptavinur.lén beina til 7.8.7.8. Við athugun sjáum við eftirfarandi mynd (við sleppum því sem viðskiptavinurinn hefur þar. Það skiptir ekki máli):

# host test.client.domain
test.client.domain has address 7.8.9.241

Þeir. okkur var tilkynnt að það væri svona A met og ip hennar er 7.8.9.241. Engar óþarfa upplýsingar.

Hvernig er hægt að gera það sama með undirneti?

Vegna þess að DNS þjónninn okkar er skráður í RIPE, svo þegar beðið er um PTR IP tölu frá netinu okkar, þá mun fyrsta beiðnin samt vera til okkar. Rökfræðin er sú sama og með lén. En hvernig seturðu undirnet inn í svæðisskrá?

Við skulum reyna að slá það inn svona:

255-240  IN  NS      7.8.7.8

Og... kraftaverkið gerðist ekki. Við erum ekki að fá neina framsendingu beiðni. Málið er að bind veit ekki einu sinni að þessar færslur í öfugu svæðisskránni eru IP tölur og skilur örugglega ekki sviðsfærsluna. Fyrir honum er þetta bara einhvers konar táknrænt undirlén. Þeir. fyrir binda verður enginn munur á "255-240"Og"ofurviðskiptavinur okkar". Og til að beiðnin fari þangað sem hún þarf að fara ætti heimilisfangið í beiðninni að líta svona út: 241.255-240.9.8.7.in-addr.arpa. Eða svona ef við notum staf undirlén: 241.ofurviðskiptavinur okkar.9.8.7.í-addr.arpa. Þetta er öðruvísi en venjulega: 241.9.8.7.in-addr.harpa.

Það verður erfitt að gera slíka beiðni handvirkt. Og jafnvel þótt það virki, þá er enn óljóst hvernig á að beita því í raunveruleikanum. Eftir allt saman, eftir beiðni 7.8.9.241 DNS þjónustuveitunnar svarar okkur enn, ekki viðskiptavinarins.

Og þetta er þar sem þeir koma við sögu CNAME.

Hjá þjónustuveitunni þarftu að búa til samnefni fyrir allar IP-tölur undirnetsins á sniði sem mun senda beiðnina til viðskiptavinar DNS.

255-240  IN  NS      ns1.client.domain.
241     IN  CNAME   241.255-240
242     IN  CNAME   242.255-240
и т.д.

Þetta er fyrir duglega =).

Og fyrir lata hentar hönnunin hér að neðan betur:

255-240  IN  NS      ns1.client.domain.
$GENERATE 240-255 $ CNAME $.255-240

Óskaðu nú eftir upplýsingum kl 7.8.9.241 á 241.9.8.7.in-addr.harpa á DNS netþjóni þjónustuveitunnar verður breytt í 241.255-240.9.8.7.in-addr.arpa og fer í dns biðlarann.

Viðskiptavinurinn mun þurfa að sinna slíkum beiðnum. Í samræmi við það búum við til svæði 255-240.9.8.7.in-addr.arpa. Í henni getum við, í grundvallaratriðum, sett öfugar færslur fyrir hvaða ip sem er í öllu /24 undirnetinu, en þeir munu aðeins spyrja okkur um þær sem veitandinn sendir okkur áfram, svo við getum ekki spilað í kringum okkur =).
Til að útskýra mun ég enn og aftur gefa dæmi um innihald öfugs svæðisskrár frá viðskiptavininum:

$ORIGIN 255-240.9.8.7.in-addr.arpa.
$TTL 1W
@                       1D IN SOA       ns1.client.domain. root.client.domain. (
                        2008152607      ; serial
                        3H              ; refresh
                        15M             ; retry
                        1W              ; expiry
                        1D )            ; minimum
@                       IN NS        ns1.client.domain.
@                       IN NS        ns2.client.domain.
241                     IN PTR          test.client.domain.
242                     IN PTR          test2.client.domain.
245                     IN PTR          test5.client.domain.

Það er vegna þess að við notum CNAME á hlið þjónustuveitunnar og sem svar við beiðni um gögn eftir IP-tölu fáum við tvær skrár, ekki eina.

#>  host 7.8.9.245 
245.9.8.7.in-addr.arpa is an alias for 245.255-240.9.8.7.in-addr.arpa.
245.255-240.9.8.7.in-addr.arpa domain name pointer test5.client.domain.

Og ekki gleyma að stilla ACL rétt. Vegna þess að það þýðir ekkert að taka PTR svæði fyrir sjálfan sig og svara engum að utan =).

Heimild: www.habr.com

Bæta við athugasemd