· 4 in h a l t sv er zei c n is 7 a us bl i c k 91 7. 1 e rw ei teru n gs - u dv er b esseru gs m...
TRANSCRIPT
![Page 1: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/1.jpg)
T E C H N I S C HE
UNI VE RS I T �AT
M �U N C H E N
I NSTI TUT F�UR I NFORMATI K
Diplomarbeit
Integration des Managements desDomai n-Name- Systems i n di e
vorhandene Managementumgebungdes Lei bni z- Rechenzentrums (LRZ)
Heiko Hauck
![Page 2: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/2.jpg)
T E C HN I S C HE
UNI VE RS I T �AT
M �U N C H E N
I NSTI TUT F �UR I NFORMATI K
Diplomarbeit
I ntegrati on des Managements desDomai n- Name- Systems i n di e
vorhandene Managementumgebungdes Lei bni z- Rechenzentrums (LRZ)
Bearbeiter: Hei ko HauckAufgabenstell er: Prof . Dr. Hei nz-Gerd Hegeri ng
Betreuer: Di pl . Inf orm. Ki rsten Hei l erDr. Robert Val ta
Abgabetermi n: 15. November 1994
![Page 3: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/3.jpg)
Erkl �arung
Hi ermi t erkl �are i ch, da� i chdi e vorl i egende Arbei t sel bst�andi g ange-f erti gt und nur di e angegebenenQuel l en undHi l f smi ttel verwendet
habe.
M�unchen, den 9. November 1994
(Hei ko Hauck)
![Page 4: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/4.jpg)
Inhaltsverzeichni s
Abbildungsverzei chni s 5
1 Ei nl ei tung 7
1.1 Motivati on : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 7
1. 2 Vorgehenswei se : : : : : : : : : : : : : : : : : : : : : : : : : : : : 9
2 Ei nf�uhrung i n das Domai n Name Sys t em 11
2. 1 Moti vati on : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 11
2. 2 Fr�uheres Verfahren : : : : : : : : : : : : : : : : : : : : : : : : : : 12
2. 3 Das Domai n Name System : : : : : : : : : : : : : : : : : : : : : : 14
2. 3. 1 Vertei lung der Inf ormati on : : : : : : : : : : : : : : : : : : 14
2. 3. 2 Hi erarchi scher Namensraum : : : : : : : : : : : : : : : : : 14
2. 3. 3 Zugri � ei ner Anwendung auf DNS-Inf ormati onen : : : : : 16
3 Kon�gurat i on ei ner DNS-Umgebung 19
3. 1 Untertei l ung der DNS-Gesamti nf ormati on : : : : : : : : : : : : : 19
3. 2 Kon�gurati onsdatei en : : : : : : : : : : : : : : : : : : : : : : : : 21
3. 2. 1 Nameserverkon�gurati on : : : : : : : : : : : : : : : : : : : 22
3. 2. 2 Zonenkon�gurati on : : : : : : : : : : : : : : : : : : : : : : 23
3. 2. 3 Resol verkon�gurati on : : : : : : : : : : : : : : : : : : : : : 2
1
![Page 5: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/5.jpg)
2 INHALTSVERZEI CHNI S
4 Anf . an das Mgmt . ei nes Names erv. - Verbundes 27
4. 1 Bedeutung des Managements : : : : : : : : : : : : : : : : : : : : 28
4. 2 Notwendi gkei t des Managements bzgl . des DNS : : : : : : : : : : 29
4. 3 DNS-Management aus Betrei bersi cht : : : : : : : : : : : : : : : : 30
4. 3. 1 Auf gaben : : : : : : : : : : : : : : : : : : : : : : : : : : : 30
4. 3. 2 Anf orderungen : : : : : : : : : : : : : : : : : : : : : : : : 31
4. 3. 3 Umsetzung : : : : : : : : : : : : : : : : : : : : : : : : : : 33
4. 4 Integrati onsans�atze : : : : : : : : : : : : : : : : : : : : : : : : : : 37
4. 4. 1 Internet-Management f �ur das DNS : : : : : : : : : : : : : 38
4. 4. 2 Anbi ndung des DNS an ei n Dokumentati onssystem : : : : 40
4. 5 Anf ord. an ei ne Umgebung f �ur DNS-Kon�g. Mgmt. : : : : : : : : : 41
4. 5. 1 Zentral e Kon�gurati on vertei l ter Nameserver : : : : : : : : 41
4. 5. 2 Val i di erung von �Anderungen, Lebenszei t : : : : : : : : : : 41
4. 5. 3 Automati sche Rekon�gurati on bei �Anderungen : : : : : : : 43
5 DNS- Kon�g. mi t der Net zdok. - Dat enbank 45
5. 1 Di e vorhandene Netzdokumentati onsdatenbank : : : : : : : : : : 46
5. 1. 1 �Ubersi cht : : : : : : : : : : : : : : : : : : : : : : : : : : : 46
5. 1. 2 DNS- rel evante Rel ati onen : : : : : : : : : : : : : : : : : : 47
5. 1. 3 Kri t i k an den vorhandenen Rel ati onen : : : : : : : : : : : 50
5. 2 Anf orderungen an das Datenbankdesi gn : : : : : : : : : : : : : : 51
5. 2. 1 Hosts : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 52
5. 2. 2 Zonen : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 52
5. 2. 3 Nameserver : : : : : : : : : : : : : : : : : : : : : : : : : : 54
5. 2. 4 Resol ver : : : : : : : : : : : : : : : : : : : : : : : : : : : : 56
5. 3 Das Datenbankdesi gn : : : : : : : : : : : : : : : : : : : : : : : : : 57
5. 3. 1 Enti ty/Rel ati onshi p Model l : : : : : : : : : : : : : : : : : 5
5. 3. 2 Di e Objekte (Enti t i es) und deren Umsetzung i n Tabel l en :
5. 3. 3 Di e Bezi ehungen (Rel ati onshi ps) und deren Integrati on idi e Tabel l en : : : : : : : : : : : : : : : : : : : : : : : :
![Page 6: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/6.jpg)
I NHALTSVERZEI CHNI S 3
5. 4 Integrati on i n vorhandene Datenbank : : : : : : : : : : : : : : : : 62
5. 4. 1 HOSTS (neu) ! KOMPONENTE(al t) : : : : : : : : : : 62
5. 4. 2 HOSTS (neu) ! LOGPORT(al t) : : : : : : : : : : : : : : 63
5. 4. 3 ZONES (neu) ! PERSON(al t) : : : : : : : : : : : : : : : 65
5. 4. 4 ZONES (neu) ! INSTITUT(al t) : : : : : : : : : : : : : : 65
5. 5 Organi satori sche Probl eme : : : : : : : : : : : : : : : : : : : : : : 65
5. 5. 1 Ei ngabe der DNS-Daten i n di e Datenbank : : : : : : : : : 66
5. 5. 2 Vertei l ung der Kon�gurati onsdatei en : : : : : : : : : : : : 67
5. 5. 3 Zugri � auf Nameserver- Proze� : : : : : : : : : : : : : : : : 68
6 Impl ement i erung 69
6. 1 Auf bau der Rel ati onen : : : : : : : : : : : : : : : : : : : : : : : : 70
6. 1. 1 Modi �zi erte Tabel l e : : : : : : : : : : : : : : : : : : : : : : 71
6. 1. 2 Host-Tabel l en : : : : : : : : : : : : : : : : : : : : : : : : : 71
6. 1. 3 Zonen-Tabel l en : : : : : : : : : : : : : : : : : : : : : : : : 73
6. 1. 4 Nameserver-Tabel l en : : : : : : : : : : : : : : : : : : : : : 76
6. 2 Anf orderungen an das Werkzeug : : : : : : : : : : : : : : : : : : : 79
6. 2. 1 Inf ormati ons u� : : : : : : : : : : : : : : : : : : : : : : : : 79
6. 2. 2 Fl exi bi l i t�at und Komf ort : : : : : : : : : : : : : : : : : : : 81
6. 3 Programmauf bau : : : : : : : : : : : : : : : : : : : : : : : : : : : 82
6. 3. 1 Hauptprogramm : : : : : : : : : : : : : : : : : : : : : : : 82
6. 3. 2 Unterprogramme : : : : : : : : : : : : : : : : : : : : : : : 84
6. 4 Programmodul e : : : : : : : : : : : : : : : : : : : : : : : : : : : : 84
6. 4. 1 Verzei chni sbaumauf bauen : : : : : : : : : : : : : : : : : : 85
6. 4. 2 Resol verkon�gurati on : : : : : : : : : : : : : : : : : : : : : 85
6. 4. 3 Nameserverkon�gurati on : : : : : : : : : : : : : : : : : : : 85
6. 4. 4 Zonenkon�gurati on f �ur Forward Mappi ng : : : : : : : : : : 86
6. 4. 5 Zonenkon�gurati on f �ur Reverse Mappi ng : : : : : : : : : : 87
6. 4. 6 Loopback Interf ace (127. 1 ! l ocal host) : : : : : : : : : : : 88
6. 4. 7 Loopback Interf ace (l ocal host ! 127. 1) : : : : : : : : : : : 88
6. 4. 8 Root- Zonenkon�gurati onsdatei hol en : : : : : : : : : : : : 88
6. 5 Ei n- und Ausgabe des Prog. anhand ei nes Bsp. : : : : : : : : : : : 88
![Page 7: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/7.jpg)
4 I NHALTSVERZEI CHNI S
7 Aus bl i ck 91
7. 1 Erwei terungs- und Verbesserungsm�ogl i chkei ten : : : : : : : : : : : 92
7. 2 Ei nbi ndung i n ei ne Managementpl attf orm : : : : : : : : : : : : : 95
ALi s t i ngs 99
A. 1 Kon�gurati onsdatei . ora2dnsrc : : : : : : : : : : : : : : : : : : : : 99
A. 2 Hauptprogrammora2dns : : : : : : : : : : : : : : : : : : : : : : : 101
A. 3 Modul ora2dns. pl : : : : : : : : : : : : : : : : : : : : : : : : : : : 109
A. 4 Modul make di r. pl : : : : : : : : : : : : : : : : : : : : : : : : : : 116
A. 5 Modul res conf . pl : : : : : : : : : : : : : : : : : : : : : : : : : : : 119
A. 6 Modul named boot. pl : : : : : : : : : : : : : : : : : : : : : : : : : 125
A. 7 Modul named f orward. pl : : : : : : : : : : : : : : : : : : : : : : : 130
A. 8 Modul named reverse. pl : : : : : : : : : : : : : : : : : : : : : : : 144
A. 9 Modul named l ocal . pl : : : : : : : : : : : : : : : : : : : : : : : : : 154
A. 10 Modul named l oopback. pl : : : : : : : : : : : : : : : : : : : : : : 155
A. 11 Modul named cache. pl : : : : : : : : : : : : : : : : : : : : : : : : 157
B Dat enbank { Bei s pi el 161
C Gener i er t e Kon�g. - Dat ei en { Bei s pi el e 165
C. 1 Resol verkon�gurati on : : : : : : : : : : : : : : : : : : : : : : : : : 165
C. 2 Nameserverkon�gurati on : : : : : : : : : : : : : : : : : : : : : : : 165
C. 3 Zonenkon�gurati on (Forward Mappi ng) : : : : : : : : : : : : : : : 166
C. 4 Zonenkon�gurati on (Reverse Mappi ng) : : : : : : : : : : : : : : : 167
Li t er at urver zei chni s 16
![Page 8: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/8.jpg)
Abbi l dungsverzei chni s
2. 1 Vertei l ung von HOSTS.TXT : : : : : : : : : : : : : : : : : : : : : 13
2. 2 Hi erarchi scher Namensraum(Tei l baum) : : : : : : : : : : : : : : : 15
2. 3 Inf ormati ons u� (DNS-Anf ragen) : : : : : : : : : : : : : : : : : : 16
3. 1 Untertei l ung der DNS- Inf ormati on : : : : : : : : : : : : : : : : : 20
3. 2 Kon�gurati onsdatei en: Bootdatei und Zonendatei en : : : : : : : : 21
4. 1 Ei nsatz des Generi erungsskri pts df2hf : : : : : : : : : : : : : : : : 34
4. 2 DNS i n der MIB- 2 des Internet-Regi str i erungsbaumes : : : : : : : 39
4. 3 Netzdokumentati onsdatenbank : : : : : : : : : : : : : : : : : : : : 40
5. 1 Schema der bestehenden Datenbank : : : : : : : : : : : : : : : : : 47
5. 2 Zu managende Obj ektkl assen : : : : : : : : : : : : : : : : : : : : 51
5. 3 Enti ty/Rel ati onsshi p Model l : : : : : : : : : : : : : : : : : : : : : 58
6. 1 Inf ormati onsquel l en und - senken : : : : : : : : : : : : : : : : : : : 80
6. 2 Programmora2dns { �Ubersi cht : : : : : : : : : : : : : : : : : : : 83
6. 3 Getei l tes Subnetz : : : : : : : : : : : : : : : : : : : : : : : : : : : 86
7. 1 Ei nbi ndung i n ei ne Managementpl attorm : : : : : : : : : : : : : : 96
5
![Page 9: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/9.jpg)
6 ABBI LDUNGSVERZEI CHNI S
![Page 10: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/10.jpg)
Kapi tel 1
Ei nl ei tung
1.1 Motivat i on
Nach demBau des ersten Personal computers i n den 70er Jahren kames i mdar-au�ol genden Jahrzehnt zumal l gemei nen Durchbruch des Mi krocomputers. Sei -ne Vertreter waren kaumnoch aus B�uros, Labors, Banken, aber auch pri vatenWohnzi mmern mehr wegzudenken.
Was di esen Systemen amAnf ang aber wei tgehend noch f ehl te, war di e F�ahi gkei t ,mi tei nander zu kommuni zi eren. Es handel te si ch of t umi sol i erte Systeme, bei
denen di e Daten von Hand ei ngegeben oder mi ttel s zumei st magneti scher Daten-tr�ager gel aden werden mu�ten. Dadurch war ei n manuel l es Ei ngrei f en sei tens des
Anwenders bei Kommuni kati onsvorg�angen erf orderl i ch, was ei nen der wesentl i -chen Vortei l e der el ektroni schen Datenverarbei tung, di e (vol l st�andi ge) Automati -
s i erung vonArbei tsvorg�angen, zwar ni cht zuni chte machte, aber dennoch deutl i chei nschr�ankte.
Umei nen Datenaustausch zwi schen Rechnern ohne umst�andl i chen und l angwi e-r i gen Transport ei nes phyi schen Medi ums (Band, Di skette, : : : ) zu erm�ogl i chen,
wurden Kommuni kati onsnetze gescha�en. Deren Bedeutung hat i n den vergange-nen Jahren enormzugenommen. Auchwenn derzei t noch zwi schen l okal en (LAN)
und Wei tverkehrsnetzen (WAN) unterschi eden wi rd, so tragen moderne Hochge-schwi ndi gkei tstechnol ogi en wi e ATM(Asynchronous Transf er Mode) zu derenVermengung bei . Dami t wi rd es m�ogl i ch, di e i n l etzter Zei t vi el zi t i erten
"Da-
tenautobahnen\ zu real i s i eren, mi t denen vi el e heute erst begrenzt m�ogl iMul ti medi a-Anwendungen der brei ten Masse zug�angl i ch gemacht werden solda hi erf �ur ei ne enormhohe Bandbrei te erf orderl i ch i st .
Auf demWeg dorthi n m�ussen wi r uns aber noch mi t den Probl emen exi sder und erprobter Netze ausei nandersetzen, umdann mi t der daraus ge
7
![Page 11: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/11.jpg)
8 KAPI TEL 1. EI NLEI TUNG
Erf ahrung Neues scha�en zu k�onnen. Zu den genannten Netzen geh�ort al s ei nerder bekanntesten WAN-Vertreter das ARPA- Internet, das urspr�ungl i ch auf ei nForschungsproj ekt des ameri kani schen Vertei di gungsmi ni steri ums (DoD) zur�uck-geht, s i ch i n den vergangenen Jahren aber stark al s Forschungs- und Hochschul -
netz etabl i erte und i n j �ungster Zei t auch i mmer mehr f �ur kommerzi el l e Zweckegenutzt wi rd.
Di e vorl i egende Arbei t besch�af t i gt s i ch mi t demDomai n Name System(DNS),ei ner Anwendung auf demInternet. Dabei handel t es si ch umei n System, mi tdessen Hi l f e j edemRechner i mgesamten Netz ei n Name zugeordnet wi rd, durchden er gl obal ei ndeuti g i denti �zi ert werden kann. Dami t wi rd di e Verwendungumst�andl i cher Adressen (Zahl en) �uber �ussi g.
Derarti ge vertei l te Anwendungen { das Domai nName Systemwi rd durchRechnerreal i s i ert , di e i mganzen Netz vertei l t s i nd { si nd aber sehr kompl ex und dami t
f ehl ertr�achti g. Deshal b m�ussen M�ogl i chkei ten gescha�en werden, das System"i n
den Gri �\ zu bekommen, d. h. das Systemmu� gemanaget werden.
F�ur das Management bi eten si ch ei nersei ts i sol i erte, propri et�are und auf der andren Sei te i ntegri erte Verf ahren an. W�ahrend erstere �of ters verf �ugbar und
si nd, bi etet i ntegri ertes Management wei taus mehr Si cherhei t1 undi st deshal b vorzuzi ehen. Uml etzteres zu real i s i eren, bi eten si ch
verschi edene Wege an:
� Anbi ndung i sol i erter Werkzeuge und Verf ahren an eigri ertes Management. Hi erzu si nd Modul e zu entwihandenenWerkzeug auf setzen und ei ne Schni ttste
� Entwi ckl ung neuer Werkzeuge und Verf ahren,mentpl attf ormei ngebunden werden. Dabei mmanagenden Obj ektes ber�ucksi chti gt werde
ti onen demManager an der Pl attf ormabbl ei ben sol l en, sof ern er si e ni cht f �ur
Di e l etztgenannte Forderung l �a�t si chtems i n Formei ner Netzdokumentat
nen al l gemei n und unabh�angi g voche Komponenten oder Anwendun
Pl attf ormbzw. des (dari n enthal i ch.
AmLei bni z-Rechenzentrumi sttei l der l okal en Managementu
1Sicherhe i t i n Bezug auf K
![Page 12: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/12.jpg)
1. 2. VORGEHENSWEISE 9
Arbei t l i egt nun dari n, ei n Verf ahren zu entwi ckel n, das ei n Werkzeug enth�al t ,durch das das Domai n Name Systeman di e genannte Datenbank angebunden
wi rd, und so sei n Management erm�ogl i cht wi rd. Davon i st i n erster Li ni e dasKon�gurati onsmanagement betro�en, da di e Datenbank u. a. s�amtl i che zur Kon-�gurati on notwendi gen Inf ormati onen berei tstel l en sol l .
1. 2 Vorgehenswei se
In Kapi tel 2 wi rd zun�achst ei ne al l gemei ne Ei nf �uhrung i n das Domai n Name Sys-tem, denGegenstand di eser Arbei t , gegeben. Dabei wi rd gezei gt, wel ches Probl em
zu l �osen war, das l etztl i ch zur Ei nf �uhrung des DNS f �uhrte, wi e di eses vor und nachdessen Ei nf �uhrung gel �ost wurde, und wel che Vortei l e das DNS mi t si ch brachte.
Mi t demanschl i e�enden 3. Kapi tel wi rd ei ne Beschrei bung der Kon�gurati ondes Domai n Name Systems ei ngeschoben. Neben ei ner systemati schen Untertei -l ung der gesamten vomDNS zur Verf �ugung gestel l ten Inf ormati on wi rd anhandvon kl ei nen Bei spi el kon�gurati onsdatei en auf gezei gt, wi e man ei ne ei gene DNS-
Umgebung zumLauf en bri ngt.
Auch wenn deren Spezi �kati onen demNetzverwal ter l etzl i ch verborgen bl ei bensol l (vgl . Abschni tt 1. 1), so i st deren Kenntni s f �ur di e vorl i egende Arbei
erl �a�l i ch, umdas neu zu i mpl ementi erende Datenbankschema und Werkzeugstehen zu k�onnen. Di e Datei en stel l en di e systemn�aheste vomNetzverwal t
ei n u�bare Schi cht dar.
Mi t dem4. Kapi tel wi rd di esbez�ugl i ch ei n Schni tt gemacht. Nach der Bdes Managements al l gemei n und spezi el l f �ur das Domai n Name Systemwsen Management aus Betrei bersi cht, d. h. i n di esemFal l e aus der Si cAdmi ni strators, pr�asenti ert . Neben sei nen Auf gaben und den dami tAnf orderungen werden M�ogl i chkei ten auf gezei gt, di e Auf gaben umal l erdi ngs i sol i erter Natur si nd.
Deren Nachtei l e f �uhren zumi ntegri erten Management. Hi erftungswei sende Ans�atze pr�asenti ert , ei ner aus demBerei
ments und ei n anderer mi t Hi l f e ei nes Dokumentati onsRechenzentrumu. a. al s Netzdokumentati onsdatenban
nannte Ansatz wi rd bzgl . des Kon�gurati onsmanverf ol gt, weshal b amSchl u� di eses Kapi tel s
an di e Managementumgebung stel l en, genan
Di e Umsetzung di eses Verf ahrens i st Gegenne Netzdokumentati onsdatenbank vorhanabzul egen si nd, mu� man si ch zun�achs
![Page 13: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/13.jpg)
10 KAPI TEL 1 . EI NLEI TUNG
Unabh�angi g davon werden di e Anf orderungen an das Desi gn der neuen (zus�atzl i -chen) Datenbank gestel l t , bevor unter deren Ber�ucksi chti gung das Desi gn sel bst
entworf en wi rd. Anschl i e�end wi rd versucht, di e si ch ergebenden neuen Rel ati o-nen i n di e al ten zu i ntegri eren. Schl i e�l i ch gi l t es noch ei ni ge organi satori
Probl eme zu l �osen, bevor das Verf ahren ei ngesetzt werden kann.
Das 6. Kapi tel beschrei bt schl i e�l i ch di e Impl ementi erung des Verf ahrz�ahl t zumei nen das exakte Rel ati onenschema mi t ei ner Beschrei buAttri bute und zumanderen das Werkzeug, an das wi ederumei genegen gestel l t werden.
Das Werkzeug wi rd i n Formei nes Perl - Skri pts real i s i ert . Bbeschrei bung wi rd zun�achst ei ne �Ubersi cht pr�asenti ert , be
Modul e, aus denen es si ch zusammensetzt, ei ngegangeDemonstrati on der Ei n- und Ausgabe des Programms r
Das 7. Kapi tel gi bt schl i e�l i ch ei nen Ausbl i ck �uberzu tun i st . Dazu z�ahl en zumei nen m�ogl i che Erwgen des i mpl ementi erten Verf ahrens und zumandeManagementpl attf orm.
![Page 14: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/14.jpg)
Ka p i t e l 2
E i n f�u h r u n g i n d a s Doma i n
Sys t e m
Di eses Kapi tel besch�af t i gt s i ch mi t demDomai n Namment i n di eser Arbei t i n ei ne vorhandene Mangementumsol l . Dabei handel t es si ch umei ne Anwendung ausbekannte Anwendungen si nd z. B. NIS (Network Inf or(Network Fi l e System).
Zun�achst wi rd i n Abschni tt 2. 1 ei n Probl emvorgesammenhang mi t Kommuni kati onsnetzen auf tr i tt .Identi �zi erung der ei nzel nen tei l nehmenden Kommi t Zahl en arbei ten, i st es f �ur den Menschen l ei
Ei n L�osungsansatz zu di esemProbl em, wi e er vSystems zumEi nsatz kam, wi rd i n Abschni tt 2. 2di e Probl eme di eses Verf ahrens auf gezei gt,
gef unden werden mu�te.
Hi erbei handel t es si ch umdas Domai n Name�Uberbl i ck �uber di e dami t ei nhergehende I
schen Namensraumsowi e di e Art und WInf ormati onen zu den j ewei l gen Anwen
2. 1 Moti vat i on
Komponenten ei nes el ektroni schennumeri schenWert i denti �zi ert und a
Bei spi el i st das Tel ef onnetz del ef ons durch Ei ngabe von
![Page 15: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/15.jpg)
12 KAPI TEL 2 . EI NF�UHRUNG I N DAS DOMAI N NAME S YS TEM
Auch Computernetze kennen Adressen, di e j e nach verwendetemProtokol l un-terschi edl i ch ausf al l en. So verwendet zumBei spi el das i mLAN-Berei ch sehr ver-
brei tete Ethernet ei ne 48Bi t-Adresse, di e von den Herstel l ern der Adapterkartenbei deren Produkti on ei ndeuti g f estgel egt wi rd. Dami t i st dann si chergestel l t ,
unter ei n und dersel ben Adresse nur ei n ei nzi ger Rechner errei chbar i sVerwechsl ungen ausgeschl ossen werden.
ImARPA- Internet vernetzte Rechner verwenden das IP-Protokol l . Di egen IP-Adressen haben ei nen Umf ang von 32 Bi t und werden i n derdurch Punkte getrennte dezi mal e Bytewerte dargestel l t . So besi
spi el der Rechner, auf demgerade di eser Text ei ngegeben wi rd129. 187. 10. 20.
Numeri sche Adressen werden ei ngesetzt, da si e vomComputerbei tet werden k�onnen. Dagegen si nd si e f �ur den Benutzerda der Mensch i mal l gemei nen ei n besseres Namens- wi esi tzt. Umden Bed�urf ni ssen des Anwenders entgegenzudeswegen entschl ossen, f �ur Rechner auch al phanumeri s(Bei spi el : sun1) .
Dami t ei n sol cher Servi ce angeboten werden kann, idi g, der di e Namen auf di e numeri schen Adressen ab
wi rd al s Namensau �osung (Address Resol uti on) beti nen i mBetri ebssystemder Rechner al s Resol
Ei n wei terer Vortei l di eser Abbi l dung besRechner erhal ten bl ei ben k�onnen, wenn s
wei se bei mUmzug ei nes Rechners i n e
2. 2 Fr�uheres Verfah
Umdi e Address Resol uti on durchfHOSTS . TXT krei ert [Sant 93], d
IP-Adressen enthi el t . Di ese DNetwork Inf ormati on Cente
sei n, auf demunter Verwendbi ndung zu ei nemanderen Rectei l ungsproze� wurde mi t H
(si ehe Abbi l dung 2. 1).
Lokal wurde di e Dateiten dann di e bere
nehmen.
![Page 16: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/16.jpg)
2 . 2 . FR �UHERES VERFAHREN 13
ftp
ftp
ftp
ftpftp
ftp
/etc/hosts /etc/hosts
/etc/hosts /etc/hosts
/etc/hosts/etc/hosts
HOSTS.TXT
Rechner A Rechner B
Rechner C Rechner D
Rechner E Rechner F
zentr.Rechner(NIC)
Abbi l dung 2. 1: Vertei l ung von HOSTS . TXT
Di eses Verf ahren hatte aber entschei dende Nachtei l e [ Geor 93] :
� Ho h e Ne t zla s t d ur c h Ve r t e il u n gs pr o z e �Durch den Vertei l ungsproze� wurde das Netz betr�achtl i ch bel aste
sonders ung�unsti g war di e Tatsache zu werten, da� di e Netzldrati scher Kompl exi t�at O(n2) i n Bezug auf di e Zahl der Re
bei ei ner Verdoppel ung der Anzahl der Rechner di e Dateiso of t �uber das Netz geschi ckt werdenmu�te, sondern sverdoppel te.
� La n g s a me Re g i s t r i e r u n g vo n Mo d i �kaAl l e Daten wurden bei di esemVe
verwal tet. Das bedeutete, da�werdenmu�te und erst nach eganzen Netz bekannt wurdeInternet (i mJahre 1993 c
da� der notwendi geZei t erl edi gt werd
� Ko l l i s i o n eDbep
![Page 17: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/17.jpg)
14 KAPI TEL 2 . EI NF �UHRUNG I N DAS DOMAI N NAME S YS TEM
2. 3 Das Domai n Name System
Umden oben genannten Probl emen zu entgegnen, wurde i mJahre 1984 dasDomai n Name System(DNS) ei ngef �uhrt ([ RFC881] , [ RFC882] und [ RFC883] ) .
Dabei handel t es si ch umei nen Verzei chni sdi enst, bei demdi e Inf ormati onenni cht zentral , sondern vertei l t gespei chert werden, mi t ei nemhi erarchi schen statt
achen Namensraum.
Auf di ese Punkte sowi e auf das Verf ahren, wi e di ese Inf ormati on schl i e�l i ch dortverf �ugbar gemacht wi rd, wo si e ben�oti gt wi rd (Anwendung), wi rd i n den f ol -genden Abschni tten ei ngegangen. Dabei wi rd auch der sehr wi chti ge Begri � deNameservers erl �autert.
2.3.1 Verteilung der Information
Bei mDNS l i egt ei n �uber das ganze Netz vertei l tes Datenbanksystemvor. Di e In-f ormati on, wel cher Name auf wel che Adresse abzubi l den i st , wi rd (i n der Reg
von derj eni gen Organi sati on verwal tet und den anderen zur Verf �ugung gebei der si e auch tats�achl i ch anf �al l t . Dadurch wi rd das zwei te Probl e
same Regi str i erung von �Anderungen der DNS-Daten, gel �ost.
Bei spi el swei se verwal tet das Lei bni z-Rechenzentrum(LRZ) s�amtvanten Inf ormati onen bez�ugl i ch der ei genen Rechner sel bst. Ddas LRZ aber auch di esen Di enst f �ur ei nen Tei l der Bayeri schi st al so m�ogl i ch, di ese Auf gabe an andere zu �ubertragen
ni cht dami t besch�af t i gen kann bzw. wi l l .
2.3.2 Hierarchischer Namensraum
Das Probl emder Namenskol l s i onen l �a�t si chdadurch el i mi ni eren, i nnernamen ni cht ach, sondern i n ei ner Baumstruktur hi erachi sch aden (Tei l baumsi ehe Abbi l dung 2. 2).
Di e Namen setzen si ch aus demHostnamen, al so demNamenRechners (zumBei spi el : sun1) , und demDomai nnamen, der angiInsti tuti on (Berei ch) der Rechner geh�ort (i mBei spi el : l rz-
sammen. Di e Kombi nati on von bei demwi rd al s Ful l y Qua(FQDN) bezei chnet (i mBei spi el al so: sun1. l rz-muenchen
Di e Domai nnamen setzen si ch aus den Namen der Knoten i mDer Domai nname ei nes Knotens besteht aus dessen Name sowi
der i msel ben Pf ad dar�uberl i egenden Knoten { j ewei l s durch eitrennt (Bei spi el : nm. i nf ormati k. uni -muenchen. de) . Der W
![Page 18: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/18.jpg)
2 . 3. DAS DOMAI N NAME S YS TEM 15
sunhegering8sunhegering7
187nmdec16vegatuminfo1hp10
sun1 hp10 informatik e-technik informatik 129
in-addruni-muenchentu-muenchenlrz-muenchen
edu de arpa
· (root)
Abbi l dung 2. 2: Hi erarchi scher Namensraum(Tei l baum)
di e Root-Domai n (. ) dar, di e darunterl i egenden hei �en Top- Level -Domai ns (edu,de, : : : ) , di e der n�achstni edri geren Schi cht entsprechend Second- Level -Domai ns
( l rz-muenchen. de, tu-muenchen. de, : : : ) . Modal i t�aten zur Namensvergabesi nd i n [ RFC1032] beschri eben.
Al l e Tei l b�aume ei nes Knotens bi l den zusammen mi t di esemei ne Domai n, der di edarunterl i egenden Subdomai ns und Rechner angeh�oren. Zur Inf ormati onauf tei -l ung (vertei l tes Datenbanksystem) wi rd der Baumi n Zonen ei ngetei l t , di e von
den ei nzel nen Insti tuti onen i n Ei genverantwortung verwal tet werden. Ei ne Zone umf a�t ei ne (Sub- )Domai n abz�ugl i ch der del egi erten (i n ei nen anderen
antworungsberei ch �ubertragenen) Subdomai ns, di e wi ederumei ner ei genenangeh�oren.
Di e Bl �atter i mBaumstel l en di e Rechner mi t i hren Namen, al so den Homen dar. Dari n i st dann auch di e entsprechende IP-Adresse (gegebenenf
mehrere) gespei chert. Wi e amBei spi el des Hostnamen hp10 zu sehes j etzt auch m�ogl i ch, ei n und densel ben Hostnamen1 mehrmal s zuwenn der Rechner ei ner anderen Domai n angeh�ort. Dassel be gi l t auci nnerhal b zwei er verschi edener Domai nnamen (i n der Abbi l dung: i n
muenchen. de 6= i nf ormati k. uni -muenchen. de) .
Ei ne Besonderhei t stel l t di e Domai n i n- addr. arpa dar. Mei ne i nverse Namensabbi l dung (Reverse Mappi ng): IP-A
vorzunehmen. Dazu wi rd di e IP-Adresse al s dezi mal e Byte
1hp10.informatik.tu-muenchen.de ist ein Aliasname f�ur hphalle10.informatik
muenchen.de. AliasnamenundHostnamen sindaber gleichbedeutend, weshalbdies als realexistierendes Beispiel gew�ahlt wurde.
![Page 19: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/19.jpg)
16 KAPI TEL 2 . EI NF �UHRUNG I N DAS DOMAI N NAME S YS TEM
Nul l en und Leerzei chen i n umgekehrter Rei chenf ol ge geschri eben, umden Post�xi n- addr. arpa erwei tert und al s Name verwendet (Bei spi el : 20. 10. 187. 129. i n-
addr. arpa) . In demdami t ref erenzi erten Bl att �ndet man dann ei nen entspre-chenden Ei ntrag, der den Namen enth�al t ( i mBei spi el : sun1. l rz. muenchen. d
Der i n der Abbi l dung abgeschni ttene Tei l baumenth�al t al l e Ei ntr�age f �ur eiB-Netz (129. 187. . ) des LRZ.
Neben demForward Mappi ng (Abbi l dung: Name !IP-Adresse) und demeben behandel tenReverse Mappi ng bi etet das Domai nName Systemnochwei te
Di enste/Inf ormati onen an. Der wi chti gste i st das Mai l - Routi ng [ RFC974] .ben k�onnen aber auch Inf ormati onen �uber CPUund Betri ebssystemder Rec
abgef ragt werden, sof ern si e berei tgestel l t werden. Wei tere Inf ormati onben (derzei t) ei ne untergeordnete Bedeutung und sol l en deshal b a
Stel l e ni cht erw�ahnt werden.
2.3.3 Zugri� einer Anwendungauf DNS-Informationen
Imf ol genden wi rd gezei gt, wi e ei ne Anwendung (Programm) auf Inf ormati onen,di e das Domai n Name Systemzur Verf �ugung stel l t , zugrei �en kann. Abbi l dung2. 3 gi bt ei ne �Ubersi cht �uber ei n m�ogl i ches Szenari o.
gethostbyname() gethostbyname()gethostbyname()gethostbyname()
Resolver Resolver Resolver
Nameserver
Resolver
DB
(DNS/UDP)Anfragen
telnet <name1> ftp <name2> rlogin <name3> rsh <name4>
/etc/hostsNameserver DB
Clie
nt
Ser
ver
Client
Abbi l dung 2. 3: Inf ormati ons u� (DNS-Anf ragen)
Den Anwendungsprotokol l en (tel net, f tp, : : : ) wi rd anstel l e der IP-Adresse dHostname bzw. der Ful l y Qual i �ed Domai n Name (FQDN) �ubergeben. Wi rd nur
![Page 20: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/20.jpg)
2 . 3 . DAS DOMAI N NAME S YS TEM 17
der Hostname angegeben2, so wi rd er umdenDomai nnamen erwei tert. Das auf ge-ruf ene Programmbedi ent si ch bei mVerbi ndungsauf bau der Bi bl i otheksf unkti ongethostbyname(). Dami t werden di e Resol verrouti nen des Betri ebssystems auf -
geruf en.
Di e Resol verrouti nen schi cken di e Anf ragen an den/di e n�achstgel egenen Name-server3. Je nach Kon�gurati on der Resol ver (si ehe Manpage g e t h o s t e n t [ UCBK] )
kann di e Anf rage auch anmehrere Nameserver geschi ckt oder k�onnen vorhandeneEi ntr�age i n / e t c / h o s t s zur Namensau �osung verwendet werden.
I st der Nameserver ni cht i n der Lage, ei ne Anf rage sel bst zu beantwortendern nur auf ei nen di esbez�ugl i ch kompetenterenNameserver zu verwei sendi e Anf rage an l etzteren geschi ckt werden. Di ese evtl . rekursi ve Abf
kann der Resol ver demAnwendungsprogrammabnehmen4.
Ei n Nameserver i st ei n Proze�, der Anf ragen beantwortet, di e erDNS-Protokol l s [ RFC1035] zumei st al s Datagramme (UDP/IP) erZu di esemZweck kann auch ei ne TCP/IP-Verbi ndung auf gebaut werd
Nameserver l �auf t al s Hi ntergrundproze� (Daemon) auf ausgew�ahl tenei nes Insti tuts oder ei ner Organi sati on.
Al s ei gene Inf ormati onsquel l e besi tzt er ei ne i nterne DatenbanKon�gurati onsdatei en gel aden wi rd. Daneben besteht aber
Tei l e ei ner Datenbank anderer Nameserver zu kopi eren,f ormati onen daraus l i ef ern zu k�onnen. F�ur di esen B
dann al s Secondary Nameserver, wohi ngegen er f �urf ormati on aus l okal en Kon�gurati onsdatei en
Nameserver agi ert . Di ese Spi egel ung i stry Nameserver ausf al l en kann und zumanNameserver ei ne geri ngere Netzl ast undsatz gi l t , da� f �ur j ede Zone mi ndest
[ Quar 94] .
Daneben spei chert ei nNameserverda� di e gl ei che Anf rage erne
hat. Di eses al s Cachi ngserver (Cache Nameservanderen Nameservern
deren Nameserver
2Dies wirdinder PManpage resolver [UCBK], OptionRESDEFNAMES).
3BeimDomainName Systemwird eine Client/Server Architektur eingesetzt. Der Tport der Informationzwischen demNameserver (Informationsquelle) und demAnwendungs-
programm(Client, Informationssenke) erfolgt �uber das Internet.heManpage resol ver [UCBK], OptionRESRECURSEOptionRESUSEVC
![Page 21: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/21.jpg)
18 KAPI TEL 2 . EI NF �UHRUNG I N DAS DOMAI N NAME S YS TEM
An di eser Stel l e mu� darauf hi ngewi esen werden, da� di e mei sten Nameserversowohl al s Pri mary und Secondary Nameserver arbei ten (j ewei l s f �ur ei ne oder
mehrere verschi edene Zonen) al s auch al s Cache Nameserver f �ur di e Root-Domai n.Letztere di ent dazu, i mBauman Zwei ge zu gel angen, di e ni cht zu den sel bstverwal teten geh�oren.
![Page 22: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/22.jpg)
Ka p i t e l 3
Ko n �g u r a t i o n e i n e r
DNS -Umg e b u n g
Bei mDomai n Name Systemhandel t es si ch umei nen Verj eni gen Inf ormati onen zur Verf �ugung stel l t , di e denrati onsvorgang mi tgegeben werden. Di es geschi eht
datei en.
Wegen i hres gro�en Umf angs m�ussen di e Inf ormUntertei l ung erf ol gt i n zwei verschi edenen
schni tt 3. 1 vorgestel l t .
In Abschni tt 3. 2 werden di e Kon�guratden Nameservern verwal teten Zonen sspi el en, pr�asenti ert . Deren Kennt
Arbei t zu erstel l endes Datenbaderen Hi l f e entsprechende Date
Di e Kon�gurati onsdatei en kt�uchti ge DNS-Umgebung z
nuel l en Kon�gurati on l i egnotwendi g si nd, sonde
stehen schwerwi egenund dort ei n gezi
3. 1 Unte
Di e Untertei l umensi onen
![Page 23: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/23.jpg)
20 KAPI TEL 3 . KONFI GURATI ON EI NER DNS -UMGEBUNG
A
PTR
MX
...
Zone Zone Zone
DNS-Information
gesamte
NameserverNameserver
horizontale Unterteilung
nach
Art
der I
nfor
mat
ion
verti
kale
Unt
erte
ilung
in Zonen
Ab b i l d u n g 3 . 1 : Un t e r t e i l u n g d e r DNS - I n f o r ma t i o n
1 . Ho r i z o n t a l e Un t e r t e i l u n g i n Zo n e nBe i e i n e r v e r t e i l t e n Anw
s t
![Page 24: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/24.jpg)
3 . 2 . KONFI GURATI ONS DATEI EN 2 1
Ta b e l l e 3 . 1 a u f g e f �u h r t .
Ty p Be d e u t u n gA Na me ! I P- Ad r e s s e ( Fo r e wa r d Ma p p
PTR I P- Ad r e s s e ! Na me ( ReMX Ma i l Ro u t i n
HINFO
![Page 25: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/25.jpg)
2 2 KAPI TEL 3 . KONFI GURATI ON EI NER DNS - UMGEBUNG
Wi e a u s Ab b i l d u n g 3 . 2 e r s i c h t l i c h i s t , t e i l e n s i c h d i e fwe n d i g e n Ko n � g u r a t i o n s d a
![Page 26: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/26.jpg)
3 . 2 . KONFI GURATI ONS DATEI EN 2 3
directory /etc/namedb
; type domain source/host bak-file
cache . named.cache
primary lrz-muenchen.de named.hosts
primary 128.129.in-addr.arpa named.rev
primary 0.0.127.in-addr.arpa named.local
secondary eg 193.227.1.1 eg.BF
secondary gov.eg 193.227.1.1 gov.eg.BF
3. 2. 2 Zonenkon�gurat i on
I n d e n Zo n e n d a t e i e n we r d e n d i e I n f o r ma t i o n e n f e s t g e l e g t , dS y s t e mf �u r d i e j e we i l i g e Zo n e z u r
Da
![Page 27: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/27.jpg)
2 4 KAPI TEL 3 . KONFI GURATI ON EI NER DNS - UMGEBUNG
ppp IN NS dfvgate
IN NS hp10
@ IN MX 140 cd1
localhost IN A 127.0.0.1
sun1 IN A 129.187.10.20
sun2 IN A 129.187.10.21
dfvgate IN A 129.187.10.25
hp10 IN A 129.187.13.22
cd1 IN A 129.187.13.3
� n a me d . r e vBe i d e r f o l g e n d e n Da t e i Be i s p i e l f �u r d a s Re v e r s e
Ne t z ( 129. 187. . , u n v
$ORIGIN 187.1
@
20.10
20.11
195.15
� n a me d . l o c aDi e f o
![Page 28: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/28.jpg)
3 . 2 . KONFI GURATI ONS DATEI EN 2 5
Di e s e Da t e i k a n n j e n a c h d e m, o b a u f d e m j e we i l i g e n Re c h n e ri n s t a l l i e r t i s t o d e r n i c h t , u n t e r s c
� Mi t l o k
![Page 29: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/29.jpg)
2 6 KAPI TEL 3 . KONFI GURATI ON EI NER DNS - UMGEBUNG
![Page 30: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/30.jpg)
Ka p i t e l 4
An f o r d e r u n g e n a n d a s
Ma n a g e me n t e i n e s
Na me s e r v e r
Di e s e s
![Page 31: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/31.jpg)
2 8 KAPI TEL 4. ANF. AN DAS MGMT. EI NES NAMES ERV. - VERBUNDES
4.1 BedeutungdesManagements
Be i mo d e r n e n Re c h n e r s y s t e me n u n d Re c h n e r n e t z e n g e n �u g t e s n i c h t , s i cd i e Au f g a b e n , d i e s i e z u e r b r i n g e n h a b e n ,
e i n e Bu c h u n g v
![Page 32: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/32.jpg)
4. 2. NOTWENDIGKEITDES MANAGEMENTS BZGL. DES DNS 2 9
4. 2 Notwendi gkei t des Managements bzgl . des
Domai n Name Systems
m v o r a n g e h e n d e n Ka p i t e l wu r d e e i n e i n f a c h e s Be i s p i e l g e z e i g t , wi e s i c h e iDNS - Umg e b u n g k o n � g u r i e r e n l �a � t . Da b e i wu r d e n e
wi c h t i g e Zo n e n b e r �u c k s i c
![Page 33: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/33.jpg)
3 0 KAPITEL 4. ANF. ANDAS MGMT. EINES NAMESERV. -VERBUNDES
Ne b e n Pr o b l e me n , mi t d e n e n d e r Anwe n d e r k o n f r o n i e r t wi r d , g i b t e s a u c h n o ca n d e r e , d i e z . B. d i e Be t r e i b e r v o n Na me s e r v e r n u n t
Ab s t i mmu n g b e i d e r Z
![Page 34: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/34.jpg)
4. 3. DNS-MANAGEMENTAUS BETREIBERSICHT 3 1
Da g e g e n we r d e n i m f o l g e n d e n Au f g a b e n g e n a n n t , d i e i n d i e Be t r i e b s phas e �u b ef �u h r e n b z w. i n d i e s e r v o n Be d e u t u n g s i n d :
� Be r e i t s t e l l e n u n d Ak t i v i e r e n
� An p a s s u n g d e
![Page 35: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/35.jpg)
3 2 KAPITEL 4. ANF. ANDAS MGMT. EINES NAMESERV. -VERBUNDES
� Be i m Be r e i t s t e l l e n v o n Na me s e r v e r n i s t f e s t z u l e g e n , we l c h e Di e n s t e je i n z e l n e a n z u b i e t e n h a t . I n d e r Re g e l v e r f �u
S e r v i c e f �u r d i e i
![Page 36: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/36.jpg)
4. 3. DNS-MANAGEMENTAUS BETREIBERSICHT 3 3
�tg : Re s t g �u l t i g k e i t s d a u e r e i n e s g e s p i e g e l t e n Da t e n b e s t a n d e s .Er s t n a c h Ab l a u f d i e s e r Ze i t f r a g t e i n S e c
z u s t �a n d i g e n Pr i ma r
![Page 37: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/37.jpg)
3 4 KAPITEL 4. ANF. ANDAS MGMT. EINES NAMESERV. -VERBUNDES
HOSTS-Datei
Zonendateien
ZonendateienForeward Mapping
Reverse Mapping
/etc/hosts
DOMAINS-DateiMulti Domain Nameserver Database
mit deren Nameservernverwaltete Zonen
SOANS
restliche DNS-InfoACNAMEHINFOMX
Perl-Skriptdf2hf
Ab b i l d u n g 4 . 1 : Ei n s a t z d e s Ge n e r i e r u n g s s k r i p t s df 2hf
I n d e r v o m DNS - Admi n i s t r a t o r z u e r s t e l l e n d e n DOMAI NSDNS - I n f o r ma t i o n e n ( Re c o r d s ) i n
i n Ka p i
![Page 38: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/38.jpg)
4. 3. DNS-MANAGEMENTAUS BETREIBERSICHT 3 5
d i r e k t v o n e i n a n d e r a b h �a n g e n , k a n n ma n s i c h d o p p e l t e Ar b e i t s p a r e n . DS k r i p t e r s t e l l t d i e PTR- Re c o r d s a u t o ma t i s c h
d i g e n Zo n e n a n g i b t
![Page 39: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/39.jpg)
3 6 KAPITEL 4. ANF. ANDAS MGMT. EINES NAMESERV. -VERBUNDES
� Unt e r s t �ut z ung v on nur e i nemName s e r v e rAu s d e r DOMAI NS - Da t e i we r d e n n u r Zo n e n d a t e i e n f �u r e i n e n Na me s e r
g e n e r i e r t . Wi l l ma n z we i o d e r me h r e r e Na me sv e r f �u r d a r i n e n t h a l
![Page 40: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/40.jpg)
4. 4. INTEGRATIONSANS�ATZE 3 7
dnswalk: We r k z e u g , d a s v o n e i n z e l n e n Do ma i n s Zo n e n t r a n s f e r s d u r c h f �u h r td i e Er g e b n i s s e a u f i n t e r n e Ko n s i s t e n z u n d S o
dnsstats: We r k z e u g z u r An a l y
![Page 41: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/41.jpg)
3 8 KAPITEL 4. ANF. ANDAS MGMT. EINES NAMESERV. -VERBUNDES
e i n e mh e t e r o g e n e n Ne t z , d a d i e e i n g e s e t z t e n Na me s e r v e r , Pr o t o k o l l e u n d S c hs t e l l e n j e we i l s h o mo g e n s i n d , s o n d e r n v i e l me
Ma n a g e me n t v e r f a h
![Page 42: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/42.jpg)
4. 4. INTEGRATIONSANS�ATZE 3 9
dnsServConfigImplementIdent1
dnsServZoneTable1
... ...
dnsServConfig dnsServCounter dnsServOptCounter dnsServZone1 2 3 4
...1
dnsResConfig
...1
dnsServCounterAuthAns
dnsServMIB dnsResMIB1 2
system interfaces tcp dns1 2 6 32
......
iso.org.dod.internet.mngt.mib-21.3.6.1.2.1
1 1dnsServMIBObjects dnsResMIBObjects
Ab b i l d u n g 4 . 2 : DNS i n d e r MI B- 2 d e s I n t e r n e t - Re g i s t r i e r u n g s b a u me
dnsServCounter: S t a t i s t i s c h e An g a b e n �u b e r An f r a g e n ,s e r v e r g e s t e l l t wu r d e n . Di e
An z a h l d e
![Page 43: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/43.jpg)
4 0 KAPITEL 4. ANF. ANDAS MGMT. EINES NAMESERV. -VERBUNDES
Do ma i n Na me S y s t e m d a n n i m Ra hme n d e s I n t e r n e t - Ma n a g e me n t s v e r wa l t e twe r d e n .
4.4.2 AnbindungdesDNSaneinDokumentationssystem
Ei n Do k ume n t a t i o n s s y s t e m d i e n t d e r Er f a s s u n g , Da r s t e l l u n g u n d Ve r wa l tp h y s i s c h e n I n f r a s t r u k t u r e i n e s Ko mmu n i k a t i
i s t v o r a l l e m d a
![Page 44: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/44.jpg)
4. 5. ANFORD. ANEINEUMGEBUNGF�URDNS-KONFIG.MGMT. 4 1
I n t e g r a t i o n 7, a u f d e r e n Gr u n d l a g e d a n n e i n Ve r f a h r e n z u m DNS - Ko n � g u r a t i o n sma n a g e me n t e r a r b e i t e t wi r d .
Da n e b e n k �o n n e n d a n n a u c h a n d e r e Anwe n de i n Tr o u b l e Ti c k e
![Page 45: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/45.jpg)
4 2 KAPITEL 4. ANF. ANDAS MGMT. EINES NAMESERV. -VERBUNDES
I n d e n Ei n t r �a g e n d e r Zo n e n k o n � g u r a t i o n s d a t e i e n s i n d Ze i t i n f o r ma t i o n e n a ng e b e n , wi e l a n g e d i e j e we i l i g e n Ei n t r �a g e g �u l
l a n g e s i e d a
![Page 46: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/46.jpg)
4. 5. ANFORD. ANEINEUMGEBUNGF�URDNS-KONFIG.MGMT. 4 3
W�u n s c h e n s we r t w�a r e e s , we n n d e m DNS - Admi n i s t r a t o r e i n We r k z e u g ( e v t l . i n -n e r h a l b e i n e r Ma n a g a me n t p l a t t f o r m) z u r Ve r f �u g u n g
h a n d v o n S t a t i s t i k e n g u t
![Page 47: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/47.jpg)
4 4 KAPITEL 4. ANF. ANDAS MGMT. EINES NAMESERV. -VERBUNDES
i n t e r a k t i v e s Ab f r a g e - u n d Ma n i p u l a t i o n s we r k z e u g v o n ORACLE) u n t e r b l e i b t ,s o n s t I n k o n s i s t e n z e n z wi s c h e n d e r e x t e r n e n Da t
d e n Ko n � g u r a t i o n s d a
![Page 48: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/48.jpg)
Ka p i t e l 5
DNS - Ko n � g u r a t i o n mi t d e
Ne t z d o ku me n t a t i
I m f o l g e n d e n
![Page 49: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/49.jpg)
4 6 KAPITEL 5. DNS-KONFIG. MITDERNETZDOK. -DATENBANK
I m f o l g e n d e n Ab s c h n i t t 5 . 3 wi r d e i n En t i t y / Re l a t i o n s h i p Mo d e l l p r �a s e n t id a s a u s d e n An f o r d e r u n g e n e n t wi c k e l t e De s i
Re l a t i o n e n s c h e m
![Page 50: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/50.jpg)
5. 1. DIEVORHANDENENETZDOKUMENTATIONSDATENBANK 4 7
i e Ab b i l d u n g 5 . 1 1 g i b t e i n e n �Ub e r b l i c k �u b e r d i e I n f o r ma t i o n s t a b e l l e n . Di e eg e z e i c h n e t e n Pf e i l e s t e l l e n d i e Be z i e h u n g e n z
( Fr e md s c h l �u s s e l
![Page 51: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/51.jpg)
4 8 KAPITEL 5. DNS-KONFIG. MITDERNETZDOK. -DATENBANK
d a s Do ma i n Na me S y s t e m s i n d n u r s o l c h e i n t e r e s s a n t , d i e �u b e r S c h n i t t sl e n mi t I P- Pr o t o k o l l v e r f �u g e n :
select distinct kl.klasse, kl.name
from komponentenklasse kl, komponente ko
where kl.klasse=ko.klasse and
ko.name=lp.komponente and lp.proto
Al s Er g e b n i s d i e s e r An f r a g e e r
KL NAME
-- ----
AS ATM-
BI Brid
BR Brou
DI CDCN
DR Druc
FK FDDI
MC Maci
PC PC
PL Plot
RE Rech
RO Rout
SK Ster
TH Twis
TS sons
UV X.25
WS Work
XW XWin
Da b e i
![Page 52: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/52.jpg)
5. 1. DIEVORHANDENENETZDOKUMENTATIONSDATENBANK 4 9
( n �u t z l i c h f �u r J o i n s , d a d a n n n u r j e we i l s e i n Ve r g l e i c h s a t t r i b u t z u b e a r bt e n i s t ) a l s a u c h k o mp o n e n t e n we i s e ( wi c h t i g
Ve r g l e i c h s t a t
![Page 53: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/53.jpg)
5 0 KAPITEL 5. DNS-KONFIG. MITDERNETZDOK. -DATENBANK
�u b e r wa c h t we r d e n .
Ei n e n t s c h e i d e n d e s Pr o b l e m b e i Ne u e n t wi c k l u n g e n u n d Er we i t e r uPr o d u k t e n i n Be z u g a u f d i e Ak z e p t a n z d e
f o r ma t i k s t e l l t
![Page 54: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/54.jpg)
5. 2. ANFORDERUNGENANDAS DATENBANKDESIGN 5 1
s o wi e d e r Ge r �a t e n u mme r ( 5 . b i s 8 . Z e i c h e n ) z u s a mme n g e s e t z t e Pr i m�a r s c h l �u sNAME d e r Re l a t i o n KOMPONENTE.
Nu n i s t e i n we i t e r e s At t r i b u t ( KLAS S E) d emi t d e r d e s o b i
![Page 55: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/55.jpg)
5 2 KAPITEL 5. DNS-KONFIG. MITDERNETZDOK. -DATENBANK
5.2.1 Hosts
Un t e r"Ho s t \ wi r d i m f o l g e n d e n e i n e Re c h n e r e i n h e i t v e r s t a n d e n , d i e g e nau e i ne n
Na me n ( Ho s t n a me n ) b e s i t z t 5.
An f o r d e r u n g e n , d i e s i c h a n d a s Ob j e k t"Ho
Zo n e n z u o r d n u n g :J e d e r Ho s t mu
![Page 56: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/56.jpg)
5. 2. ANFORDERUNGENANDAS DATENBANKDESIGN 5 3
An f o r d e r u n g e n , d i e s i c h a n d a s Ob j e k t"Zo n e \ s t e l l e n :
Va t e r z o n e :Zu j e d e r Zo n e ( a u c h d i e d e l e g i e r t e n f r e md v e r wa
e x p l i z i t d i e Va t e r z o n e a
![Page 57: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/57.jpg)
5 4 KAPITEL 5. DNS-KONFIG. MITDERNETZDOK. -DATENBANK
Mi t d e m Re v e r s e Ma p p i n g e i n e s I n t e r n e t Cl a s s - A Ne t z e s e r g i b t s i c h b e i Ve rd u n g e i n e r 1 6 Bi t S u b n e t z ma s k e a u c h e i n Be i s p i e
De l e g a t i o n d e r Zo nd e m By t e we
![Page 58: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/58.jpg)
5. 2. ANFORDERUNGENANDAS DATENBANKDESIGN 5 5
An f o r d e r u n g e n , d i e s i c h a n d a s Ob j e k t"Na me s e r v e r \ s t e l l e n :
Lo k a l e r Ho s t :Ei n l o k a l e r 10 Na me s e r v e r mu� a u f e i n e m l o k a l e
k e i n e n S i n n , e i n e n Na m
![Page 59: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/59.jpg)
5 6 KAPITEL 5. DNS-KONFIG. MITDERNETZDOK. -DATENBANK
Ve r f �u g u n g s t e l l e n b z w. a l s S l a v e Na me s e r v e r a r b e i t e n , e i n s e h r v i e l g e rMa n a g e me n t a u f wa n d v o n n �o t e n i s t , wa s d i e K
�Ub e r l e g u n g a n s
![Page 60: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/60.jpg)
5. 3. DAS DATENBANKDESIGN 5 7
5. 3 Das Datenbankdesi gn
5.3.1 Entity/Relationship Modell
b i l d u n g 5 . 3 z e i g t d a s u n t e r Be r �u c k s i c h t i g u n g d e r g e n a n n t e n An f o r d e r u n g e ne n t wi c k e l t e En t i t y / Re l a t i o n s h i p Mo d e l l .
Z e n t r a l e r Ge g e n s t a n d d e s Mo d e l l s swe s e n t l
![Page 61: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/61.jpg)
58
KAPITEL5.
DNS-KONFIG.MIT
DERNETZDOK.-DATENBANK
HostsNameserver
WKSAliases Forwarder
NameserverZonen(lokal)
(lokal)
(fremd)
(fremd)IP-Adr.Zonen
Zonen(fremddelegiert)
MAILX
12
43
56
7 9
10
8
11
13
1
2 3
4
5
6
78
9
10
11
12
15
16
n:1
1:1 m:n
obligatorisch
14
17
Abbildung5.3:Entity/RelationsshipModell
![Page 62: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/62.jpg)
5. 3. DAS DATENBANKDESIGN 5 9
3 . Alias - Name nZu e i n e m Ho s t g e h �o r i g e Al i a s - Na me n . Hi e r f �u r i s t e i n e Ta b e l l e
z u e r s t e l l e n .
4 . We l l Kn own S e rvi ce sVo n e i n e m Ho s t a n g e b o t e n e
e i n
![Page 63: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/63.jpg)
6 0 KAPITEL 5. DNS-KONFIG. MITDERNETZDOK. -DATENBANK
5. 3. 3 Di e Bezi ehungen (Rel at i onshi ps) und deren Integra-t i on i n di e Tabel l en
1 . I P- Ad r e s s e n $ Ho s t s ( N: 1 )J e d e r Ho s t h a t e i n e o d e r me h r e r e I P- Ad r e s s e n . Di e Ta b e
u m d e n Pr i m�a r s c h l �u s s e l d e r Ta b e
2 . Al i a
![Page 64: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/64.jpg)
5. 3. DAS DATENBANKDESIGN 6 1
e i n e e i g e n e Ta b e l l e ( S ECONDARY LL) z u e r s t e l l e n . Di e s e e n t h �a l t d im�a r s c h l �u s s e l d e r Ta b e l l e n HOS TS u n d NAMES
9 . Loka l e Name s e rv eJ e d e r l o k
![Page 65: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/65.jpg)
6 2 KAPITEL 5. DNS-KONFIG. MITDERNETZDOK. -DATENBANK
1 6 . Fr e md e Zon e n ( d e l e g i e rt ) $ Loka l e Name s e rv e r ( S e c on da ryS e rv i c e ) ( M: N)
Fr e md e , d e l e g i e r t e Zo n e n k �o n n e n v o n e i n e m o d e rd a r y ) Na me s e r v e r n g e s
![Page 66: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/66.jpg)
5. 4. INTEGRATIONINVORHANDENEDATENBANK 6 3
Hi e r f �u r s o l l d i e Ta b e l l e LOGPORT ( a l t ) h e r a n g e z o g e n we r d e n , d i e u . a . d i eAd r e s s e n e n t h �a l t , wa s a b e r z u Pr o b l e me n f �u h r t ,
![Page 67: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/67.jpg)
6 4 KAPITEL 5. DNS-KONFIG. MITDERNETZDOK. -DATENBANK
SQL> desc logport
Name Null? Type
------------------------------- -------- ----
KOMPONENTE CHAR(8)
PORT CHAR(10)
PROTOKOLL NOT NULL CHAR(3)
ADRESSE NOT NULL CHAR(50)
BEMERKUNG CHAR(35)
Di e v i e r At t r i b u t e KOMPONENTE, PORT, PROTOKOLL u n d BEMERKUNGs i n d z u s a mme n n i c h t e i n d e u t i g , d a e i n e Ko mp o n e n t e me h r e r e l o g i
d e m g l e i c h e n Pr o t o k o l l h a b e n k a n n , ume i s t e n s u n b e l e g t b
Di e
![Page 68: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/68.jpg)
5. 5. ORGANISATORISCHEPROBLEME 6 5
Al s Er g e b n i s a l l e r b i s h e r g e n a n n t e n An b i n d u n g s v e r s u c h e d e r Ta b e l l e HOSd i e b e i d e n v o r h a n d e n e n Ta b e l l e n l �a � t s i c h f e s
b i n d u n g g e b e n
![Page 69: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/69.jpg)
6 6 KAPITEL 5. DNS-KONFIG. MITDERNETZDOK. -DATENBANK
W�a h r e n d d a s e r s t e Pr o b l e m d a s Ve r f a h r e n n u r i n t e r n b e t r i � t u n d i m f o l gd e n d u r c h e i n e n Ko mp r o mi � g e l �o s t wi r d , mu � s i c h
d e r Be n u t z e r - u n d S y s t e
![Page 70: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/70.jpg)
5. 5. ORGANISATORISCHEPROBLEME 6 7
We i t e r e Fo r d e r u n g e n , d i e s i c h i m Zu s a mme n h a n g mi t d e r Ei n g a b e r e i h e n f o lg e b e n , b e s t e h e n d a r i n , d a � z . B. d i e I P- Ad r e s
S e r v i c e s n a c h d e n H
![Page 71: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/71.jpg)
6 8 KAPITEL 5. DNS-KONFIG. MITDERNETZDOK. -DATENBANK
5. 5. 3 Zugri � auf Nameserver- Proze�
Ei n Pr o b l e m, d a s mi t d e r e r f o l g r e i c h e n Ve r t e i l u n g d e r Ko n � g u r a t i o n s d a t en i c h t g e l �o s t i s t , i s t d i e Pr o z e � s t e u e r u n g
v o n S i g n a l e
![Page 72: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/72.jpg)
Ka p i t e l 6
I mp l e me n t i e r u n g
Di e s e s Ka p i t e l b e s c h �a f t i g t s i c h s c h l i e � l ib a n k r e l a t i o n
![Page 73: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/73.jpg)
7 0 KAPITEL 6. IMPLEMENTIERUNG
6. 1 Auf bau der Rel at i onen
I m v o r a n g e h e n d e n Ka p i t e l wu r d e n mi t Hi l f e e i n e s En t i t y / Re l a t i o n s hd i e n o t we n d i g e n DB- Ta b e l l e n h e r g e l e i t e t
He r l e i t u n g
![Page 74: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/74.jpg)
6. 1. AUFBAUDERRELATIONEN 7 1
6. 1. 1 Modi �zi erte Tabel l e
Di e i n d e r Ne t z d o k ume n t a t i o n s d a t e n b a n k v o r h a n d e n e Ta b e l l e I NS TI TUwi e f o l g t e r we i t e r t :
At t r i b u t n a me We r t e b e r e i c h NOT1 i d c h a r ( 4 )
2 o r g a n i s a t i o n c h3 n a me
4 c h e
![Page 75: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/75.jpg)
7 2 KAPITEL 6. IMPLEMENTIERUNG
3 . S u b d o ma i n n a me , f a l l s d e r Ho s t e i n e r S u b d o ma i n i n n e r h a l b s e i na n g e h �o r t . [ o p t i o n a l ]
4 . Zo n e , d e r d e r Ho s t a n g e h �o rt ung: Di
![Page 76: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/76.jpg)
6. 1. AUFBAUDERRELATIONEN 7 3
� WKS
At t r i b u t n a me We r t e b e r e i c h NOT NULL1 h o s t n u mb e r ( 5 , 0 ) �
2 s e r v i c e c h a r ( 2 4 0 ) �
1 . Ho s t ( Fr e md s c h l �u s s e l a u f HOS TS . I D) .
2 . An g a b e v o n I P- Ad r e s s e ,
![Page 77: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/77.jpg)
7 4 KAPITEL 6. IMPLEMENTIERUNG
5 . Na me d e r z u e r s t e l l e n d e n Zo n e n d a t e i . [ o p t i o n a l , s t a n d a r d m�ama i n n a me + S u�x ]
6 . E- Ma i l Ad r e s s e d e s DNS - Admi n i s
7 . Kl a s s e d
![Page 78: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/78.jpg)
6. 1. AUFBAUDERRELATIONEN 7 5
Mi t d e r f o l g e n d e n Anwe i s u n g wi r d d i e Ei n d e u t i g k e i t d e s Pr i m�a r s c hg e w�a h r l e i s t e t :
create unique index del_zones_id on del_zo
� DEL ZONES S EC
At t r i b u t n a me We r t e b e r e i c h1 d e l z o n e n umb
2 s n s i p n a m3 s
![Page 79: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/79.jpg)
7 6 KAPITEL 6. IMPLEMENTIERUNG
Ma i l Ro u t i n g ( �u b e r MX- RRs ) wi r d i m Ra hme n d i e s e r Ar b e i t n u r i n da n g e g e b e n e n Fo r m u n t e r s t �u z t ( s i e h e Ka p i t e l
6. 1. 4 Nameserver- Tabel l en
� NAMES ERVERS
At t r i b u t n a me We r1 i d
2 h o
![Page 80: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/80.jpg)
6. 1. AUFBAUDERRELATIONEN 7 7
7 . S e r i e n n umme r d e r S OA- RRs d e s Lo o p b a c k I n t e r f a c e s ( 3 2 Bi t - We r tn e VZ , s i e h e [ RFC 1 0 3 5 ] , Ka p i t e l 3 . 3 . 1 3 ) .
l a t i o n v o n DNS - I n
![Page 81: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/81.jpg)
7 8 KAPITEL 6. IMPLEMENTIERUNG
� S ECONDARY LL ( l o k a l e Na me s e r v e r f �u r l o k a l e Zo n e n )
At t r i b u t n a me We r t e b e r e i c h NOT NULL1 z o n e n umb e r ( 5 , 0 ) �
2 n a me s e r v e r n u mb e r ( 5 , 0 )3 b a c k u p � l e c h a r ( 6 4
1 . Zo n e ( Fr e md s
2 .
![Page 82: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/82.jpg)
6. 2. ANFORDERUNGENANDASWERKZEUG 7 9
� FORWARDERS
At t r i b u t n a me We r t e b e r e i c h NOT NULL1 n a me s e r v e r n u mb e r ( 5 , 0 ) �
2 i p a d d r c h a r ( 1 5 ) �
1 . Na me s e r v e r ( Fr e md s c h l �u s s e l a u f NAMES ER
2 . I P- Ad r e s s e d e s Ma s t e r Nt e
![Page 83: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/83.jpg)
8 0 KAPITEL 6. IMPLEMENTIERUNG
Netzdoku-Datenbank
FTP-Server
Resolver-konf.datei
Nameserver-konf.datei
Zonen-konf.dateien
Cache-konf.datei
(für jeden Host) (für jeden Nameserver)
Datum, Usernameakt. Systemdaten: Programm
Standardwerte-Kontingent
Ab b i l d u n g 6 . 1 : I n f o r ma t i o n s q u e l l e n u n d - s e n k e n
� Ei n Ko n t i n g e n t a n S t a n d a r d we r t e n , d i e i n d e r Rd e n , we n n d i e e n t s p r e c
![Page 84: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/84.jpg)
6. 2. ANFORDERUNGENANDASWERKZEUG 8 1
6. 2. 2 Fl exi bi l i t�at und Komf ort
I n v i e l e n DNS - Ma n a g e me n t u mg e b u n g e n l i e g t e i n s e h r u mf a n g r e i c h e r Da ts t a n d v o r , d e r b e i mEi n s a t z e i n e s n e u e n Ko n � g u
l i c h g e ma c h t we r d
![Page 85: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/85.jpg)
8 2 KAPITEL 6. IMPLEMENTIERUNG
3 . I s t d i e s e s e b e n f a l l s u n b e l e g t , s o wi r d d e r i n d e r Ko n � g u r a t i o n s dl e t z t g e n a n n t e We r t v e r we n d e t ( NAM
4 . I s t a u c h i n d e r Ko n �
![Page 86: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/86.jpg)
6. 3. PROGRAMMAUFBAU 8 3
Resolver-Konfiguration
Resolver-Konfigurationsdatei erstellen
Nameserver-Konfiguration
Root-Domain Konfigurationsdatei via Anoymous-FTP holen
Bootdatei für Nameserver erstellen
Für alle Hosts:
Für alle Nameserver:
Für alle Zonen, die der Nameserver verwaltet:
Zonenkonfigurationsdatei erstellen (für Forward/Reverse Mapping)
Loopback Interface
Konfigurationsdatei (127.1 -> localhost) erstellen
Konfigurationsdatei (localhost -> 127.1) erstellen
Standardwerte vorbelegen & ggf. durch Konfigurationsdatei modifizieren
Verzeichnisbaum erstellen
Einloggen im Datenbanksystem
Ausloggen aus dem Datenbanksystem
Ab b i l d u n g 6 . 2 : Pr o g r a mm ora2dns { �Ub e r s i c h t
Ma � n a hme n e r h e b l i c h u mf a n g r e i c h e r s i n d . Di e s e s o l l e n d ug r a mm a u f b e r e i t e t e Pa r a me t e r e n
we i s
![Page 87: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/87.jpg)
8 4 KAPITEL 6. IMPLEMENTIERUNG
d e r Na me r s e r v e r l �a u f t b e s t i mmt we r d e n . S i n d e i n z e l n e At t r i b u t e d a b e it e n b a n k n i c h t s p e z i � z i e r t , s o we r d e n s i e
( v g l . Ka p i t e
S i n
![Page 88: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/88.jpg)
6. 4. PROGRAMMODULE 8 5
6. 4. 1 Verzei chni sbaumauf bauen
Da s Mo d u l make di r. pl ( L i s t i n g s i e h e An h a n g A. 4 ) b e i n h a l t e t i m we s e n t le i n e Pr o z e d u r , mi t d e r e n Hi l f e d i e Un t e r v e r z e
Ko n � g u r a t i o n
![Page 89: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/89.jpg)
8 6 KAPITEL 6. IMPLEMENTIERUNG
Hub
Brouter
Brouter
Resolver
Nameserver
SubnetzmaskeEthernet I:
SubnetzmaskeEthernet II:
1 2 3 4
8
5
XXX.YYY.50
6 7
11
12 13
14
SubnetzmaskeFDDI:1
3 4
5
7XXX.YYY.50
XXX.YYY.40
Ab b i l d u n g 6 . 3 : Ge t e i l t e s S u b n e t z
S e r v i c e a n b i e t e t . Hi e r z u z �a h l e n a u c h d i e S t a n d a r d e i n t rt e r f a c e . Al s n �a c h s t e s f o l
![Page 90: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/90.jpg)
6. 4. PROGRAMMODULE 8 7
Ho s t - u n d g g f . Do ma i n n a me n b e z e i c h n e t . Da d u r c h k �o n n e n Gl u e Re c o r d sd e r l i c h we r d e n . Al l e Ka n d i d a t e n h i e r f �u r we r
Be i d e n S e c o n
![Page 91: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/91.jpg)
8 8 KAPITEL 6. IMPLEMENTIERUNG
6. 4. 6 Loopback Interf ace (127. 1 ! l ocal host)
Da s Mo d u l named l ocal . pl ( L i s t i n g s i e h e An h a n g A. 9 ) . i s t f �u r d e n Re v ep i n g Te i l d e s Lo o p b a c k I n t e r f a c e s z u s t �a n d
Ne b e n d e mKo p f d e r Ko n � g ue l l
![Page 92: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/92.jpg)
6. 5. EIN- UNDAUSGABEDES PROG. ANHANDEINES BSP. 8 9
Wi r d d a s Pr o g r a mm d a mi t z u m La u f e n g e b a c h t , s o e r s c h e i n t f o l g e n d e Au s g a b
sun1.(0)./home/a/a2824ch/dipl/perl> ora2dns
Starting execution...
Creating directory '/home/a/a2824ch/dipl/perl/ftp/dfvgate.lrz-muenchen.de'
Creating directory '/home/a/a2824ch/dipl/perl/ftp/dfvgate.lrz-muenchen.de/e
[...]
Creating directory '/home/a/a2824ch/dipl/perl/ftp/a2824ch.ppp.lrz-muenchen.
Creating directory '/home/a/a2824ch/dipl/perl/ftp/a2824ch.ppp.lrz-muenchen.
[...]
Creating directory '/home/a/a2824ch/dipl/perl/ftp/hp11.lrz-muenchen.de'
Creating directory '/home/a/a2824ch/dipl/perl/ftp/hp11.lrz-muenchen.de/etc'
Creating directory '/home/a/a2824ch/dipl/perl/ftp/dfvgate.lrz-muenchen.de/e
(remote-file) (local-file)
Creating directory '/home/a/a2824ch/dipl/perl/ftp/hp10.lrz-muenchen.de/etc/
(remote-file) (local-file)
Ready.
Na c h e i n e r S t a r t me l d u n g , d i e e r s c h e i n t , we n n d e rt e x t f e r t i g v o r �u b e
![Page 93: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/93.jpg)
9 0 KAPITEL 6. IMPLEMENTIERUNG
Di e n u n f o l g e n d e Au f g a b e s e i t e n s d e s DNS - Admi n i s t r a t o r s b e s t e h t d aDa t e i e n a u f d i e e i n z e l n e n Ho s t s z u v e r t e
Re s o l v e r ) z u
![Page 94: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/94.jpg)
Ka p i t e l 7
Au s b l i c k
I n d e r v o r l i e g e n d e n Ar b e i t wu r d e n M�o g l i c h k e i t e nNa me S y s t e ms a u f g e z e i g t
![Page 95: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/95.jpg)
9 2 KAPITEL 7. AUSBLICK
Da s i n d i e s e r Ar b e i t e n t wi c k e l t e We r k z e u g wu r d e n i c h t f �u r d e n i s os a t z k o n z i p i e r t , s o n d e r n f �u r d i e Ei n b
m�o g l i c h e
![Page 96: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/96.jpg)
7. 1. ERWEITERUNGS- UNDVERBESSERUNGSM�OGLICHKEITEN 9 3
Da n e b e n l i e � e s i c h a b e r a u c h e i n e i g e n s t �a n d i g e s S c h e ma e n t wi c k e l n , d a sb e s o n d e r e , f �u r d a s Ro u t i n g wi c h t i g e As p e k t e wi
mi t d a z wi s c h e n l i e g e n
![Page 97: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/97.jpg)
9 4 KAPITEL 7. AUSBLICK
e i n e u n t e r g e o r d n e t e Ro l l e . De s h a l b wi r d d a f �u r s e i t e n s d e s i mt e n Ve r f a h r e n s a u c h n u r e i n a u f d a s
g e b o t e n ( s
![Page 98: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/98.jpg)
7. 2. EINBINDUNGINEINEMANAGEMENTPLATTFORM 9 5
Um s i c h b e i m Ei n s a t z d e s Ve r f a h r e n s e i n e e r h e b l i c h e Me n g e Ar b e i t z u s p a -r e n , d i e b e i d e r Ei n g a b e d e r Da t e n i n d i e Da t e n b
Te i l v e r f a h r e n z u e n
![Page 99: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/99.jpg)
9 6 KAPITEL 7. AUSBLICK
Konfig.-Dateien Konfig.-Dateien
Nameserver DBDB Nameserver
Managementplattform Netzdokumentation
Oracle DB
ora2dns
HP OpenView
2
1
4
3
Ab b i l d u n g 7 . 1 : Ei n b i n d u n g i n e i n e Ma n a g e me n t p l a t t o r m
Di e d i r e k t e An b i n d u n g d e r Ma n a g e me n t p l a t t f o r m ad i e s e r b e i d e n a n e i n Tr o u
![Page 100: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/100.jpg)
7. 2. EINBINDUNGINEINEMANAGEMENTPLATTFORM 9 7
Do ma i n s i c h t : Be i d e r o b e n g e n a n n t e n S i c h t i s t e s e r f o r d e r l i c h , e i n e n Na mv e r h o s t f �u r e i n e b e s t i mmt e Zo n e z u k e n n e
f o r ma t i o n e n z u g e l a
![Page 101: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/101.jpg)
9 8 KAPITEL 7. AUSBLICK
![Page 102: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/102.jpg)
An h a n g A
Li s t i n g s
A. 1 Kon�gurat i onsdatei . ora2dnsrc
# **********************************************************************
# * Integration des Managements des Domain-Name-Systems in die *
# * vorhandene Managementumgebung des Leibniz-Rechenzentrums (LRZ) *
# * (Diplomarbeit an der TU-Muenchen, SS 94 - WS 94/95) *
# * ------------------------------------------------------------------ *
# * Autor: Heiko Hauck ([email protected]) *
# * Datei: .ora2dnsrc (Konfigurationsdatei fuer ora2dns) *
# **********************************************************************
# Format dieser Datei:
# <Variablenname> [<Leerzeichen> <Variablenbelegung>]
# Wird keine Variablenbelegung angegeben, so wird ein Leerstring verwendet.
# Kommentare muessen mit einem '#'-Zeichen beginnen.
# Leerzeilen sind erlaubt.
# DB-Qualifier, der bei saemtlichen DB-Anfragen vor den Tabellennamen
# eingefuegt wird
ORA2DNS.QUALIFIER
# Verzeichnis, in dem die erstellten Konfigurationsdateien
# (in entsprechenden Unterverzeichnissen) abgelegt werden
ORA2DNS.FTP_DIR /home/a/a2824ch/dipl/perl/ftp
# TTL-Wert fuer A-RRs in den Zonendateien
HOSTS.RECORD_TTL
# Klasse der A-RRs in den Zonendateien
HOSTS.RECORD_CLASS IN
# TTL-Wert fuer MX-RRs in den Zonendateien
MAILX.RECORD_TTL
# Klasse der MX-RRs in den Zonendateien
MAILX.RECORD_CLASS IN
9 9
![Page 103: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/103.jpg)
1 0 0 ANHANGA. LISTINGS
# Dateiname fuer den Nameserverprozess
NAMESERVERS.FILENAME_EXE /etc/named
# Name der Datei, in der die ID des Nameserverprozesses steht
NAMESERVERS.FILENAME_PID /etc/named.pid
# Klasse des SOA-Records (fuer Loopback-Interface des Nameservers)
NAMESERVERS.SOA_CLASS IN
# Refresh-Intervall des SOA-Records (fuer Loopback-Interface des Nameservers)
NAMESERVERS.SOA_REFRESH 21600
# Retry-Intervall des SOA-Records (fuer Loopback-Interface des Nameservers)
NAMESERVERS.SOA_RETRY 3600
# Expire-Intervall des SOA-Records (fuer Loopback-Interface des Nameservers)
NAMESERVERS.SOA_EXPIRE 604800
# Minimum-Intervall des SOA-Records (fuer Loopback-Interface des Nameservers)
NAMESERVERS.SOA_MINIMUM 172800
# Verzeichnis, in dem die Zonendateien abgelegt werden
NAMESERVERS.FILES_DIR /etc/namedb
# Name der Zonendatei fuer das Loopback-Interface (127.1 ->localhost)
NAMESERVERS.FILENAME_LO named.local
# Name der Zonendatei fuer das Loopback-Interface (localhost -> 127.1)
NAMESERVERS.FILENAME_LB named.loopback
# Name der Root-Zonendatei (Cache Service)
NAMESERVERS.FILENAME_CA named.cache
# Host, von dem diese Datei mittels Anonymous FTP geholt wird
NAMESERVERS.FTP_HOST rs.internic.net
# Verzeichnis auf diesem Host
NAMESERVERS.FTP_DIR /domain
# Dateiname auf diesem Host
NAMESERVERS.FTP_FILE named.cache
# Dateiendung, die an den Zonendateinamen angefuegt wird, falls hierfuer
# der jeweilige Domainname verwendet wird (lokale Zonen - Secondary Service)
SECONDARY_LL.BACKUPFILE_SUFFIX .BF
# Dateiendung, die an den Zonendateinamen angefuegt wird, falls hierfuer
# der jeweilige Domainname verwendet wird (fremde Zonen - Secondary Service)
SECONDARY_LF.BACKUPFILE_SUFFIX .BF
# Dateiendung, die an den Zonendateinamen angefuegt wird, falls hierfuer
# der jeweilige Domainname verwendet wird
ZONES.SOURCEFILE_SUFFIX .DNF
# Klasse des SOA-Records
ZONES.SOA_CLASS IN
# Refresh-Intervall des SOA-Records
ZONES.SOA_REFRESH 21600
# Retry-Intervall des SOA-Records
ZONES.SOA_RETRY 3600
# Expire-Intervall des SOA-Records
ZONES.SOA_EXPIRE 604800
# Minimum-Intervall des SOA-Records
ZONES.SOA_MINIMUM 172800
![Page 104: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/104.jpg)
A. 2. HAUPTPROGRAMMORA2DNS 1 0 1
A. 2 Hauptprogrammora2dns
#!/home/a/a2824ch/bin/oraperl
# **********************************************************************
# * Integration des Managements des Domain-Name-Systems in die *
# * vorhandene Managementumgebung des Leibniz-Rechenzentrums (LRZ) *
# * (Diplomarbeit an der TU-Muenchen, SS 94 - WS 94/95) *
# * ------------------------------------------------------------------ *
# * Autor: Heiko Hauck ([email protected]) *
# * Datei: ora2dns (Hauptprogramm) *
# **********************************************************************
# AUFRUF: ora2dns [username password]
# Werden Benutzername und Passwort nicht mit angegeben,
# so werden hierfuer Standardangaben eingesetzt
# (siehe Prozedur login in dem Modul 'ora2dns.pl')
# Patch fuer die lokal installierte Version von 'oraperl'
@INC = ('.', '/sw/PD/perl-4.36/lib');
# Einbinden der Programmodule
require 'ora2dns.pl';
require 'make_dir.pl';
require 'res_conf.pl';
require 'named_boot.pl';
require 'named_cache.pl';
require 'named_forward.pl';
require 'named_reverse.pl';
require 'named_local.pl';
require 'named_loopback.pl';
# Programmstart
print "Starting execution...\n";
# Setzen bzw. Einlesen der Defaultwerte (aus Datei '$HOME/.ora2dnsrc')
&set_default;
# DB-Qualifier (globale Variable)
# wird bei den SQL-Abfragen vor alle Tabellennamen gesetzt
$DB = $def{'ORA2DNS.QUALIFIER'};
# Einloggen in die Datenbank
&login;
# Generierung der Host-Unterverzeichnisse
&make_dir;
# Resolverkonfiguration fuer jeden Host
&res_conf;
# ======================================================================
![Page 105: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/105.jpg)
1 0 2 ANHANGA. LISTINGS
# Nameserverkonfiguration
# hierzu notwendige (globale) SQL-Anfragen:
# Auswahl saemtlicher Nameserver mit ihren Daten
&query(<<"END_SQL", *nameservers);
select id, host, soa_responsible, soa_class, soa_serial, soa_refresh,
soa_retry, soa_expire, soa_minimum, files_dir, filename_lo,
filename_lb, filename_ca, ftp_host, ftp_dir, ftp_file
from ${DB}nameservers
END_SQL
# Auswahl der Daten eines bestimmten Hosts und der zughoerigen Zone
$csr_hosts = &query_open(<<"END_SQL");
select h.name, h.subdomain_name, h.zone, h.record_ttl, h.record_class,
z.name, z.soa_responsible, z.soa_class, z.soa_serial,
z.soa_refresh, z.soa_retry, z.soa_expire, z.soa_minimum
from ${DB}hosts h, ${DB}zones z
where h.zone = z.id and h.id = :1
END_SQL
# Auswahl aller IP-Adressen eines bestimmten Hosts
$csr_ipaddr = &query_open(<<"END_SQL");
select ip_addr from ${DB}ipaddr where host = :1
END_SQL
# Auswahl aller Zonen, die einen bestimmten Primary Nameserver haben
$csr_zones = &query_open(<<"END_SQL");
select id, name, sourcefile, soa_responsible, soa_class, soa_serial,
soa_refresh, soa_retry, soa_expire, soa_minimum
from ${DB}zones
where prim_nameserver = :1
END_SQL
# ----------------------------------------------------------------------
# Schleife ueber saemtliche Nameserver
for(@nameservers)
{
# Einlesen der Nameserverdaten
local($id, $host, $soa_responsible, $soa_class, $soa_serial, $soa_refresh,
$soa_retry, $soa_expire, $soa_minimum, $files_dir, $filename_lo,
$filename_lb, $filename_ca, $ftp_host, $ftp_dir, $ftp_file) = split(/$;/);
# $id, $host koennen nicht NULL sein
# die restlichen Variablen duerfen NULL sein
# Einlesen der Daten des zugehorigen Hosts
local(@hosts);
![Page 106: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/106.jpg)
A. 2. HAUPTPROGRAMMORA2DNS 1 0 3
&query_bind($csr_hosts, *hosts, $host);
# Ergebnis kann nur aus einem Tupel bestehen, da der Schluessel zones.id
# eindeutig ist (unique index)
local($hostname, $subdomainname, $zone, $record_ttl, $record_class,
$domainname, $z_soa_responsible, $z_soa_class, $z_soa_serial,
$z_soa_refresh, $z_soa_retry, $z_soa_expire, $z_soa_minimum)
= split(/$;/, $hosts[0]);
# $hostname, $zone, $domainname, $z_soa_responsible & $z_soa_serial koennen
# nicht NULL sein
# $subdomainname, $record_ttl, $record_class, $z_soa_class, $z_soa_refresh,
# $z_soa_retry, $z_soa_expire & $z_soa_minimum duerfen NULL sein
# --------------------------------------------------------------------
# Belegen der optionalen Attribute, falls
# sie in der Datenbank nicht belegt wurden (NULL-Werte)
# Eintraege fuer die SOA-Records der Zonen des Loopback-Interfaces
# (Forward & Reverse Mapping)
# Sind die folgenden beiden Attribute nicht speziell fuer den
# Nameserver angegeben, so werden die Werte der Zone, zu der
# der Nameserver-Host gehoert, verwendet
if(&testnull($soa_responsible))
{ $soa_responsible = $z_soa_responsible; }
if(&testnull($soa_serial))
{ $soa_serial = $z_soa_serial; }
# Im Gegensatz zu den beiden obigen Attributen kommt bei den folgenden
# noch der Default-Wert als letzte Alternative hinzu
if(&testnull($soa_class))
{ $soa_class = &testnull($z_soa_class) ?
$def{'NAMESERVERS.SOA_CLASS'} : $z_soa_class; }
if(&testnull($soa_refresh))
{ $soa_refresh = &testnull($z_soa_refresh) ?
$def{'NAMESERVERS.SOA_REFRESH'} : $z_soa_refresh; }
if(&testnull($soa_retry))
{ $soa_retry = &testnull($z_soa_retry) ?
$def{'NAMESERVERS.SOA_RETRY'} : $z_soa_retry; }
if(&testnull($soa_expire))
{ $soa_expire = &testnull($z_soa_expire) ?
$def{'NAMESERVERS.SOA_EXPIRE'} : $z_soa_expire; }
if(&testnull($soa_minimum))
{ $soa_minimum = &testnull($z_soa_minimum) ?
$def{'NAMESERVERS.SOA_MINIMUM'} : $z_soa_minimum; }
# Bei den folgenden Attributen stehen neben Nameserver-spezifischen
# Angaben Default-Werte zur Verfuegung
![Page 107: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/107.jpg)
1 0 4 ANHANGA. LISTINGS
# Verzeichnis, in dem die Zonendateien abgelegt werden
if(&testnull($files_dir))
{ $files_dir = $def{'NAMESERVERS.FILES_DIR'}; }
# Name fuer Zonendatei des Loopback-Interfaces (127.1 -> localhost)
if(&testnull($filename_lo))
{ $filename_lo = $def{'NAMESERVERS.FILENAME_LO'}; }
# Name fuer Zonendatei des Loopback-Interfaces (localhost -> 127.1)
if(&testnull($filename_lb))
{ $filename_lb = $def{'NAMESERVERS.FILENAME_LB'}; }
# Name fuer Zonendatei fuer Root-Domain (Cache)
if(&testnull($filename_ca))
{ $filename_ca = $def{'NAMESERVERS.FILENAME_CA'}; }
# FTP Host, von dem obige Datei geholt wird
if(&testnull($ftp_host))
{ $ftp_host = $def{'NAMESERVERS.FTP_HOST'}; }
# Quellverzeichnis auf dem FTP-Server
if(&testnull($ftp_dir))
{ $ftp_dir = $def{'NAMESERVERS.FTP_DIR'}; }
# Name der Datei auf dem FTP-Server
if(&testnull($ftp_file))
{ $ftp_file = $def{'NAMESERVERS.FTP_FILE'}; }
# Die folgenden beiden Attribute werden u.U. fuer das Erzeugen
# eines Glue-Records fuer den aktuellen Nameserver-Host beim
# Forward-Mapping benoetigt; neben Host-spezifischen Angaben
# stehen Default-Werte zur Verfuegung
if(&testnull($record_ttl))
{ $record_ttl = $def{'HOSTS.RECORD_TTL'}; }
if(&testnull($record_class))
{ $record_class = $def{'HOSTS.RECORD_CLASS'}; }
# --------------------------------------------------------------------
# Aufbau des Fully Qualified Domain Name fuer den Nameserver-Host
local($fqdn);
if((!&testnull($subdomainname)) && (length($subdomainname) > 0))
{
$fqdn = $hostname . '.' . $subdomainname . '.' . $domainname;
}
else
{
$fqdn = $hostname . '.' . $domainname;
}
![Page 108: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/108.jpg)
A. 2. HAUPTPROGRAMMORA2DNS 1 0 5
# Generierung der zugehoerigen IP-Adresse
# Im Falle mehrerer IP-Adressen wird die "erste" ausgewaehlt
# Die Liste der IP-Adressen wird ausserdem fuer die Boot-Datei benoetigt
local(@ipaddr);
&query_bind($csr_ipaddr, *ipaddr, $host);
# $ipaddr[..] kann nicht NULL sein
local($ipa) = $ipaddr[0];
# Loeschen von Leerzeichen in der Adresse (DB-Konvention)
$ipa =~ s/\x20//g;
# --------------------------------------------------------------------
# Verzeichnis, in dem Daten fuer den Nameserver-Host abgelegt werden
local($directory) = $def{'ORA2DNS.FTP_DIR'} . '/' . $fqdn;
# Loeschen fuehrender Slashes ('/') in den Namesattributen
$files_dir =~ s/^\///o;
$filename_lo =~ s/^\///o;
$filename_lb =~ s/^\///o;
$filename_ca =~ s/^\///o;
# Generierung des Verzeichnisses fuer die Zonendateien
&make_dir_ns($directory, $files_dir);
# --------------------------------------------------------------------
# Generierung der Boot-Datei
# Die Standard-Ausgabe wird fuer das Unterprogramm auf die
# entprechende Datei umgelenkt
local($filename) = $directory . '/etc/named.boot';
open(NF, ">$filename") || die "Can't open $filename: $!\n";
local($OLD_HANDLE) = select(NF);
&named_boot($ipa, $fqdn, $id, $filename_ca, *ipaddr, $files_dir,
$filename_lo, $filename_lb);
select($OLD_HANDLE);
close(NF);
# --------------------------------------------------------------------
# Verzeichnis fuer Zonendateien
$directory .= '/' . $files_dir. '/';
![Page 109: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/109.jpg)
1 0 6 ANHANGA. LISTINGS
# --------------------------------------------------------------------
# Generierung der Zonen-Dateien fuer Forward- & Reverse-Mapping
local(@zones);
&query_bind($csr_zones, *zones, $id);
# Schleife ueber saemtliche Zonen, die von dem aktuellen Nameserver
# als Primary Nameserver verwaltet werden
for(@zones)
{
local($id, $name, $sourcefile, $soa_responsible, $soa_class,
$soa_serial, $soa_refresh, $soa_retry, $soa_expire, $soa_minimum)
= split(/$;/);
# $id, $name, $soa_responsible & $soa_serial koennen nicht NULL sein
# $sourcefile, $soa_class, $soa_refresh, $soa_retry, $soa_expire &
# $soa_minimum duerfen NULL sein
# Belegen der optionalen Attribute, falls
# sie in der Datenbank nicht belegt wurden (NULL-Werte)
# Sind die folgenden Attribute nicht speziell fuer Zone angegeben,
# so werden Default-Werte verwendet
# Endung des Namens der Zonendatei
if(&testnull($sourcefile))
{
$sourcefile = $name . $def{'ZONES.SOURCEFILE_SUFFIX'};
}
# Eintraege fuer den SOA-Record der Zone
if(&testnull($soa_class))
{ $soa_class = $def{'ZONES.SOA_CLASS'}; }
if(&testnull($soa_refresh))
{ $soa_refresh = $def{'ZONES.SOA_REFRESH'}; }
if(&testnull($soa_retry))
{ $soa_retry = $def{'ZONES.SOA_RETRY'}; }
if(&testnull($soa_expire))
{ $soa_expire = $def{'ZONES.SOA_EXPIRE'}; }
if(&testnull($soa_minimum))
{ $soa_minimum = $def{'ZONES.SOA_MINIMUM'}; }
# ------------------------------------------------------------------
# Die Standard-Ausgabe wird fuer das jeweilige Unterprogramm auf die
# entprechende Datei umgelenkt
$filename = $directory . $sourcefile;
![Page 110: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/110.jpg)
A. 2. HAUPTPROGRAMMORA2DNS 1 0 7
open(NF, ">$filename") || die "Can't open $filename: $!\n";
$OLD_HANDLE = select(NF);
# ------------------------------------------------------------------
# Forward- & Reverse-Mapping Zonendateien erfordern sehr unterschiedliche
# Generierungsverfahren; Feststellung des Typs anhand des Zonennamens
if(!($name =~ /\.in-addr\.arpa$/i))
{
&named_forward('/' . $files_dir. '/' . $sourcefile, $fqdn, $ipa,
$soa_class, $soa_responsible, $soa_serial,
$soa_refresh, $soa_retry, $soa_expire, $soa_minimum,
$name, $id, $record_ttl, $record_class);
}
else
{
&named_reverse('/' . $files_dir. '/' . $sourcefile, $fqdn, $ipa,
$soa_class, $soa_responsible, $soa_serial,
$soa_refresh, $soa_retry, $soa_expire, $soa_minimum,
$name, $id);
}
# ------------------------------------------------------------------
select($OLD_HANDLE);
close(NF);
}
# --------------------------------------------------------------------
# Generierung der Zonen-Datei fuer das Loopback-Interface (127.1 -> localhost)
# Die Standard-Ausgabe wird fuer das Unterprogramm auf die
# entprechende Datei umgelenkt
$filename = $directory . $filename_lo;
open(NF, ">$filename") || die "Can't open $filename: $!\n";
$OLD_HANDLE = select(NF);
&named_local('/' . $files_dir. '/' . $filename_lo, $ipa,
$soa_class, $fqdn, $soa_responsible, $soa_serial,
$soa_refresh, $soa_retry, $soa_expire, $soa_minimum);
select($OLD_HANDLE);
close(NF);
# --------------------------------------------------------------------
# Generierung der Zonen-Datei fuer das Loopback-Interface (localhost -> 127.1)
# Die Standard-Ausgabe wird fuer das Unterprogramm auf die
# entprechende Datei umgelenkt
![Page 111: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/111.jpg)
1 0 8 ANHANGA. LISTINGS
$filename = $directory . $filename_lb;
open(NF, ">$filename") || die "Can't open $filename: $!\n";
$OLD_HANDLE = select(NF);
&named_loopback('/' . $files_dir. '/' . $filename_lb, $ipa,
$soa_class, $fqdn, $soa_responsible, $soa_serial,
$soa_refresh, $soa_retry, $soa_expire, $soa_minimum);
select($OLD_HANDLE);
close(NF);
# --------------------------------------------------------------------
# Holen der Zonen-Datei fuer die Root-Domain (via Anonymous FTP)
# Als Passwort wird die E-Mail-Adresse des DNS-Administrators verwendet
$filename = $directory . $filename_ca;
&named_cache($filename, $ftp_host, $ftp_dir, $ftp_file, $soa_responsible);
}
# ----------------------------------------------------------------------
# Schliessen der Cursor globaler SQL-Anfragen
&query_close($csr_hosts);
&query_close($csr_ipaddr);
&query_close($csr_zones);
# ======================================================================
# Ausloggen aus der Datenbank
&logout;
# Programmende
print "Ready.\n";
![Page 112: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/112.jpg)
A. 3. MODULORA2DNS. PL 1 0 9
A. 3 Modul ora2dns. pl
# **********************************************************************
# * Integration des Managements des Domain-Name-Systems in die *
# * vorhandene Managementumgebung des Leibniz-Rechenzentrums (LRZ) *
# * (Diplomarbeit an der TU-Muenchen, SS 94 - WS 94/95) *
# * ------------------------------------------------------------------ *
# * Autor: Heiko Hauck ([email protected]) *
# * Datei: ora2dns.pl (Oraperl Bibliothek fuer ora2dns) *
# **********************************************************************
# *globale* Variable, auf deren Wert ein DB-Attribut gesetzt wird (vor
# dem Packen), wenn es undefiniert (NULL) ist
$NULL="\0";
# **********************************************************************
# PROZEDUR zum Einlesen der Standard-/Default-Werte (keine Parameter)
# Diese koennen mit Hilfe der Datei $HOME/.ora2dnsrc abgeaendert werden.
# Ergebnis: *globales* assoziatives Array %def
sub set_default
{
# Standardvorbelegung des Arrays
%def =
(
'ORA2DNS.QUALIFIER', '',
'ORA2DNS.FTP_DIR', '/home/a/a2824ch/dipl/perl/ftp',
'HOSTS.RECORD_TTL', '',
'HOSTS.RECORD_CLASS', 'IN',
'MAILX.RECORD_TTL', '',
'MAILX.RECORD_CLASS', 'IN',
'NAMESERVERS.FILENAME_EXE', '/etc/named',
'NAMESERVERS.FILENAME_PID', '/etc/named.pid',
'NAMESERVERS.SOA_CLASS', 'IN',
'NAMESERVERS.SOA_REFRESH', '21600',
'NAMESERVERS.SOA_RETRY', '3600',
'NAMESERVERS.SOA_EXPIRE', '604800',
'NAMESERVERS.SOA_MINIMUM', '172800',
'NAMESERVERS.FILES_DIR', '/etc/namedb',
'NAMESERVERS.FILENAME_LO', 'named.local',
'NAMESERVERS.FILENAME_LB', 'named.loopback',
'NAMESERVERS.FILENAME_CA', 'named.cache',
'NAMESERVERS.FTP_HOST', 'rs.internic.net',
'NAMESERVERS.FTP_DIR', '/domain',
'NAMESERVERS.FTP_FILE', 'named.cache',
'SECONDARY_LL.BACKUPFILE_SUFFIX', '.BF',
'SECONDARY_LF.BACKUPFILE_SUFFIX', '.BF',
'ZONES.SOURCEFILE_SUFFIX', '.DNF',
'ZONES.SOA_CLASS', 'IN',
![Page 113: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/113.jpg)
1 1 0 ANHANGA. LISTINGS
'ZONES.SOA_REFRESH', '21600',
'ZONES.SOA_RETRY', '3600',
'ZONES.SOA_EXPIRE', '604800',
'ZONES.SOA_MINIMUM', '172800'
);
# Name der Konfigurationsdatei
local($filename) = $ENV{'HOME'} . '/.ora2dnsrc';
# Aktuelle Zeilennummer beim Auslesen (fuer Fehlermeldungen)
local($line) = 1;
# Falls die Datei existiert, ...
if(-e $filename)
{
# ..., wird sie geoeffnet
open(RCFILE,$filename) || die "Can't open $filename: $!\n";
# zeilenweises Einlesen
while(<RCFILE>)
{
# Kommentarzeilen werden ignoriert
if (/^#/) { $line++; next; }
# Einlesen von Variablenname & -belegung
local($var, $value) = ('', '');
($var, $value) = /^(\S+)\s+(\S+)/;
# Ist die Belegung leer, so wird der Name dennoch eingelesen
if($value eq '') { ($var) = /^(\S+)/; }
# Variablenname gegeben?
if($var ne '')
{
# Im Falle eines undefinierten Namens wird eine Fehlermeldung
# ausgegeben (kein Programmabbruch)
if(!defined($def{$var}))
{
print STDERR "Unknown variable $var in '$filename' line $line\n";
}
else
# gueltiger Variablenname
{
# Folgende Variablen muessen mit einem Wert belegt sein,
# sonst Fehlermeldung und keine Modifikation des bisherigen Wertes
if((length($value) == 0) &&
($var ne 'ORA2DNS.QUALIFIER') &&
($var ne 'HOSTS.RECORD_TTL') &&
($var ne 'MAILX.RECORD_TTL') &&
($var ne 'SECONDARY_LL.BACKUPFILE_SUFFIX') &&
![Page 114: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/114.jpg)
A. 3. MODULORA2DNS. PL 1 1 1
($var ne 'SECONDARY_LF.BACKUPFILE_SUFFIX') &&
($var ne 'ZONES.SOURCEFILE_SUFFIX'))
{
print STDERR
"Variable $var in '$filename' line $line can't be set to ''\n";
}
else
# Modifikation der Variable
{
$def{$var} = $value;
}
}
}
# neue Zeile
$line++;
}
# Konfigurationsdatei schliessen
close(RCFILE);
}
}
# **********************************************************************
# PROZEDUR zum Einloggen in die Datenbank
# (keine eigenen Parameter, sondern ggf. die des Programmaufrufes)
# Ergebnis: *globale* Variable $lda (Datenbank-ID)
sub login
{
# lokale Variablen
local($login_sid) = 'oracle';
local($login_name,$login_pw);
# Werden beim Programmstart zwei (oder mehrere) Parameter angegeben,
# so werden diese (die ersten beiden) als Login-Name bzw. Passwort
# fuer die Datenbank verwendet, ...
if(@ARGV >= 2)
{
$login_name = @ARGV[0];
$login_pw = @ARGV[1];
}
else
# ..., sonst werden Standardvorgaben eingesetzt:
{
# Die folgenden Zeilen sind an die jeweilige Umgebung anzupassen
$login_name = `cat /home/a/a2824ch/oracle/LOGIN`;
$login_pw = `cat /home/a/a2824ch/oracle/PASSWD`;
![Page 115: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/115.jpg)
1 1 2 ANHANGA. LISTINGS
# $login_name = 'nduser';
# $login_pw = 'usernd';
}
# Einloggen
# Misslingt dies, dann Programmabbruch
$lda = &ora_login($login_sid, $login_name, $login_pw) ||
die "$ora_errstr\n";
}
# **********************************************************************
# PROZEDUR zum Ausloggen aus der Datenbank (keine Parameter)
# Voraussetzung: *globale* Variable $lda (Datenbank-ID) vorher gesetzt
sub logout
{
# Ausloggen
# Misslingt dies, dann Programmabbruch
do ora_logoff($lda) || die "Can't log off Oracle\n";
}
# **********************************************************************
# PROZEDUR fuer eine vollstaendige Datenbankabfrage
# Parameter: $_[0] = Query-Text
# $_[1] = Pointer auf die Ergebnisliste mit Tupeln
# Im Falle mehrerer abgefragter Attribute werden diese gepackt.
# Voraussetzung: *globale* Variable $lda (Datenbank-ID) vorher gesetzt
# Rueckgabewert: Anzahl der gefundenen Tupel
sub query
{
# (lokalen) Cursor oeffnen und Abfrage durchfuehren
# Misslingt dies, dann Programmabbruch
local($csr) = &ora_open($lda, $_[0]) || die $ora_errstr;
# lokale Variablen
local(@entry);
local(*entrylist) = $_[1];
local($entrycount) = 0;
# Liste am Anfang leer
@entrylist = ();
# Einlesen saemtlicher Tupel
while(@entry = &ora_fetch($csr))
{
# Ueberpruefung, ob <NULL>-Werte in den Attributen
# vorhanden sind; in diesem Fall werden sie durch den Wert der
# globalen Variable $NULL ersetzt (dieser darf also nicht als
![Page 116: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/116.jpg)
A. 3. MODULORA2DNS. PL 1 1 3
# Attributbelegung in der DB vorkommen).
# Wuerde man auf diese Massnahme verzichten, so wuerde
# die Information eines <NULL>-Wertes nach join/split
# dahingehend verloren gehen, dass er als Leerstring
# bzw. numerische Null interpretiert werden wuerde.
# Ueberpruefung fuer jedes einzelne Attribut
foreach(@entry)
{
$_ = $NULL unless defined($_);
}
# Packen aller Attribute eines Tupels zu einem Listenelement
# und Eintrag in die Ergebnisliste
push(@entrylist, join($;, @entry));
$entrycount++;
}
# Warnung, falls ein Fehler aufgetreten ist
warn $ora_errstr if $ora_errno;
# Cursor schliessen
# Misslingt dies, dann Programmabbruch
do ora_close($csr) || die "Can't close Oracle cursor\n";
# Anzahl der gefundenen Tupel
$entrycount;
}
# **********************************************************************
# PROZEDUR zum Eroeffnen einer Datenbankabfrage
# Parameter: $_[0] = Query-Text
# Voraussetzung: *globale* Variable $lda (Datenbank-ID) vorher gesetzt
# Rueckgabewert: Cursor fuer die Datenbankabfrage
sub query_open
{
# Cursor oeffnen
# Misslingt dies, dann Programmabbruch
&ora_open($lda, $_[0]) || die $ora_errstr;
}
# **********************************************************************
# PROZEDUR zum Durchfuehren einer Datenbankabfrage
# Parameter: $_[0] = Cursor fuer die Datenbankabfrage
# $_[1] = Pointer auf die Ergebnisliste mit Tupeln
# $_[2..] = Werte der zu bindenden Query-Variablen
# Im Falle mehrerer abgefragter Attribute werden diese gepackt.
![Page 117: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/117.jpg)
1 1 4 ANHANGA. LISTINGS
# Rueckgabewert: Anzahl der gefundenen Tupel
sub query_bind
{
# lokale Variablen
local($csr) = shift @_;
local(@entry);
local(*entrylist) = shift @_;
local($entrycount) = 0;
# Liste am Anfang leer
@entrylist = ();
# Binden der Query-Variablen und Abfrage durchfuehren
# Misslingt dies, dann Programmabbruch
&ora_bind($csr,@_) || die $ora_errstr;
# Einlesen saemtlicher Tupel
while(@entry = &ora_fetch($csr))
{
# Ueberpruefung, ob <NULL>-Werte in den Attributen
# vorhanden sind; in diesem Fall werden sie durch den Wert der
# globalen Variable $NULL ersetzt (dieser darf also nicht als
# Attributbelegung in der DB vorkommen).
# Wuerde man auf diese Massnahme verzichten, so wuerde
# die Information eines <NULL>-Wertes nach join/split
# dahingehend verloren gehen, dass er als Leerstring
# bzw. numerische Null interpretiert werden wuerde.
# Ueberpruefung fuer jedes einzelne Attribut
foreach(@entry)
{
$_ = $NULL unless defined($_);
}
# Packen aller Attribute eines Tupels zu einem Listenelement
# und Eintrag in die Ergebnisliste
push(@entrylist, join($;, @entry));
$entrycount++;
}
# Warnung, falls ein Fehler aufgetreten ist
warn $ora_errstr if $ora_errno;
# Anzahl der gefundenen Tupel
$entrycount;
}
# **********************************************************************
![Page 118: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/118.jpg)
A. 3. MODULORA2DNS. PL 1 1 5
# PROZEDUR zum Schliessen einer Datenbankabfrage
# Parameter: $_[0] = Cursor fuer die Datenbankabfrage
sub query_close
{
# Cursor schliessen
# Misslingt dies, dann Programmabbruch
do ora_close($_[0]) || die "Can't close Oracle cursor\n";
}
# **********************************************************************
# FUNKTION zum Testen, ob ein Attribut undefiniert ist
# Parameter: $_[0] = entpacktes Attribut
# Rueckgabewert: TRUE, falls undefiniert, sonst FALSE
sub testnull
{
$_[0] eq $NULL;
}
# **********************************************************************
# PROZEDUR zum Sicherstellen, dass ein Attribut definiert ist
# (sonst Programmabbruch)
# Parameter: $_[0] = entpacktes Attribut
# $_[1] = Tabellenname
# $_[2] = Attributname
# Voraussetzung: *globale* Variable $DB (Datenbank-Qualifier) vorher gesetzt
sub notnull
{
# Programmabbruch mit Fehlermeldung, falls undefiniert
die "Illegal entry (NULL) for $_[2] in table ${DB}$_[1]\n"
if $_[0] eq $NULL;
}
# **********************************************************************
1;
![Page 119: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/119.jpg)
1 1 6 ANHANGA. LISTINGS
A. 4 Modul make di r. pl
# **********************************************************************
# * Integration des Managements des Domain-Name-Systems in die *
# * vorhandene Managementumgebung des Leibniz-Rechenzentrums (LRZ) *
# * (Diplomarbeit an der TU-Muenchen, SS 94 - WS 94/95) *
# * ------------------------------------------------------------------ *
# * Autor: Heiko Hauck ([email protected]) *
# * Datei: make_dir.pl (Oraperl Bibliothek fuer ora2dns) *
# **********************************************************************
# PROZEDUR zum Erstellen eines einzelnen Verzeichnisses innerhalb des
# Unix-Dateibaumes
# Parameter: $_[0] = Name des Verzeichnisses
sub mk_dir
{
# Das Verzeichnis wird nur erstellt, wenn es noch nicht vorhanden ist
if(!(-d $_[0]))
{
# Erstellung mit Leserechten fuer jedermann
if(!mkdir($_[0], 0755))
{
# Misslingt dies, dann Programmabbruch
die "Can't create directory '$_[0]'";
}
# Bestaetigung
print "Creating directory '$_[0]'\n";
}
}
# **********************************************************************
# PROZEDUR zum Erstellen des fuer die Resolverkonfiguration benoetigten
# Verzeichnisbaumes (keine Parameter)
sub make_dir
{
# Wurzel des neuen Verzeichnisbaumes
local($dir) = $def{'ORA2DNS.FTP_DIR'};
# Falls diese nicht exisiert, dann Programmabbruch
if(!(-d $dir))
{
die "Directory '$dir' (for ftp) does not exist";
}
# Auswahl aller Hosts mit Name, Subdomain- und Domainname
# Hierfuer werden innerhalb des angegebenen Verzeichnisses Unterverzeichnisse
# angelegt
![Page 120: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/120.jpg)
A. 4. MODULMAKEDIR. PL 1 1 7
local(@hosts);
&query(<<" END_SQL", *hosts);
select h.name, h.subdomain_name, z.name
from ${DB}hosts h, ${DB}zones z
where h.zone = z.id
END_SQL
# --------------------------------------------------------------------
# Schleife ueber alle Hosts
for(@hosts)
{
# Parameter fuer den aktuellen Host
local($host, $subdomain, $domain) = split(/$;/);
# $host, $domain koennen nicht NULL sein
# $subdomain darf NULL sein
# Aufbau des FQDN, der den Unterverzeichnisnamen bestimmt
local($fqdn);
if((!&testnull($subdomain)) && (length($subdomain) > 0))
{
$fqdn = $host . '.' . $subdomain . '.' . $domain;
}
else
{
$fqdn = $host . '.' . $domain;
}
# Generieren des Unterverzeichnisses und eines darin enthaltenen
# '/etc'-Verzeichnisses
&mk_dir($dir . '/' . $fqdn);
&mk_dir($dir . '/' . $fqdn . '/etc');
}
}
# **********************************************************************
# PROZEDUR zum Erstellen des fuer die Zonenkonfigurationsdateien benoetigten
# Verzeichnisses
# Parameter: $_[0] = Verzeichnis, in dem das neue erstellt werden soll
# $_[1] = Name des zu erstellenden Verzeichnis(-pfades)
sub make_dir_ns
{
# lokale Parameterkopien
local($dir,$newdir) = @_;
# Liste der einzelnen Knoten im Verzeichnispfad
local(@fdirs) = split(/\//, $newdir);
![Page 121: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/121.jpg)
1 1 8 ANHANGA. LISTINGS
# sukzessiver Aufbau des Verzeichnispfades
for(@fdirs)
{
$dir .= '/' . $_;
&mk_dir($dir);
}
}
# **********************************************************************
1;
![Page 122: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/122.jpg)
A. 5. MODULRES CONF. PL 1 1 9
A. 5 Modul res conf . pl
# **********************************************************************
# * Integration des Managements des Domain-Name-Systems in die *
# * vorhandene Managementumgebung des Leibniz-Rechenzentrums (LRZ) *
# * (Diplomarbeit an der TU-Muenchen, SS 94 - WS 94/95) *
# * ------------------------------------------------------------------ *
# * Autor: Heiko Hauck ([email protected]) *
# * Datei: res_conf.pl (Oraperl Bibliothek fuer ora2dns) *
# **********************************************************************
# PROZEDUR zur formatierten Ausgabe eines Nameserver-Eintrags
# Parameter: $_[0] = IP-Adresse des Nameservers
# $_[1] = FQDN des Nameservers
# Pro Konfigurationsdatei max. 3 Nameserver (*globale* Variable $nsc)
sub print_nameserver
{
# Noch ein Eintrag zulaessig?
if($nsc < 3)
{
# formatierte Ausgabe und Zaehlererhoehung
print "nameserver @_[0]", " " x (20 - length(@_[0])), "# @_[1]\n";
$nsc++;
}
}
# **********************************************************************
# PROZEDUR zur Bestimmung des "optimalen" Weges zwischen zwei Hosts
# mit jeweils einer oder mehreren IP-Adressen; dabei die die guenstigste
# Adresse des Zielhosts ausgewaehlt und aus der Zieladressenliste gestrichen
# Das hierzu verwendete Verfahren basiert auf einem Vergleich der
# Subnetzmasken; diese Prozedur kann evtl. durch eine bessere ersetzt
# werden (siehe Ausarbeitung)
# Parameter: $_[0] = Pointer auf Liste mit IP-Adressen des Quellhosts
# $_[1] = Pointer auf Liste mit IP-Adressen des Zielhosts
# Rueckgabewert: s. oben
sub best_route
{
# Lokale Parameterkopien und Variablen
local(*sourcelist) = $_[0];
local(*destlist) = $_[1];
local($fits) = -1; # Anzahl der bisher max. identischen Bytes
local($offset); # Nummer der zugehoerigen Ziel-IP-Adresse
# Schleife ueber alle Quellhost-IP-Adressen
SOURCE:
![Page 123: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/123.jpg)
1 2 0 ANHANGA. LISTINGS
for(@sourcelist)
{
# Extrahieren der Quellhost-IP-Adresse
local($a,$b,$c,$d) =
/\x20{0,2}(\d{1,3})\.\x20{0,2}(\d{1,3})\.\x20{0,2}(\d{1,3})\.\x20{0,2}(\d{1,3})/;
# Nummer der jeweiligen Zielhost-IP-Adresse
local($o)=0;
# Schleife ueber alle Zielhost-IP-Adressen
for(@destlist)
{
# Extrahieren der Quellhost-IP-Adresse
# Programmabbruch im Falle eines syntaktischen Fehlers
die "Illegal entry for ip_addr in table ${DB}ipaddr\n" unless
/\x20{0,2}(\d{1,3})\.\x20{0,2}(\d{1,3})\.\x20{0,2}(\d{1,3})\.\x20{0,2}(\d{1,3})/;
# Stufenweiser Byte-Vergleich zur Bestimmung des Uebereinstimmungsgrades
# beider Adressen
local($f);
if($1 == $a)
{
if($2 == $b)
{
if($3 == $c)
{
if($4 == $d) { $f = 4; } # Identische Adressen
else { $f = 3; } # Bytes 1-3 gleich
}
else { $f = 2; } # Bytes 1-2 gleich
}
else { $f = 1; } # Byte 1 gleich
}
else { $f = 0; } # Voellig verschiedene Adressen
# Verbesserung gegenueber bisher?
if($fits < $f)
{
# Neuer Uebereinstimmungsgrad und Nummer
$fits = $f;
$offset = $o;
# Bei identischen Adressen keine Verbesserung mehr moeglich,
# deshalb Schleifenabbruch
last SOURCE if($fits == 4);
}
$o++;
}
}
# Auswahl und Ausschneiden der besten IP-Adresse aus der Zielhostliste
![Page 124: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/124.jpg)
A. 5. MODULRES CONF. PL 1 2 1
splice(@destlist,$offset,1);
}
# **********************************************************************
# PROZEDUR zur Erstellung saemtlicher Resolverkonfigurationsdateien
# Parameter: keine
sub res_conf
{
# Auswahl aller Hosts mit ihren Identifikatoren, Namen, Subdomain-Namen &
# Identifikatoren der zugehoerigen Zonen
local(@hosts);
&query(<<" END_SQL", *hosts);
select id, name, subdomain_name, zone from ${DB}hosts
END_SQL
# Auswahl des Domain-Namens & Host-Identifikators, auf dem der
# zugehoerige Primary Nameserver laeuft, fuer eine bestimmte Zone
local($csr_1) = &query_open(<<" END_SQL");
select z.name, n.host from ${DB}nameservers n, zones z
where n.id = z.prim_nameserver and z.id = :1
END_SQL
# Auswahl aller IP-Adressen eines bestimmten Hosts
local($csr_2) = &query_open(<<" END_SQL");
select ip_addr from ${DB}ipaddr where host = :1
END_SQL
# Auswahl der Host-Identifikatoren von lokalen Secondary Nameservern,
# die eine bestimmte lokale Zone spiegeln
local($csr_3) = &query_open(<<" END_SQL");
select n.host
from ${DB}nameservers n, ${DB}secondary_ll s
where n.id = s.nameserver and s.zone = :1
END_SQL
# Auswahl der Hosts mit ihren Namen, Subdomain- & Domainnamen,
# die eine bestimmte IP-Adresse besitzen
local($csr_4) = &query_open(<<" END_SQL");
select h.name, h.subdomain_name, z.name
from ${DB}hosts h, ${DB}ipaddr i, ${DB}zones z
where h.id = i.host and h.zone=z.id and i.ip_addr = :1
END_SQL
# --------------------------------------------------------------------
# Schleife ueber saemtliche Hosts
for(@hosts)
{
# Anzahl der Nameserver pro Konfig.Datei: *globale* Variable $nsc
![Page 125: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/125.jpg)
1 2 2 ANHANGA. LISTINGS
$nsc = 0;
# Parameter fuer den aktuellen Host
local($id, $name, $subdomain, $zone) = split(/$;/);
# $id, $name koennen nicht NULL sein
# $zone darf nicht NULL sein (¬null ...)
# $subdomain_name darf NULL sein
¬null($zone, 'hosts', 'zone');
# ------------------------------------------------------------------
# Auswahl des Primary Nameservers der Zone des aktuellen Hosts
local(@dn_pnsh);
&query_bind($csr_1, *dn_pnsh, $zone);
# Ergebnis = 1 Tupel
local($domain, $pns_host) = split(/$;/,@dn_pnsh[0]);
# $domain, $pns_host koennen nicht NULL sein
# Vollstaendiger Domainname
if((!&testnull($subdomain)) && (length($subdomain) > 0))
{
$domain = $subdomain . '.' . $domain;
}
# Ausgabedatei oeffnen und Standardausgabe dorthin umlenken
local($filename) = $def{'ORA2DNS.FTP_DIR'} . '/' .
$name . '.' . $domain . '/etc/resolv.conf';
open(NF,">$filename") || die "Can't open $filename: $!\n";
local($OLD_HANDLE)=select(NF);
# IP-Adresse des aktuellen Hosts bestimmen
local(@ipa_host);
&query_bind($csr_2, *ipa_host, $id);
# $ipa_host[..] kann nicht NULL sein
# Auswahl der "ersten" IP-Adresse
local($ipa) = $ipa_host[0];
# Eliminieren von darin enthaltenen Leerzeichen
$ipa =~ s/\x20//g;
# ------------------------------------------------------------------
# Ausgabe des Dateikopfes
print "# /etc/resolv.conf for $name.$domain [$ipa]\n";
print "# created by ora2dns (08/94 by Heiko Hauck; Diplomarbeit TUM)\n\n";
print "# User: ", `whoami`;
print "# Date: ", `date`, "\n";;
print "domain $domain\n\n";
# ------------------------------------------------------------------
![Page 126: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/126.jpg)
A. 5. MODULRES CONF. PL 1 2 3
# Laeuft der Primary Nameserver auf dem aktuellen Host, so wird dieser
# sofort eingetragen, ...
local(@ipa_nsh);
if($psn_host == $id)
{
&print_nameserver('127.0.0.1', 'localhost');
}
else
# ..., sonst wird seine "beste" IP-Adresse in eine Liste (@ipa_nsh)
# eingetragen
{
local(@ipa);
&query_bind($csr_2, *ipa, $pns_host);
# $ipa[..] kann nicht NULL sein
@ipa_nsh = (&best_route(*ipa_host, *ipa));
}
# ------------------------------------------------------------------
# Auswahl der Secondary Nameserver der Zone des aktuellen Hosts
local(@sns_hosts);
&query_bind($csr_3, *sns_hosts, $zone);
# $sns_hosts[..] kann nicht NULL sein
# Schleife ueber alle Secondary Nameserver
for(@sns_hosts)
{
# Laeuft der Nameserver auf dem aktuellen Host, so wird dieser
# sofort eingetragen, ...
if($_ == $id)
{
if ($nsc == 0)
{
&print_nameserver('127.0.0.1', 'localhost');
}
}
else
# ..., sonst wird seine "beste" IP-Adresse in eine Liste (@ipa_nsh)
# eingetragen
{
local(@ipa);
&query_bind($csr_2, *ipa, $_);
# $ipa[..] kann nicht NULL sein
push(@ipa_nsh,&best_route(*ipa_host, *ipa));
}
}
# ------------------------------------------------------------------
![Page 127: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/127.jpg)
1 2 4 ANHANGA. LISTINGS
# Eintragen der (restlichen) Nameserver in die Datei
# Schleife ueber die jeweils "besten" IP-Adressen der Nameserverhosts
while(@ipa_nsh)
{
# Auswahl und Ausaschneiden der "besten" Adresse der Liste
local($ipa) = &best_route(*ipa_host,*ipa_nsh);
# Auswahl des zugehoerigen Hosts (Name, Subdomain- & Domainname)
local(@hn_sn_dn);
if(&query_bind($csr_4, *hn_sn_dn, $ipa) !=1 )
{
# Programmabbruch, falls eine IP-Adresse mehreren Hosts zugeordnet
# werden kann
die "Multiple hosts for one IP address";
}
local($host, $subdomain, $domain) = split(/$;/,$hn_sn_dn[0]);
# $host, $domain koennen nicht NULL sein
# $subdomain darf NULL sein
# Vollstaendiger Domainname
if((!&testnull($subdomain)) && (length($subdomain) > 0))
{
$domain = $subdomain . '.' . $domain;
}
# Eliminieren von darin enthaltenen Leerzeichen
$ipa =~ s/\x20//g;
# Eintrag
&print_nameserver($ipa, $host . '.' . $domain);
}
# Standardausgabe wieder herstellen und Datei schliessen
select($OLD_HANDLE);
close(NF);
}
# Schliessen der oben fuer die Datenbankabfrage geoeffneten Cursor
&query_close($csr_1);
&query_close($csr_2);
&query_close($csr_3);
&query_close($csr_4);
}
# **********************************************************************
1;
![Page 128: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/128.jpg)
A. 6. MODULNAMEDBOOT. PL 1 2 5
A. 6 Modul named boot . pl
# **********************************************************************
# * Integration des Managements des Domain-Name-Systems in die *
# * vorhandene Managementumgebung des Leibniz-Rechenzentrums (LRZ) *
# * (Diplomarbeit an der TU-Muenchen, SS 94 - WS 94/95) *
# * ------------------------------------------------------------------ *
# * Autor: Heiko Hauck ([email protected]) *
# * Datei: named_boot.pl (Oraperl Bibliothek fuer ora2dns) *
# **********************************************************************
# PROZEDUR zur Generierung einer Nameserver-Bootdatei
# Parameter: $_[0] = IP-Adresse des Nameserverhosts (ohne Leerzeichen)
# $_[1] = FQDN des Nameserverhosts
# $_[2] = ID des Nameservers
# $_[3] = Name der Root-Domain-Datei (Cache Service)
# $_[4] = Pointer auf Liste mit IP-Adressen des Nameserverhosts
# $_[5] = Verzeichnis, in dem die Zonendateien abgelegt werden
# $_[6] = Name der Localhost-Zonendatei (127.1 -> localhost)
# $_[7] = Name der Loopback-Zonendatei (localhost -> 127.1)
# Die Ausgabe erfolgt zur Standard-Ausgabe.
sub named_boot
{
# Auswahl der Domainnamen und Sourcefile-Namen,
# deren Zonen einen best. Primary Nameserver haben
local($csr_prim) = &query_open(<<" END_SQL");
select name, sourcefile from ${DB}zones where prim_nameserver = :1
END_SQL
# Auswahl des Backupfile-Namens, Domainnamens & lokalen Primary Nameservers
# fuer Zonen, die einen bestimmten lokalen Secondary Nameserver haben
local($csr_sec_ll) = &query_open(<<" END_SQL");
select s.backupfile, z.name, z.prim_nameserver
from ${DB}secondary_ll s, ${DB}zones z
where z.id = s.zone and s.nameserver = :1
END_SQL
# Auswahl der IP-Adressen eines bestimmten Primary Nameservers
local($csr_ipaddr) = &query_open(<<" END_SQL");
select i.ip_addr
from ${DB}ipaddr i, ${DB}nameservers n
where i.host = n.host and n.id = :1
END_SQL
# Auswahl fremder Domainnamen, deren Prim.Nameserver-IP-Adressen und
# Backupfile-Namen, die einen bestimmten lokalen Secondary Nameserver haben
local($csr_sec_lf) = &query_open(<<" END_SQL");
select zone_name, ip_addr, backupfile
from ${DB}secondary_lf
where nameserver = :1
![Page 129: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/129.jpg)
1 2 6 ANHANGA. LISTINGS
END_SQL
# Auswahl der Forwarder-IP-Adressen eines bestimmten Slave Nameservers
local($csr_forward) = &query_open(<<" END_SQL");
select ip_addr from ${DB}forwarders where nameserver = :1
END_SQL
# Test, ob ein bestimmter Nameserver Slave Nameserver ist
local($csr_slave) = &query_open(<<" END_SQL");
select count(*) from ${DB}nameservers_slave where nameserver = :1
END_SQL
# --------------------------------------------------------------------
# Ausgabe des Dateikopfes
print "; /etc/named.boot for $_[1] [$_[0]]\n";
print "; created by ora2dns (08/94 by Heiko Hauck; Diplomarbeit TUM)\n";
print ";\n";
print "; User: ", `whoami`;
print "; Date: ", `date`;
print ";\n";
print "; type\t\tdomain\t\t\tsource file or host\tbackup file\n";
print ";\n";
# Ausgabe des Verzeichnisses, in dem die Zonendateien abgelegt werden
print "directory\t/$_[5]\n";
# --------------------------------------------------------------------
# Zonen-Eintraege fuer den Primary Service des Nameservers
# Hinweis als Kommentarzeile
print "; primary nameserver:\n";
# Endung der Zonendateinamen
local($suffix) = $def{'ZONES.SOURCEFILE_SUFFIX'};
# Zonen bestimmen
local(@prim);
&query_bind($csr_prim, *prim, $_[2]);
# Schleife ueber alle betroffenen Zonen
for(@prim)
{
# Parameter der aktuellen Zone
local($domainname, $sourcefile) = split(/$;/);
# $domainname kann nicht NULL sein
# $sourcefile darf NULL sein
# Wird der Name der Zonendatei nicht explizit angegeben, ...
if(&testnull($sourcefile))
![Page 130: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/130.jpg)
A. 6. MODULNAMEDBOOT. PL 1 2 7
{
# ..., so wird der Domainname + Suffix verwendet
$sourcefile = $domainname . $suffix;
}
# Eintrag in die Bootdatei
print "primary\t\t$domainname\t$sourcefile\n";
}
# Standardeintraege in der Bootdatei, da jeder Nameserver Primary Nameserver
# fuer das Loopback-Interface (forward & reverse) ist
print "primary\t\t0.0.127.in-addr.arpa\t$_[6]\n";
print "primary\t\tlocalhost\t\t$_[7]\n";
# --------------------------------------------------------------------
# Zonen-Eintraege fuer den Secondary Service des Nameservers
# Hinweis als Kommentarzeile
print "; secondary nameserver:\n";
# Endung der Zonendateinamen (lokale Zonen)
$suffix = $def{'SECONDARY_LL.BACKUPFILE_SUFFIX'};
# Lokale Zonen bestimmen
local(@sec_ll);
&query_bind($csr_sec_ll, *sec_ll, $_[2]);
# Schleife ueber alle betroffenen Zonen
for(@sec_ll)
{
# Parameter der aktuellen Zone
local($backupfile, $domainname, $prim_id) = split(/$;/);
# $backupfile darf NULL sein
# $domainname, $prim_id koennen nicht NULL sein
# IP-Adressen des zugehoerigen Primary Nameservers bestimmen ...
local(@ipaddr);
&query_bind($csr_ipaddr, *ipaddr, $prim_id);
# $ipaddr[..] kann nicht NULL sein
# ... und die "beste" davon auswaehlen
local($ipa) = &best_route($_[4], *ipaddr);
# Eliminieren von darin enthaltenen Leerzeichen
$ipa =~ s/\x20//g;
# Wird der Name der Zonendatei nicht explizit angegeben, ...
if(&testnull($backupfile))
{
# ..., so wird der Domainname + Suffix verwendet
![Page 131: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/131.jpg)
1 2 8 ANHANGA. LISTINGS
$backupfile = $domainname . $suffix;
}
# Eintrag in die Bootdatei
print "secondary\t$domainname\t$ipa\t$backupfile\n";
}
# --------------------------------------------------------------------
# Endung der Zonendateinamen (fremde Zonen)
$suffix = $def{'SECONDARY_LF.BACKUPFILE_SUFFIX'};
# Fremde Zonen bestimmen
local(@sec_lf);
&query_bind($csr_sec_lf, *sec_lf, $_[2]);
# Schleife ueber alle betroffenen Zonen
for(@sec_lf)
{
# Parameter der aktuellen Zone
local($domainname, $ipa, $backupfile) = split(/$;/);
# $domainname, $ipa koennen nicht NULL sein
# $backupfile darf NULL sein
# Eliminieren von in der IP-Adresse enthaltenen Leerzeichen
$ipa =~ s/\x20//g;
# Wird der Name der Zonendatei nicht explizit angegeben, ...
if(&testnull($backupfile))
{
# ..., so wird der Domainname + Suffix verwendet
$backupfile = $domainname . $suffix;
}
# Eintrag in die Bootdatei
print "secondary\t$domainname\t$ipa\t$backupfile\n";
}
# --------------------------------------------------------------------
# Forwarding-Eintraege, Nameserver als Forwarder Nameserver arbeitet
# Forwarder-IP-Adressen bestimmen
local(@forward);
&query_bind($csr_forward, *forward, $_[2]);
# Sind welche vorhanden?
if(@forward > 0)
{
# Hinweis als Kommentarzeile
print "; forwarding nameservers:\n";
![Page 132: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/132.jpg)
A. 6. MODULNAMEDBOOT. PL 1 2 9
# Eliminieren von in den IP-Adressen enthaltenen Leerzeichen
for(@forward)
{
s/\x20//g;
}
# Eintrag in die Bootdatei
print "forwarders\t", join(' ', @forward), "\n";
# Laeuft der Nameserver als Slave, ...
local(@slave);
&query_bind($csr_slave, *slave, $_[2]);
if($slave[0] > 0)
{
# ..., so gibt es einen entsprechenden Eintrag in die Bootdatei
print "slave\n";
}
}
# --------------------------------------------------------------------
# Standardeintrag in der Bootdatei, da jeder Nameserver Cache Nameserver
# fuer die Root-Domain ist
print "; cache nameserver:\n";
print "cache\t\t.\t\t\t$_[3]\n";
# Schliessen der oben fuer die Datenbankabfrage geoeffneten Cursor
&query_close($csr_prim);
&query_close($csr_sec_ll);
&query_close($csr_ipaddr);
&query_close($csr_sec_lf);
&query_close($csr_forward);
&query_close($csr_slave);
}
# **********************************************************************
1;
![Page 133: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/133.jpg)
1 3 0 ANHANGA. LISTINGS
A. 7 Modul named f orward. pl
# **********************************************************************
# * Integration des Managements des Domain-Name-Systems in die *
# * vorhandene Managementumgebung des Leibniz-Rechenzentrums (LRZ) *
# * (Diplomarbeit an der TU-Muenchen, SS 94 - WS 94/95) *
# * ------------------------------------------------------------------ *
# * Autor: Heiko Hauck ([email protected]) *
# * Datei: named_forward.pl (Oraperl Bibliothek fuer ora2dns) *
# **********************************************************************
# PROZEDUR zur Generierung einer Zonen-Datei fuer das Forward Mapping
# Parameter: $_[0] = Name der Datei
# $_[1] = FQDN des Nameserverhosts
# $_[2] = IP-Adresse des Nameserverhosts
# $_[3] = Klasse des SOA-Records
# $_[4] = E-Mail-Adresse (SOA-Responsible)
# $_[5] = Seriennummer im SOA-Record
# $_[6] = Refresh-Intervall im SOA-Record
# $_[7] = Retry-Intervall im SOA-Record
# $_[8] = Expire-Intervall im SOA-Record
# $_[9] = Minimum-Intervall im SOA-Record
# $_[10] = Domainname der Zone
# $_[11] = Identifikator der Zone
# $_[12] = TTL fuer Glue-Records
# $_[13] = Klasse der Glue-Records
# Die Ausgabe erfolgt zur Standard-Ausgabe.
sub named_forward
{
# Ausgabe des Dateikopfes
print "; $_[0] for $_[1] [$_[2]]\n";
print "; created by ora2dns (08/94 by Heiko Hauck; Diplomarbeit TUM)\n";
print ";\n";
print "; User: ", `whoami`;
print "; Date: ", `date`;
print ";\n";
# Ausgabe der betroffenen Zone
print "\$ORIGIN\t\t$_[10].\n";
# Ausgabe des SOA-Records fuer diese Zone
print "\@\t\t$_[3]\tSOA\t$_[1]. $_[4]. (\n";
print "\t\t\t\t\t$_[5] ; serial\n";
print "\t\t\t\t\t$_[6] ; refresh\n";
print "\t\t\t\t\t$_[7] ; retry\n";
print "\t\t\t\t\t$_[8] ; expire\n";
print "\t\t\t\t\t$_[9] ) ; minimum\n";
# --------------------------------------------------------------------
![Page 134: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/134.jpg)
A. 7. MODULNAMEDFORWARD. PL 1 3 1
# Eintrag fuer den Primary Nameserver der Zone
print "\t\tIN\tNS\t$_[1].\n";
# --------------------------------------------------------------------
# Anlegen einer Liste fuer potentielle Glue-Records
# folgende Attribute werden dabei als Listenelement gepackt:
# FQDN, TTL, Class, IP-Adresse (Reihenfolge wie angegeben)
# Primary Nameserver Host ist Kandidat fuer Glue-Record
local(@glue) = (join($;, ($_[1], $_[12], $_[13], $_[2])));
# --------------------------------------------------------------------
# Lokale Secondary Nameserver fuer die Zone
local(@servers);
&query(<<" END_SQL", *servers);
select h.id, h.name, h.subdomain_name, h.record_ttl, h.record_class, z.name
from ${DB}zones z, ${DB}hosts h, ${DB}nameservers n, ${DB}secondary_ll s
where z.id = h.zone and h.id = n.host and
n.id = s.nameserver and s.zone = $_[11]
END_SQL
# Auswahl aller IP-Adressen eines bestimmten Hosts
local($csr_ipaddr) = &query_open(<<" END_SQL");
select ip_addr from ${DB}ipaddr where host = :1
END_SQL
# Schleife ueber alle betroffenen Nameserver
for(@servers)
{
# Parameter des aktuellen Nameservers
local($id, $hostname, $subdomainname, $record_ttl, $record_class,
$domainname) = split(/$;/);
# $id, $hostname, $domainname koennen nicht NULL sein
# $subdomainname, $record_ttl, $record_class duerfen NULL sein
# Aufbau des Fully Qualified Domain Name fuer den Nameserver-Host
local($fqdn);
if((!&testnull($subdomainname)) && (length($subdomainname) > 0))
{
$fqdn = $hostname . '.' . $subdomainname . '.' . $domainname;
}
else
{
$fqdn = $hostname . '.' . $domainname;
}
# Eintrag fuer den Nameserver
print "\t\tIN\tNS\t$fqdn.\n";
![Page 135: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/135.jpg)
1 3 2 ANHANGA. LISTINGS
# ------------------------------------------------------------------
# Secondary Nameserver Host ist Kandidat fuer Glue-Record
# Record-TTL und -Class
if(&testnull($record_ttl))
{ $record_ttl = $def{'HOSTS.RECORD_TTL'}; }
if(&testnull($record_class))
{ $record_class = $def{'HOSTS.RECORD_CLASS'}; }
# IP-Adresse des Nameserver-Hosts
local(@ipaddr);
&query_bind($csr_ipaddr, *ipaddr, $id);
# $ipaddr[..] kann nicht NULL sein
local($ipa) = $ipaddr[0];
# Loeschen von Leerzeichen in der Adresse (DB-Konvention)
$ipa =~ s/\x20//g;
# Eintrag in die Liste
push(@glue, join($;, ($fqdn, $record_ttl, $record_class, $ipa)));
}
# --------------------------------------------------------------------
# Achtung: 'Perl' ueberschreibt aktuelle Parameter ohne entspr. Zuweisung!
# Deshalb: Kopie in lokale Variable
local($current) = $_[10];
# --------------------------------------------------------------------
# Fremde Secondary Nameserver fuer die Zone
# Auswahl der FQDNs und IP-Adressen der betroffenen Nameserver
&query(<<" END_SQL", *servers);
select ip_name, ip_addr from ${DB}secondary_fl where zone = $_[11]
END_SQL
# Schleife ueber alle betroffenen Nameserver
for(@servers)
{
# Parameter des aktuellen Nameservers
local($ip_name, $ip_addr) = split(/$;/);
# $ip_name kann nicht NULL sein
# $ip_addr darf u.U. NULL sein
# Eintrag fuer den Nameserver
print "\t\tIN\tNS\t$ip_name.\n";
# ------------------------------------------------------------------
![Page 136: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/136.jpg)
A. 7. MODULNAMEDFORWARD. PL 1 3 3
# Secondary Nameserver Host ist Kandidat fuer Glue-Record,
# falls sein FQDN in der zur aktuellen Zone gehoerigen Domain liegt
if($ip_name =~ /\.$current$/i)
{
# In diesem Fall muss seine IP-Adresse angegeben werden,
# sonst Programmabbruch
¬null($ip_addr, 'ip_addr', 'secondary_fl');
# Loeschen von Leerzeichen in der Adresse (DB-Konvention)
$ip_addr =~ s/\x20//g;
# Eintrag in die Liste
push(@glue, join($;, ($ip_name, '', 'IN', $ip_addr)));
}
}
# --------------------------------------------------------------------
# Nameserver Eintraege fuer delegierte (lokale) Subdomains
# Auswahl aller Zonen, die die aktuelle Zone als Vaterzone haben
local(@domains);
&query(<<" END_SQL", *domains);
select id, name, prim_nameserver from ${DB}zones where parent = $_[11]
END_SQL
# Auswahl von ID, Namen, Subdomainnamen, RR-Parameter und Domainnamen
# eines Hosts, auf dem ein bestimmter Primary Nameserver laeuft
local($csr_prim) = &query_open(<<" END_SQL");
select h.id, h.name, h.subdomain_name, h.record_ttl, h.record_class, z.name
from ${DB}zones z, ${DB}hosts h, ${DB}nameservers n
where z.id = h.zone and h.id = n.host and n.id = :1
END_SQL
# Auswahl von ID, Namen, Subdomainnamen, RR-Parameter und Domainnamen
# von Hosts, auf denen fuer eine bestimmte Zone Secondary Nameserver laufen
local($csr_serv) = &query_open(<<" END_SQL");
select h.id, h.name, h.subdomain_name, h.record_ttl, h.record_class, z.name
from ${DB}zones z, ${DB}hosts h, ${DB}nameservers n, ${DB}secondary_ll s
where z.id = h.zone and h.id = n.host and
n.id = s.nameserver and s.zone = :1
END_SQL
# Auswahl von fremden Secondary Nameservern fuer eine bestimmte Zone
local($csr_secf) = &query_open (<<" END_SQL");
select ip_name, ip_addr from ${DB}secondary_fl where zone = :1
END_SQL
# --------------------------------------------------------------------
# Schleife ueber alle delegierten lokalen Subdomains
![Page 137: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/137.jpg)
1 3 4 ANHANGA. LISTINGS
for(@domains)
{
# Parameter der akuellen Subdomain
local($id, $name, $prim_nameserver) = split(/$;/);
# $id, $name & $prim_nameserver koennen nicht NULL sein
# Subdomain-Name (innerhalb) der Domain bestimmen
local($subdomain) = $name;
$subdomain =~ s/\.$current$//i;
# Primary Nameserver fuer Subdomain
local(@prim);
&query_bind($csr_prim, *prim, $prim_nameserver);
local($hostid, $hostname, $subdomainname, $record_ttl,
$record_class, $domainname) = split(/$;/, $prim[0]);
# $hostid, $hostname, $domainname koennen nicht NULL sein
# $subdomainname, $record_ttl, $record_class duerfen NULL sein
# Aufbau des Fully Qualified Domain Name fuer den Primary Nameserver
local($fqdn);
if((!&testnull($subdomainname)) && (length($subdomainname) > 0))
{
$fqdn = $hostname . '.' . $subdomainname . '.' . $domainname;
}
else
{
$fqdn = $hostname . '.' . $domainname;
}
# Ausgabe des Subdomain-Namens mit Primary Nameserver
print "$subdomain\t\tIN\tNS\t$fqdn.\n";
# ------------------------------------------------------------------
# Primary Nameserver Host ist Kandidat fuer Glue-Record
# Record-TTL und -Class
if(&testnull($record_ttl))
{ $record_ttl = $def{'HOSTS.RECORD_TTL'}; }
if(&testnull($record_class))
{ $record_class = $def{'HOSTS.RECORD_CLASS'}; }
# IP-Adresse des Nameserver-Hosts
local(@ipaddr);
&query_bind($csr_ipaddr, *ipaddr, $hostid);
# $ipaddr[..] kann nicht NULL sein
local($ipa) = $ipaddr[0];
# Loeschen von Leerzeichen in der Adresse (DB-Konvention)
$ipa =~ s/\x20//g;
![Page 138: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/138.jpg)
A. 7. MODULNAMEDFORWARD. PL 1 3 5
# Eintrag in die Liste
push(@glue, join($;, ($fqdn, $record_ttl, $record_class, $ipa)));
# ------------------------------------------------------------------
# Lokale Secondary Nameserver fuer die Subdomain
local(@serv);
&query_bind($csr_serv, *serv, $id);
# Schleife ueber alle lokalen Secondary Nameserver
for(@serv)
{
# Host-Parameter des aktuellen Nameservers
local($id, $hostname, $subdomainname, $record_ttl, $record_class,
$domainname) = split(/$;/);
# $id, $hostname, $domainname koennen nicht NULL sein
# $subdomainname, $record_ttl, $record_class duerfen NULL sein
# Aufbau des Fully Qualified Domain Name fuer den Secondary Nameserver
local($fqdn);
if((!&testnull($subdomainname)) && (length($subdomainname) > 0))
{
$fqdn = $hostname . '.' . $subdomainname . '.' . $domainname;
}
else
{
$fqdn = $hostname . '.' . $domainname;
}
# Ausgabe des Secondary Nameservers
print "\t\tIN\tNS\t$fqdn.\n";
# ----------------------------------------------------------------
# Secondary Nameserver Host ist Kandidat fuer Glue-Record
# Record-TTL und -Class
if(&testnull($record_ttl))
{ $record_ttl = $def{'HOSTS.RECORD_TTL'}; }
if(&testnull($record_class))
{ $record_class = $def{'HOSTS.RECORD_CLASS'}; }
# IP-Adresse des Nameserver-Hosts
local(@ipaddr);
&query_bind($csr_ipaddr, *ipaddr, $id);
# $ipaddr[..] kann nicht NULL sein
local($ipa) = $ipaddr[0];
# Loeschen von Leerzeichen in der Adresse (DB-Konvention)
$ipa =~ s/\x20//g;
![Page 139: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/139.jpg)
1 3 6 ANHANGA. LISTINGS
# Eintrag in die Liste
push(@glue, join($;, ($fqdn, $record_ttl, $record_class, $ipa)));
}
# ------------------------------------------------------------------
# Fremde Secondary Nameserver fuer die Subdomain
local(@secf);
&query_bind($csr_secf, *secf, $id);
# Schleife ueber alle fremden Secondary Nameserver
for(@secf)
{
# Parameter des aktuellen Nameservers
local($ip_name, $ip_addr) = split(/$;/);
# $ip_name kann nicht NULL sein
# $ip_addr darf u.U. NULL sein
# Eintrag fuer den Nameserver
print "\t\tIN\tNS\t$ip_name.\n";
# ----------------------------------------------------------------
# Secondary Nameserver Host ist Kandidat fuer Glue-Record,
# falls sein FQDN in der zur aktuellen Zone gehoerigen Domain liegt
if($ip_name =~ /\.$current$/i)
{
# In diesem Fall muss seine IP-Adresse angegeben werden,
# sonst Programmabbruch
¬null($ip_addr, 'ip_addr', 'secondary_fl');
# Loeschen von Leerzeichen in der Adresse (DB-Konvention)
$ip_addr =~ s/\x20//g;
# Eintrag in die Liste
push(@glue, join($;, ($ip_name, '', 'IN', $ip_addr)));
}
}
}
# Schliessen der fuer delegierte (lokale) Subdomains geoeffneten DB-Cursor
&query_close($csr_prim);
&query_close($csr_serv);
&query_close($csr_secf);
# --------------------------------------------------------------------
# Nameserver Eintraege fuer delegierte (fremde) Subdomains
# Auswahl der fremden Zonen (mit Primary Nameserver), die die aktuelle Zone
# als Vaterzone haben
![Page 140: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/140.jpg)
A. 7. MODULNAMEDFORWARD. PL 1 3 7
local(@del_zones);
&query(<<" END_SQL", *del_zones);
select id, name, pns_ip_name, pns_ip_addr
from ${DB}del_zones where parent = $_[11]
END_SQL
# Auswahl der (fremden) Secondary Nameserver einer bestimmten delegierten
# fremden Zone
local($csr_dzs) = &query_open (<<" END_SQL");
select sns_ip_name, sns_ip_addr from ${DB}del_zones_sec where del_zone = :1
END_SQL
# Auswahl der lokalen Secondary Nameserver einer bestimmten fremden Zone
local($csr_seclf) = &query_open (<<" END_SQL");
select h.name, h.subdomain_name, z.name
from ${DB}zones z, ${DB}hosts h, ${DB}nameservers n, ${DB}secondary_lf s
where z.id = h.zone and h.id = n.host and
n.id = s.nameserver and s.zone_name = :1
END_SQL
# Schleife ueber alle delegierten fremden Subdomains
for(@del_zones)
{
# Parameter der aktuellen Subdomain
local($id, $name, $pns_ip_name, $pns_ip_addr) = split(/$;/);
# $id, $name & $pns_ip_name koennen nicht NULL sein
# $pns_ip_addr darf u.U. NULL sein
local($subdomain) = $name;
# Subdomain-Name (innerhalb) der Domain bestimmen
$subdomain =~ s/\.$current$//i;
# Ausgabe des Subdomain-Namens mit Primary Nameserver
print "$subdomain\tIN\tNS\t$pns_ip_name.\n";
# ------------------------------------------------------------------
# Primary Nameserver Host ist Kandidat fuer Glue-Record,
# falls sein FQDN in der zur aktuellen Zone gehoerigen Domain liegt
if($pns_ip_name =~ /\.$current$/i)
{
# In diesem Fall muss seine IP-Adresse angegeben werden,
# sonst Programmabbruch
¬null($pns_ip_addr, 'pns_ip_addr', 'del_zones');
# Loeschen von Leerzeichen in der Adresse (DB-Konvention)
$pns_ip_addr =~ s/\x20//g;
# Eintrag in die Liste
push(@glue, join($;, ($pns_ip_name, '', 'IN', $pns_ip_addr)));
}
![Page 141: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/141.jpg)
1 3 8 ANHANGA. LISTINGS
# ------------------------------------------------------------------
# Fremde Secondary Nameserver
local(@dzs);
# Schleife ueber alle fremden Secondary Nameserver
&query_bind($csr_dzs, *dzs, $id);
for(@dzs)
{
# Parameter des aktuellen Nameservers
local($sns_ip_name, $sns_ip_addr) = split(/$;/);
# $sns_ip_name kann nicht NULL sein
# $sns_ip_addr darf u.U. NULL sein
# Ausgabe des Secondary Nameservers
print "\t\tIN\tNS\t$sns_ip_name.\n";
# ----------------------------------------------------------------
# Secondary Nameserver Host ist Kandidat fuer Glue-Record,
# falls sein FQDN in der zur aktuellen Zone gehoerigen Domain liegt
if($sns_ip_name =~ /\.$current$/i)
{
# In diesem Fall muss seine IP-Adresse angegeben werden,
# sonst Programmabbruch
¬null($sns_ip_addr, 'sns_ip_addr', 'del_zones');
# Loeschen von Leerzeichen in der Adresse (DB-Konvention)
$sns_ip_addr =~ s/\x20//g;
# Eintrag in die Liste
push(@glue, join($;, ($sns_ip_name, '', 'IN', $sns_ip_addr)));
}
}
# ------------------------------------------------------------------
# Lokale Secondary Nameserver
local(@seclf);
&query_bind($csr_seclf, *seclf, $name);
# Schleife ueber alle lokalen Secondary Nameserver
for(@seclf)
{
# Host-Parameter des aktuellen Nameservers
local($hostname, $subdomainname, $domainname) = split(/$;/);
# $hostname & $domainname koennen nicht NULL sein
# $subdomainname darf NULL sein
# Aufbau des Fully Qualified Domain Name fuer den Secondary Nameserver
![Page 142: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/142.jpg)
A. 7. MODULNAMEDFORWARD. PL 1 3 9
local($fqdn);
if((!&testnull($subdomainname)) && (length($subdomainname) > 0))
{
$fqdn = $hostname . '.' . $subdomainname . '.' . $domainname;
}
else
{
$fqdn = $hostname . '.' . $domainname;
}
# Ausgabe des Secondary Nameservers
print "\t\tIN\tNS\t$fqdn.\n";
}
}
# Schliessen der fuer delegierte (fremde) Subdomains geoeffneten DB-Cursor
&query_close($csr_dzs);
&query_close($csr_seclf);
# --------------------------------------------------------------------
# Sortieren der Glue-Record Kandidaten, Elimination doppelter Eintraege
local($last) = undef;
# sortierte minimale Liste
local(@sglue) = ();
# Schleife fuer alle Eintraege (innerhalb sind sie bereits sortiert)
for(sort @glue)
{
# Falls der aktuelle Eintrag schon eingetragen wurde, wird
# er nicht nochmal eingetragen
if($_ eq $last) { next; }
# Eintrag in die neue Liste
push(@sglue, $_);
# Merken des aktuellen Eintrags fuer den naechsten Schleifendurchlauf
$last = $_;
}
# --------------------------------------------------------------------
# Mail Exchanger (MX-Records) fuer die Zone
# Auswahl der Mail Exchanger Eintraege fuer die aktuelle Zone
local(@mailx);
&query(<<" END_SQL", *mailx);
select m.name, m.record_ttl, m.record_class, m.pref_value,
h.name, h.subdomain_name, z.name
![Page 143: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/143.jpg)
1 4 0 ANHANGA. LISTINGS
from ${DB}zones z, ${DB}hosts h, ${DB}mailx m
where z.id = h.zone and h.id = m.host and m.zone = $_[11]
END_SQL
# Schleife ueber alle betroffenen Mail Exchanger Eintraege
for(@mailx)
{
# aktuelle Parameter der Eintraege
local($name, $record_ttl, $record_class, $pref_value, $hostname,
$subdomainname, $domainname) = split(/$;/);
# $name, $pref_value, $hostname, $domainname koennen nicht NULL sein
# $record_ttl, $record_class, $subdomainname duerfen NULL sein
# Aufbau des Fully Qualified Domain Name des Ziel-Hosts
local($fqdn);
if((!&testnull($subdomainname)) && (length($subdomainname) > 0))
{
$fqdn = $hostname . '.' . $subdomainname . '.' . $domainname;
}
else
{
$fqdn = $hostname . '.' . $domainname;
}
# Falls kein bzw. ein leerer Name angegeben wird, dann
# Eintrag fuer aktuelle Zone
if((&testnull($name)) || ($name eq '')) { $name = '@'; }
# Record-TTL und -Class
if(&testnull($record_ttl))
{ $record_ttl = $def{'MAILX.RECORD_TTL'}; }
if(&testnull($record_class))
{ $record_class = $def{'MAILX.RECORD_CLASS'}; }
# Ausgabe des MX-Records
print "$name\t$record_ttl\t$record_class\tMX\t$pref_value\t$fqdn.\n";
}
# --------------------------------------------------------------------
# Hosts (A-, CNAME-, HINFO- & WKS-Records) fuer die Zone
# Auswahl der Hosts in der aktuellen Zone
local(@hosts);
&query(<<" END_SQL", *hosts);
select id, name, subdomain_name, record_ttl, record_class, cpu, os
from ${DB}hosts
where zone = $_[11]
END_SQL
# Auswahl der WKS eines bestimmten Hosts
![Page 144: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/144.jpg)
A. 7. MODULNAMEDFORWARD. PL 1 4 1
local($csr_wks) = &query_open(<<" END_SQL");
select service from ${DB}wks where host = :1
END_SQL
# Auswahl der Alias-Namen eines bestimmten Hosts
local($csr_alias) = &query_open(<<" END_SQL");
select canonical_name from ${DB}aliases where host = :1
END_SQL
# --------------------------------------------------------------------
# Schleife ueber alle Hosts in der aktuellen Zone
for(@hosts)
{
# akutelle Host-Parameter
local($id, $name, $subdomainname, $record_ttl, $record_class,
$cpu, $os) = split(/$;/);
# $id, $name koennen nicht NULL sein
# $subdomainname, $record_ttl, $record_class, $cpu & $os duerfen NULL sein
# Name innerhalb der aktuellen Zone
local($hostname) = $name;
if((!&testnull($subdomainname)) && (length($subdomainname) > 0))
{
$hostname .= '.' . $subdomainname;
}
# Record-TTL und -Class
if(&testnull($record_ttl))
{ $record_ttl = $def{'HOSTS.RECORD_TTL'}; }
if(&testnull($record_class))
{ $record_class = $def{'HOSTS.RECORD_CLASS'}; }
# Falls fuer einen Host keine einzige IP-Adresse vorhanden ist, ...
if(&query_bind($csr_ipaddr, *ipaddr, $id) == 0)
{
# ..., dann Programmabbruch
die "No IP-adress available for $hostname.$current";
}
# Auswahl der ersten IP-Adresse
# $ipaddr[..] kann nicht NULL sein
local($ipa) = shift(@ipaddr);
# Loeschen von Leerzeichen in der Adresse (DB-Konvention)
$ipa =~ s/\x20//g;
# Ausgabe des Hostnamens (innerhalb der aktuellen Zone) und der
# (ersten) IP-Adresse als A-Record
print "$hostname\t$record_ttl\t$record_class\tA\t$ipa\n";
![Page 145: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/145.jpg)
1 4 2 ANHANGA. LISTINGS
# Schleife ueber restliche IP-Adressen des Hosts
for(@ipaddr)
{
# Loeschen von Leerzeichen in der Adresse (DB-Konvention)
s/\x20//g;
# Ausgabe des entsprechenden A-Records
print "\t$record_ttl\t$record_class\tA\t$_\n";
}
# Erscheint der Host in der Glue-Liste, muss er dort geloescht
# (fuer ungueltig erklaert) werden (sonst doppelter Eintrag)
for(@sglue)
{
if(/^$hostname\.$current$;/i) { $_ = undef; last; }
}
# ------------------------------------------------------------------
# Existieren fuer den Host gueltige Angaben ueber CPU & Betriebssystem, ...
if((!&testnull($cpu)) && (length($cpu) > 0) &&
(!&testnull($os)) && (length($os) > 0))
{
# ..., so werden diese als HINFO-Record ausgegeben
print "\t$record_ttl\t$record_class\tHINFO\t$cpu $os\n";
}
# ------------------------------------------------------------------
# WKS des Hosts
local(@wks);
&query_bind($csr_wks, *wks, $id);
# $wks[..] kann nicht NULL sein
# Schleife ueber alle Eintraege
for(@wks)
{
# Ausgabe als WKS-Record
print "\t$record_ttl\t$record_class\tWKS\t$_\n";
}
# ------------------------------------------------------------------
# Aliasnamen des Hosts
local(@alias);
&query_bind($csr_alias, *alias, $id);
# $alias[..] kann nicht NULL sein
# Schleife ueber alle Alias-Namen
for(@alias)
{
![Page 146: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/146.jpg)
A. 7. MODULNAMEDFORWARD. PL 1 4 3
# ACHTUNG: Alias-Namen werden nicht direkt der Zone zugeordnet,
# sondern der jeweiligen Subdomain des Hosts
if((!&testnull($subdomainname)) && (length($subdomainname) > 0))
{
$_ .= '.' . $subdomainname;
}
# Ausgabe als CNAME-Record
print "$_\t$record_ttl\t$record_class\tCNAME\t$hostname\n";
}
}
# Schliessen der fuer die Hostausgabe geoeffneten DB-Cursor
&query_close($csr_wks);
&query_close($csr_alias);
&query_close($csr_ipaddr);
# --------------------------------------------------------------------
# Erzeugen der Glue-Records
# Schleife ueber alle Listeneintraege
for(@sglue)
{
# Wurde der aktuelle Eintrag geloescht (fuer ungueltig) erklaert,
# so darf er nicht weiter beruecksichtigt werden
if(defined($_))
{
# aktuelle Glueparameter
local($fqdn, $record_ttl, $record_class, $ipa) = split(/$;/);
# Falls der Host in der zur aktuellen Zone gehoerenden Domain liegt, ...
if($fqdn =~ s/\.$current$//i)
{
# ..., muss er als A-Record (Glue) eingetragen werden
print "$fqdn\t$record_ttl\t$record_class\tA\t$ipa\n";
}
}
}
}
# **********************************************************************
1;
![Page 147: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/147.jpg)
1 4 4 ANHANGA. LISTINGS
A. 8 Modul named reverse. pl
# **********************************************************************
# * Integration des Managements des Domain-Name-Systems in die *
# * vorhandene Managementumgebung des Leibniz-Rechenzentrums (LRZ) *
# * (Diplomarbeit an der TU-Muenchen, SS 94 - WS 94/95) *
# * ------------------------------------------------------------------ *
# * Autor: Heiko Hauck ([email protected]) *
# * Datei: named_reverse.pl (Oraperl Bibliothek fuer ora2dns) *
# **********************************************************************
# PROZEDUR zur Generierung einer Zonen-Datei fuer das Reverse Mapping
# Parameter: $_[0] = Name der Datei
# $_[1] = FQDN des Nameserverhosts
# $_[2] = IP-Adresse des Nameserverhosts
# $_[3] = Klasse des SOA-Records
# $_[4] = E-Mail-Adresse (SOA-Responsible)
# $_[5] = Seriennummer im SOA-Record
# $_[6] = Refresh-Intervall im SOA-Record
# $_[7] = Retry-Intervall im SOA-Record
# $_[8] = Expire-Intervall im SOA-Record
# $_[9] = Minimum-Intervall im SOA-Record
# $_[10] = Domainname der Zone
# $_[11] = Identifikator der Zone
# Die Ausgabe erfolgt zur Standard-Ausgabe.
sub named_reverse
{
# Ausgabe des Dateikopfes
print "; $_[0] for $_[1] [$_[2]]\n";
print "; created by ora2dns (08/94 by Heiko Hauck; Diplomarbeit TUM)\n";
print ";\n";
print "; User: ", `whoami`;
print "; Date: ", `date`;
print ";\n";
# Ausgabe der betroffenen Zone
print "\$ORIGIN\t\t$_[10].\n";
# Ausgabe des SOA-Records fuer diese Zone
print "\@\t\t$_[3]\tSOA\t$_[1]. $_[4]. (\n";
print "\t\t\t\t\t$_[5] ; serial\n";
print "\t\t\t\t\t$_[6] ; refresh\n";
print "\t\t\t\t\t$_[7] ; retry\n";
print "\t\t\t\t\t$_[8] ; expire\n";
print "\t\t\t\t\t$_[9] ) ; minimum\n";
# --------------------------------------------------------------------
# Achtung: 'Perl' ueberschreibt aktuelle Parameter ohne entspr. Zuweisung!
# Deshalb: Kopie in lokale Variable
![Page 148: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/148.jpg)
A. 8. MODULNAMEDREVERSE. PL 1 4 5
local($current) = $_[10];
# --------------------------------------------------------------------
# Aufbau der Maske zur Auswahl der IP-Adressen
# Dabei wird unterschieden, wieviele Bytes der IP-Adresse durch den
# Domainnamen schon vorgegeben sind
local($mask, $replace);
if($current =~ /^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.in-addr\.arpa$/i)
{
# 3 Bytes vorgegeben
# Beispiel: Fuer die Zone '15.187.129.in-addr.arpa' ist die zugehoerige
# Maske '129.187. 15.'
# Diese wird spaeter mit dem Begin der IP-Adressen verglichen
$mask = ' ' x (3 - length($3)) . $3 . '.' .
' ' x (3 - length($2)) . $2 . '.' .
' ' x (3 - length($1)) . $1 . '.';
# 1 Byte ist noch auszuwaehlen
$replace = 1;
}
else
{
if($current =~ /^(\d{1,3})\.(\d{1,3})\.in-addr\.arpa$/i)
{
# 2 Bytes vorgegeben
$mask = ' ' x (3 - length($2)) . $2 . '.' .
' ' x (3 - length($1)) . $1 . '.';
# 2 Bytes sind noch auszuwaehlen
$replace = 2;
}
else
{
if($current =~ /^(\d{1,3})\.in-addr\.arpa$/i)
{
# 1 Byte vorgegeben
$mask = ' ' x (3 - length($1)) . $1 . '.';
# 3 Bytes sind noch auszuwaehlen
$replace = 3;
}
else
{
if($current =~ /^\.in-addr\.arpa$/i)
{
# kein Byte vorgegeben
$mask = '';
# alle 4 Bytes sind noch auszuwaehlen
![Page 149: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/149.jpg)
1 4 6 ANHANGA. LISTINGS
$replace = 4;
}
else
{
# Programmabbruch, falls ein fehlerhafter Domainname angegeben wurde
die "Illegal domain $current";
}
}
}
}
# Liste von Subnetzmasken, deren IP-Adressen nicht zu dieser,
# sondern zu einer delegierten Zone gehoeren (siehe unten)
local(@submasks) = ();
# --------------------------------------------------------------------
# Eintrag fuer den Primary Nameserver der Zone
print "\t\tIN\tNS\t$_[1].\n";
# --------------------------------------------------------------------
# Lokale Secondary Nameserver fuer die Zone
local(@servers);
&query(<<" END_SQL", *servers);
select h.name, h.subdomain_name, z.name
from ${DB}zones z, ${DB}hosts h, ${DB}nameservers n, ${DB}secondary_ll s
where z.id = h.zone and h.id = n.host and
n.id = s.nameserver and s.zone = $_[11]
END_SQL
# Schleife ueber alle betroffenen Nameserver
for(@servers)
{
# Parameter des aktuellen Nameservers
local($hostname, $subdomainname, $domainname) = split(/$;/);
# $hostname, $domainname koennen nicht NULL sein
# $subdomainname darf NULL sein
# Aufbau des Fully Qualified Domain Name fuer den Nameserver-Host
local($fqdn);
if((!&testnull($subdomainname)) && (length($subdomainname) > 0))
{
$fqdn = $hostname . '.' . $subdomainname . '.' . $domainname;
}
else
{
$fqdn = $hostname . '.' . $domainname;
}
# Eintrag fuer den Nameserver
![Page 150: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/150.jpg)
A. 8. MODULNAMEDREVERSE. PL 1 4 7
print "\t\tIN\tNS\t$fqdn.\n";
}
# --------------------------------------------------------------------
# Fremde Secondary Nameserver fuer die Zone
# Auswahl der FQDNs der betroffenen Nameserver
&query(<<" END_SQL", *servers);
select ip_name from ${DB}secondary_fl where zone = $_[11]
END_SQL
# Schleife ueber alle betroffenen Nameserver
for(@servers)
{
# $_ kann nicht NULL sein
# Eintrag fuer den Nameserver
print "\t\tIN\tNS\t$_.\n";
}
# --------------------------------------------------------------------
# Nameserver Eintraege fuer delegierte (lokale) Subdomains
# Auswahl aller Zonen, die die aktuelle Zone als Vaterzone haben
local(@domains);
&query(<<" END_SQL", *domains);
select id, name, prim_nameserver from ${DB}zones where parent = $_[11]
END_SQL
# Auswahl des Namens, Subdomain- und Domainnamens eines Hosts,
# auf dem ein bestimmter Primary Nameserver laeuft
local($csr_prim) = &query_open(<<" END_SQL");
select h.name, h.subdomain_name, z.name
from ${DB}zones z, ${DB}hosts h, ${DB}nameservers n
where z.id = h.zone and h.id = n.host and n.id = :1
END_SQL
# Auswahl des Namens, Subdomain- und Domainnamens von Hosts,
# auf denen fuer eine bestimmte Zone Secondary Nameserver laufen
local($csr_serv) = &query_open(<<" END_SQL");
select h.name, h.subdomain_name, z.name
from ${DB}zones z, ${DB}hosts h, ${DB}nameservers n, ${DB}secondary_ll s
where z.id = h.zone and h.id = n.host and
n.id = s.nameserver and s.zone = :1
END_SQL
# Auswahl von fremden Secondary Nameservern fuer eine bestimmte Zone
local($csr_secf) = &query_open (<<" END_SQL");
select ip_name from ${DB}secondary_fl where zone = :1
![Page 151: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/151.jpg)
1 4 8 ANHANGA. LISTINGS
END_SQL
# --------------------------------------------------------------------
# Schleife ueber alle delegierten lokalen Subdomains
for(@domains)
{
# Parameter der akuellen Subdomain
local($id, $name, $prim_nameserver) = split(/$;/);
# $id, $name & $prim_nameserver koennen nicht NULL sein
# Subdomain-Name (innerhalb) der Domain bestimmen
local($subdomain) = $name;
$subdomain =~ s/\.$current$//i;
# Primary Nameserver fuer Subdomain
local(@prim);
&query_bind($csr_prim, *prim, $prim_nameserver);
local($hostname, $subdomainname, $domainname) = split(/$;/, $prim[0]);
# $hostname, $domainname koennen nicht NULL sein
# $subdomainname darf NULL sein
# Aufbau des Fully Qualified Domain Name fuer den Primary Nameserver
local($fqdn);
if((!&testnull($subdomainname)) && (length($subdomainname) > 0))
{
$fqdn = $hostname . '.' . $subdomainname . '.' . $domainname;
}
else
{
$fqdn = $hostname . '.' . $domainname;
}
# Ausgabe des Subdomain-Namens mit Primary Nameserver
print "$subdomain\t\tIN\tNS\t$fqdn.\n";
# ------------------------------------------------------------------
# Aufbau der Subnetzmaske zum Ausschluss von IP-Adressen, die in
# die lokale delegierte Subdomain fallen
local($submask);
if($subdomain =~ /^(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/i)
{
# 3 Bytes vorgegeben
# nur moeglich, wenn noch 4 Bytes zu besetzen sind,
# sonst Programmabbruch
if($replace < 4)
{ die "Illegal subdomain $subdomain of domain $current"; }
![Page 152: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/152.jpg)
A. 8. MODULNAMEDREVERSE. PL 1 4 9
$submask = ' ' x (3 - length($3)) . $3 . '.' .
' ' x (3 - length($2)) . $2 . '.' .
' ' x (3 - length($1)) . $1 . '.';
}
else
{
if($subdomain =~ /^(\d{1,3})\.(\d{1,3})$/i)
{
# 2 Bytes vorgegeben
# nur moeglich, wenn noch mindestens 3 Bytes zu besetzen sind,
# sonst Programmabbruch
if($replace < 3)
{ die "Illegal subdomain $subdomain of domain $current"; }
$submask = ' ' x (3 - length($2)) . $2 . '.' .
' ' x (3 - length($1)) . $1 . '.';
}
else
{
if($subdomain =~ /^(\d{1,3})$/i)
{
# 1 Byte vorgegeben
# nur moeglich, wenn noch mindestens 2 Bytes zu besetzen sind,
# sonst Programmabbruch
if($replace < 2)
{ die "Illegal subdomain $subdomain of domain $current"; }
$submask = ' ' x (3 - length($1)) . $1 . '.';
}
else
{
# nicht zulaessige Subdomain, Programmabbruch
die "Illegal subdomain $subdomain of domain $current";
}
}
}
# Eintrag der Subnetzmaske in die dafuer vorgesehene Liste
push(@submasks,$submask);
# ------------------------------------------------------------------
# Lokale Secondary Nameserver fuer die Subdomain
local(@serv);
&query_bind($csr_serv, *serv, $id);
# Schleife ueber alle lokalen Secondary Nameserver
for(@serv)
![Page 153: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/153.jpg)
1 5 0 ANHANGA. LISTINGS
{
# Host-Parameter des aktuellen Nameservers
local($hostname, $subdomainname, $domainname) = split(/$;/);
# $hostname & $domainname koennen nicht NULL sein
# $subdomainname darf NULL sein
# Aufbau des Fully Qualified Domain Name fuer den Secondary Nameserver
local($fqdn);
if((!&testnull($subdomainname)) && (length($subdomainname) > 0))
{
$fqdn = $hostname . '.' . $subdomainname . '.' . $domainname;
}
else
{
$fqdn = $hostname . '.' . $domainname;
}
# Ausgabe des Secondary Nameservers
print "\t\tIN\tNS\t$fqdn.\n";
}
# ------------------------------------------------------------------
# Fremde Secondary Nameserver fuer die Subdomain
local(@secf);
&query_bind($csr_secf, *secf, $id);
# Schleife ueber alle fremden Secondary Nameserver
for(@secf)
{
# $_ kann nicht NULL sein
# Ausgabe des Secondary Nameservers
print "\t\tIN\tNS\t$_.\n";
}
}
# Schliessen der fuer delegierte (lokale) Subdomains geoeffneten DB-Cursor
&query_close($csr_prim);
&query_close($csr_serv);
&query_close($csr_secf);
# --------------------------------------------------------------------
# Nameserver Eintraege fuer delegierte (fremde) Subdomains
# Auswahl der fremden Zonen (mit Primary Nameserver), die die aktuelle Zone
# als Vaterzone haben
local(@del_zones);
&query(<<" END_SQL", *del_zones);
select id, name, pns_ip_name
![Page 154: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/154.jpg)
A. 8. MODULNAMEDREVERSE. PL 1 5 1
from ${DB}del_zones where parent = $_[11]
END_SQL
# Auswahl der (fremden) Secondary Nameserver einer bestimmten delegierten
# fremden Zone
local($csr_dzs) = &query_open (<<" END_SQL");
select sns_ip_name from ${DB}del_zones_sec where del_zone = :1
END_SQL
# Auswahl der lokalen Secondary Nameserver einer bestimmten fremden Zone
local($csr_seclf) = &query_open (<<" END_SQL");
select h.name, h.subdomain_name, z.name
from ${DB}zones z, ${DB}hosts h, ${DB}nameservers n, ${DB}secondary_lf s
where z.id = h.zone and h.id = n.host and
n.id = s.nameserver and s.zone_name = :1
END_SQL
# Schleife ueber alle delegierten fremden Subdomains
for(@del_zones)
{
# Parameter der aktuellen Subdomain
local($id, $name, $pns_ip_name,) = split(/$;/);
# $id, $name & $pns_ip_name koennen nicht NULL sein
# Subdomain-Name (innerhalb) der Domain bestimmen
local($subdomain) = $name;
$subdomain =~ s/\.$current$//i;
# Ausgabe des Subdomain-Namens mit Primary Nameserver
print "$subdomain\tIN\tNS\t$pns_ip_name.\n";
# Fremde Secondary Nameserver
local(@dzs);
&query_bind($csr_dzs, *dzs, $id);
# Schleife ueber alle fremden Secondary Nameserver
for(@dzs)
{
# $_ kann nicht NULL sein
# Ausgabe des Secondary Nameservers
print "\t\tIN\tNS\t$_.\n";
}
# Lokale Secondary Nameserver
local(@seclf);
&query_bind($csr_seclf, *seclf, $name);
# Schleife ueber alle lokalen Secondary Nameserver
for(@seclf)
{
![Page 155: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/155.jpg)
1 5 2 ANHANGA. LISTINGS
# Host-Parameter des aktuellen Nameservers
local($hostname, $subdomainname, $domainname) = split(/$;/);
# $hostname & $domainname koennen nicht NULL sein
# $subdomainname darf NULL sein
# Aufbau des Fully Qualified Domain Name fuer den Secondary Nameserver
local($fqdn);
if((!&testnull($subdomainname)) && (length($subdomainname) > 0))
{
$fqdn = $hostname . '.' . $subdomainname . '.' . $domainname;
}
else
{
$fqdn = $hostname . '.' . $domainname;
}
# Ausgabe des Secondary Nameservers
print "\t\tIN\tNS\t$fqdn.\n";
}
}
# Schliessen der fuer delegierte (fremde) Subdomains geoeffneten DB-Cursor
&query_close($csr_dzs);
&query_close($csr_seclf);
# --------------------------------------------------------------------
# PTR-Eintraege fuer die Zone
# Auswahl saemtlicher Hosts (Name, Subdomain- & Domainname, IP-Adresse),
# bei denen eine IP-Adresse zu der Maske passt
local(@ptr);
&query(<<" END_SQL", *ptr);
select h.name, h.subdomain_name, z.name, i.ip_addr
from ${DB}ipaddr i, ${DB}hosts h, ${DB}zones z
where z.id = h.zone and h.id = i.host and i.ip_addr like '$mask\%'
END_SQL
# Schleife ueber alle ausgewaehlten Hosts
PTR: for(@ptr)
{
# Parameter des aktuellen Hosts
local($hostname, $subdomainname, $domainname, $ipa) = split(/$;/);
# $hostname, $domainname & $ipa koennen nicht NULL sein
# $subdomainname darf NULL sein
# Ausschluss von IP-Adressen, die einer delegierten Zone (Subnetz)
# angehoeren
for(@submasks)
{
if($ipa =~ /^$mask$_/) {next PTR;}
![Page 156: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/156.jpg)
A. 8. MODULNAMEDREVERSE. PL 1 5 3
}
# Aufbau des Fully Qualified Domain Name
local($fqdn);
if((!&testnull($subdomainname)) && (length($subdomainname) > 0))
{
$fqdn = $hostname . '.' . $subdomainname . '.' . $domainname;
}
else
{
$fqdn = $hostname . '.' . $domainname;
}
# Zerlegen der IP-Adresse in ihre 4 Bytes
$ipa =~ /^\x20*(\d+)\.\x20*(\d+)\.\x20*(\d+)\.\x20*(\d+)$/;
# Das 4. Byte wird immer ausgegeben
print $4;
# Byte 1-3 werden nur ausgegeben, wenn deren Auswahl innerhalb
# der Zone noch frei war
if($replace >= 2) { print ".$3"; }
if($replace >= 3) { print ".$2"; }
if($replace == 4) { print ".$1"; }
# Ausgabe des restlichen Records (Klasse, Typ, FQDN)
print "\t\tIN\tPTR\t$fqdn.\n";
}
}
# **********************************************************************
1;
![Page 157: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/157.jpg)
1 5 4 ANHANGA. LISTINGS
A. 9 Modul named l ocal . pl
# **********************************************************************
# * Integration des Managements des Domain-Name-Systems in die *
# * vorhandene Managementumgebung des Leibniz-Rechenzentrums (LRZ) *
# * (Diplomarbeit an der TU-Muenchen, SS 94 - WS 94/95) *
# * ------------------------------------------------------------------ *
# * Autor: Heiko Hauck ([email protected]) *
# * Datei: named_local.pl (Oraperl Bibliothek fuer ora2dns) *
# **********************************************************************
# PROZEDUR zur Generierung der Zonen-Datei fuer das Loopback-Interface
# (127.1 -> localhost)
# Parameter: $_[0] = Name der Datei
# $_[1] = IP-Adresse des Nameserverhosts
# $_[2] = Klasse des SOA-Records
# $_[3] = FQDN des Nameserverhosts
# $_[4] = E-Mail-Adresse (SOA-Responsible)
# $_[5] = Seriennummer im SOA-Record
# $_[6] = Refresh-Intervall im SOA-Record
# $_[7] = Retry-Intervall im SOA-Record
# $_[8] = Expire-Intervall im SOA-Record
# $_[9] = Minimum-Intervall im SOA-Record
# Die Ausgabe erfolgt zur Standard-Ausgabe.
sub named_local
{
# Ausgabe des Dateikopfes
print "; $_[0] for $_[3] [$_[1]]\n";
print "; created by ora2dns (08/94 by Heiko Hauck; Diplomarbeit TUM)\n";
print ";\n";
print "; User: ", `whoami`;
print "; Date: ", `date`;
print ";\n";
# Ausgabe der betroffenen Zone
print "\$ORIGIN\t0.0.127.in-addr.arpa.\n";
# Ausgabe des SOA-Records fuer diese Zone
print "\@\t$_[2]\tSOA\t$_[3]. $_[4]. (\n";
print "\t\t\t\t$_[5] ; serial\n";
print "\t\t\t\t$_[6] ; refresh\n";
print "\t\t\t\t$_[7] ; retry\n";
print "\t\t\t\t$_[8] ; expire\n";
print "\t\t\t\t$_[9] ) ; minimum\n";
# Ausgabe des Nameservers fuer diese Zone (= aktueller Nameserver)
print "\tIN\tNS\t$_[3].\n";
# Ausgabe des PTR-Records, der fuer die eigentliche Abbildung zustaendig ist
print "1\tIN\tPTR\tlocalhost.\n";
![Page 158: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/158.jpg)
A. 10. MODULNAMEDLOOPBACK. PL 1 5 5
}
# **********************************************************************
1;
A. 10 Modul named l oopback. pl
# **********************************************************************
# * Integration des Managements des Domain-Name-Systems in die *
# * vorhandene Managementumgebung des Leibniz-Rechenzentrums (LRZ) *
# * (Diplomarbeit an der TU-Muenchen, SS 94 - WS 94/95) *
# * ------------------------------------------------------------------ *
# * Autor: Heiko Hauck ([email protected]) *
# * Datei: named_loopback.pl (Oraperl Bibliothek fuer ora2dns) *
# **********************************************************************
# PROZEDUR zur Generierung der Zonen-Datei fuer das Loopback-Interface
# (localhost -> 127.1)
# Parameter: $_[0] = Name der Datei
# $_[1] = IP-Adresse des Nameserverhosts
# $_[2] = Klasse des SOA-Records
# $_[3] = FQDN des Nameserverhosts
# $_[4] = E-Mail-Adresse (SOA-Responsible)
# $_[5] = Seriennummer im SOA-Record
# $_[6] = Refresh-Intervall im SOA-Record
# $_[7] = Retry-Intervall im SOA-Record
# $_[8] = Expire-Intervall im SOA-Record
# $_[9] = Minimum-Intervall im SOA-Record
# Die Ausgabe erfolgt zur Standard-Ausgabe.
sub named_loopback
{
# Ausgabe des Dateikopfes
print "; $_[0] for $_[3] [$_[1]]\n";
print "; created by ora2dns (08/94 by Heiko Hauck; Diplomarbeit TUM)\n";
print ";\n";
print "; User: ", `whoami`;
print "; Date: ", `date`;
print ";\n";
# Ausgabe der betroffenen Zone
print "\$ORIGIN\tlocalhost.\n";
# Ausgabe des SOA-Records fuer diese Zone
print "\@\t$_[2]\tSOA\t$_[3]. $_[4]. (\n";
print "\t\t\t\t$_[5] ; serial\n";
print "\t\t\t\t$_[6] ; refresh\n";
print "\t\t\t\t$_[7] ; retry\n";
print "\t\t\t\t$_[8] ; expire\n";
![Page 159: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/159.jpg)
1 5 6 ANHANGA. LISTINGS
print "\t\t\t\t$_[9] ) ; minimum\n";
# Ausgabe des Nameservers fuer diese Zone (= aktueller Nameserver)
print "\tIN\tNS\t$_[3].\n";
# Ausgabe des A-Records, der fuer die eigentliche Abbildung zustaendig ist
print "\tIN\tA\t127.0.0.1\n";
}
# **********************************************************************
1;
![Page 160: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/160.jpg)
A. 11. MODULNAMEDCACHE. PL 1 5 7
A. 11 Modul named cache. pl
# **********************************************************************
# * Integration des Managements des Domain-Name-Systems in die *
# * vorhandene Managementumgebung des Leibniz-Rechenzentrums (LRZ) *
# * (Diplomarbeit an der TU-Muenchen, SS 94 - WS 94/95) *
# * ------------------------------------------------------------------ *
# * Autor: Heiko Hauck ([email protected]) *
# * Datei: named_cache.pl (Oraperl Bibliothek fuer ora2dns) *
# **********************************************************************
# PROZEDUR zum Holen der Root-Domain-Datei (Cache) mittels Anonymous FTP
# Parameter: $_[0] = Name der lokalen Datei (inkl. Verzeichnispfad)
# $_[1] = Name der FTP-Hosts, von dem die Datei geholt wird
# $_[2] = Verzeichnis, in dem dort die Datei abgelegt ist
# $_[3] = Name der Datei auf dem FTP-Host
# $_[4] = E-Mail-Adresse (als Passwort fuer Anonymous FTP)
sub named_cache
{
# lokale Parameterkopien
local($local_file, $host, $remote_dir, $remote_file, $email) = @_;
# Die Login-Name- & Passwort-Ubergabe an das FTP geschieht mittels
# der '.netrc'-Datei des Anwenders.
# Ist in dieser Datei noch kein ein Eintrag fuer den angegebenen FTP-Host
# vorhanden, so wird er eingefuegt (ein vorhandener wird nicht geaendert).
# Ist die Datei noch nicht vorhanden, wird sie mit dem Eintrag erzeugt.
# '.netrc' liegt im Home-Verzeichnis des Anwenders
local($filename) = $ENV{'HOME'}.'/.netrc';
# Eintrag in '.netrc'
local($netrc) = "machine $host login ftp password $email\n";
# Existiert die Datei '.netrc' bereits?
if(-e $filename)
{
# Datei oeffnen zum Lesen
# Misslingt dies, dann Programmabbruch
open(NETRC, "<$filename") || die "Can't open $filename: $!\n";
# Zeilenweises Durchsuchen nach einen entspr. Host-Eintrag
while(<NETRC>)
{
if(/^machine\s+$host\s+/)
{
# Wird ein solcher gefunden, braucht kein weiterer mehr gesucht werden
$netrc = undef; # Markierung fuer "gefunden"
last;
}
![Page 161: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/161.jpg)
1 5 8 ANHANGA. LISTINGS
}
# Datei (vom Lesen) schliessen
close(NETRC);
# Falls noch kein entsprechender Eintrag vorhanden ist:
if(defined($netrc))
{
# Datei oeffnen zum Anfuegen
# Misslingt dies, dann Programmabbruch
open(NETRC, ">>$filename") || die "Can't append to $filename: $!\n";
# Eintrag
print NETRC $netrc;
# Datei (vom Anfuegen) schliessen
close(NETRC);
}
}
else
# Datei '.netrc' existiert noch nicht
{
# Datei oeffnen zum Schreiben
# Misslingt dies, dann Programmabbruch
open(NETRC, ">$filename") || die "Can't write to $filename: $!\n";
# Eintrag
print NETRC $netrc;
# Datei (vom Schreiben) schliessen
close(NETRC);
}
# Zugriffsrechte auf die Datei ".netrc" (notwendig)
chmod 0600, $filename;
# --------------------------------------------------------------------
# Oeffnen eines Ausgabekanals, der als Eingabe fuer FTP dient
open(FTP,"|ftp $host");
# ASCII-Modus, da eine Text-Datei uebertragen wird
print FTP "ascii\n";
# Wahl des Verzeichnisses auf dem FTP-Host
print FTP "cd $remote_dir\n";
# Datei soll geholt werden
print FTP "get\n";
![Page 162: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/162.jpg)
A. 11. MODULNAMEDCACHE. PL 1 5 9
# Angabe des Dateinamens auf dem FTP-Host
print FTP "$remote_file\n";
# Angabe des lokalen Dateinamens (inkl. Verzeichnis)
print FTP "$local_file\n";
# FTP verlassen
print FTP "quit\n";
# Schliessen des Kanals und Durchfuehrung der FTP-Prozedur
close(FTP);
print "\n";
}
# **********************************************************************
1;
![Page 163: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/163.jpg)
1 6 0 ANHANGA. LISTINGS
![Page 164: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/164.jpg)
An h a n g B
Da t e n b a n k { Be i s p i e l
ALIASEShost canonical name Kommentar
0 nettest dfvgate0 df v0 i rcserver3 x500 sunmanager3 ntp14 hpmanager hpman
4 hpmgr4 ntp26 mai l host cd17 ml i sts sunserver7 f tp7 l rznews7 news7 i dserver7 l i stserv7 gopher8 sunpop sun1
DEL ZONESi d name pns i p name pns i p addr0 i nf ormati k.tu-muenchen. de tumi nf o1. i nf ormati k. tu-muenchen. de 131.159
DEL ZONES SECdel zone sns i p name sns i p addr
0 tumi nf o2. i nf ormati k. tu-muenchen. de 131.159. 0. 81
0 hpsystem1. i nf ormati k. tu-muenchen. de 131.159. 0.176
0 ns . Germany. EU. net
161
![Page 165: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/165.jpg)
162 ANHANG B. DATENBANK { BEI S PI EL
HOSTSi d n a me s u bd o ma i n n a me z o n e k o mp o n e n t e c p u o s
0 d f v g a t e 0 WSC1 0 0 1 81 s u n c o l l e c t 0 WSC1 0 0 1 8
2 h p 1 0 0 WSCP0 0 4 33 s u nma n a g e r 0 WSC3 0 0 0 0
4 h pma n 0 WSC0 0 0 1 65 h pma n 2 0 WSC3 0 5 9 6
6 c d 1 0 RECP0 07 s u n s e r v e r 0
8 s u n 19 s u n 2
1 0 a 2 8 2 4 c h1 1 a 2 8 2 4 a r
1 2 h p 1
h o
![Page 166: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/166.jpg)
163
S ECONDARY FLz o n e i p n a me i p a d d r Ko mme n t a r
0 n s . n i c . d e l r z - mu e n c h e n . d e0 c h a r l y . b l . p hy s i k . t u - mu e n c h e n . d e
4 n s . n i c . d e t u - mu e n4 c h a r l y . b l . p hy s i k . t u - mu e n c h e n . d e 1
4 t umi n f o 1 . i n f o r ma t i k . t u - m
i d n a me
![Page 167: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/167.jpg)
164 ANHANG B. DATENBANK { BEI S PI EL
![Page 168: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/168.jpg)
An h a n g C
Ge n e r i e r t e Ko n � g u r a t i o n s
{ Be i s p i e l e
Di e i mf ol genden angegebenenDat[ . . . ] bzw. vomLayout an di e vwerden dadurch ni cht beei n
C.1 Resolverkon�guratio
# /etc/resolv.conf for dfvgate.lrz-muenchen
# created by ora2dns (08/94 by Heiko Hauck;
# User: a2824ch
# Date: Wed Oct 26 15:42:48 MET 1994
domain lrz-muenchen.de
nameserver 127.0.0.1 # localhost
nameserver 129.187.13.22 # hp10.lrz-mu
C.2 Nameserverkon�guration
; /etc/named.boot for dfvgate.lrz-muenchen.de [129.187.10.25]
; created by ora2dns (08/94 by Heiko Hauck; Diplomarbeit TUM)
;
; User: a2824ch
; Date: Wed Oct 26 15:42:56 MET 1994
;
; type domain source file or host b
165
![Page 169: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/169.jpg)
166 ANHANG C. GENERI ERTE KONFI G. - DATEI EN { BEI S PI ELE
;
directory /etc/namedb
; primary nameserver:
primary lrz-muenchen.de lrz-muenchen.de.DNF
primary ppp.lrz-muenchen.de ppp.lrz-muenchen.de.DNF
primary 187.129.in-addr.arpa 187.129.in-addr.arpa.DNF
primary 15.187.129.in-addr.arpa 15.187.129.in-addr.arpa.DNF
primary tu-muenchen.de tu-muenchen.de.DNF
primary 0.0.127.in-addr.arpa named.local
primary localhost named.loopback
; secondary nameserver:
secondary informatik.tu-muenchen.de 131.159.0.1 informatik.tu-muenchen.de.BF
secondary eg 193.227.1.1 eg.BF
; cache nameserver:
cache . named.cache
C.3 Zonenkon�guration(ForwardMapping)
; /etc/namedb/lrz-muenchen.de.DNF for dfvgate.lrz-muenchen.de [129.187.10.25]
; created by ora2dns (08/94 by Heiko Hauck; Diplomarbeit TUM)
;
; User: a2824ch
; Date: Wed Oct 26 15:42:56 MET 1994
;
$ORIGIN lrz-muenchen.de.
@ IN SOA dfvgate.lrz-muenchen.de. postmaster@[...] (
1994082900 ; serial
21600 ; refresh
3600 ; retry
604800 ; expire
172800 ) ; minimum
IN NS dfvgate.lrz-muenchen.de.
IN NS hp10.lrz-muenchen.de.
IN NS ns.nic.de.
IN NS charly.bl.physik.tu-muenchen.de.
ppp IN NS dfvgate.lrz-muenchen.de.
IN NS hp10.lrz-muenchen.de.
@ IN MX 140 cd1.lrz-muenchen.de.
sunmail IN MX 10 sunserver.lrz-muenchen.de.
hpmail IN MX 10 hp10.lrz-muenchen.de.
dfvgate IN A 129.187.10.25
nettest IN CNAME dfvgate
dfv IN CNAME dfvgate
ircserver IN CNAME dfvgate
suncollect IN A 129.187.9.241
hp10 IN A 129.187.13.22
IN A 129.187.16.1
sunmanager IN A 129.187.10.32
x500 IN CNAME sunmanager
![Page 170: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/170.jpg)
C. 4 . ZONENKONFI GURATI ON (REVERS E MAPPI NG) 167
ntp1 IN CNAME sunmanager
[...]
sun1 IN A 129.187.10.20
sunpop IN CNAME sun1
sun2 IN A 129.187.10.21
a2824ar.ppp IN A 129.187.15.157
IN HINFO PC Linux/PPP
hp11 IN A 129.187.16.2
C.4 Zonenkon�guration(ReverseMapping)
/namedb/187.129.in-addr.arpa.DNF for dfvgate.lrz-muenchen.de [129.187.10.25]
ed by ora2dns (08/94 by Heiko Hauck; Diplomarbeit TUM)
a2824ch
Wed Oct 26 15:43:01 MET 1994
N 187.129.in-addr.arpa.
IN SOA dfvgate.lrz-muenchen.de. postmaster@[...] (
1994082902 ; serial
21600 ; refresh
3600 ; retry
604800 ; expire
172800 ) ; minimum
IN NS dfvgate.lrz-muenchen.de.
IN NS hp10.lrz-muenchen.de.
IN NS dfvgate.lrz-muenchen.de.
IN NS hp10.lrz-muenchen.de.
IN PTR dfvgate.lrz-muenchen.de.
IN PTR suncollect.lrz-muenchen.de.
IN PTR hp10.lrz-muenchen.de.
IN PTR hp10.lrz-muenchen.de.
IN PTR sun1.lrz-muenchen.de.
IN PTR sun2.lrz-muenchen.de.
IN PTR hp11.lrz-muenchen.de.
![Page 171: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/171.jpg)
168 ANHANG C. GENERI ERTE KONFI G. - DATEI EN { BEI S PI ELE
![Page 172: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/172.jpg)
L i t e r a t u r v e r z e i c h n i s
[ Baye 94] Rudol f Bayer, Vo r l e s u n g Da t e n b a n k s y s t es i t�at M�unchen, Sommersemester 1994.
[ Ecke 89] Toerl ess Eckert, Un i x Ma n u a l PUni versi t�at, Erl angen, Ja
[ Frei 93] B. Frei tag, Vo r l e ss i ta
[ Geor 93] JuX. 50gar
[ Gol k 91] L
![Page 173: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/173.jpg)
170 LI TERATURVERZEI CHNI S
[ RFC1010] J. Reynol ds und J. Postel ,"Assi gned Numbers\, RFC1010, USC
Inf ormati on Sci ences Insti tute, Mari na del Rey, Cal i f orni a, Mai 1987.
[ RFC1032] M. Stahl ,"Domai n Admi ni strators Gui de\, RFC1032, SRI Inter-
nati onal , November 1987.
[ RFC1034] P. Mockapetri s ,"Domai n Names { Concepts and Faci l i t i es\, RFC
1034, USCInf ormati on Sci ences Insti tute, November 1987.
[ RFC1035] P. Mockapetri s ,"Domai n Names { Impl ementati on and Speci �ca-
t i on\, RFC 1035, USC Inf ormati on Sci ences Insti tute, November1987.
[ RFC1611] R. Austei n und J. Saperi a,"DNS Server MIBExtensi ons\, RFC
1611, Epi l ogue Technol ogy Corp. / Di gi tal Equi pment Corp. , Mai1994.
[ RFC1612] R. Austei n und J. Saperi a,"DNS Resol ver MIBExtensi ons\, RFC
1612, Epi l ogue Technol ogy Corp. / Di gi tal Equi pment Corp. , Mai1994.
[ RFC881] J. Postel ,"The Domai n Names Pl an and Schedul e\, RFC881, USC
Inf ormati on Sci ences Insti tute, November 1983.
[ RFC882] P. Mockapetri s ,"Domai n names - Concepts and Faci l i t i es\, RFC
882, USCInf ormati on Sci ences Insti tute, November 1983.
[ RFC883] P. Mockapetri s ,"Domai n names - Impl ementati on and Speci �ca-
t i on\, RFC 883, USC Inf ormati on Sci ences Insti tute, November1983.
[ RFC974] Crai g Partri dge,"Mai l Routi ng and the Domai n System\, RFC974,
CSNETCICBBNLaboratori es Inc. , Januar 1986.
[ Sant 93] Mi chael Santi f al l er , TCP/ I P u n d ONC/ NFS i n Th e o r i e u n d Pr a x i sAddi son-Wesl ey (Deutschl and) GmbH, Bonn, 1993.
[ Saue 92] Hermann Sauer, Re l a t i o n a l e Da t e n b a n k e n : Th e oAddi son-Wesl ey (Deutschl and) GmbH, Bonn,
[ Teor 90] Toby J. Teorey, Da t a b a s e Mo d e l iRe l a t i o n s h i p Ap
[ UCBK] Uni versi ty o
[ Val t 92]
![Page 174: · 4 IN H A L T SV ER ZEI C N IS 7 A us bl i c k 91 7. 1 E rw ei teru n gs - u dV er b esseru gs m oglich k ei t e n::: :: :: :: :: 92 7. 2 E in b d u n gin ein eM an age m en tp](https://reader033.vdocuments.pub/reader033/viewer/2022042104/5e8200f73665d93d0b2cae79/html5/thumbnails/174.jpg)
LI TERATURVERZEI CHNI S 171
[ Val t 94] Robert Val ta, Au s we r t u n g d e r Umf r a g e z u r a k t u e l l e n Ne t z d o kt a t i o n , Lei bni z-Rechenzentrum, M�unchen, Januar 1994
[ Vi xi 93] Paul Vi xi e, Na me S e r v e r Op e r a t i o n s GuDi gi tal Equi pment Corp. , Pa
[Wal l 91] Larry Wal l und Randal L.Associ ates Inc. ,