onsdag 28 november 2007

domändelegering: SÅ FUNKAR DET

en sak jag grubblat många nätter i sängen på och idag, 27 år gammal, äntligen förstått.
måste skriva ner det så jag aldrig glömmer. keihan: jag vågade aldrig fråga när du gjorde detta på ghettot.net en gång i tiden. jag skäms så.

det är lite hönan eller äggetvibbar nämligen.

säg att vi ska regga en domän. typ snajd-it.se. då behöver vi ange ett antal DNS-servrar som ska vara delegerade att ta hand om denna. det jag aldrig fattat är att man måste peka ut dessa med DNS-namn och IP. men hur gör man första gången om ens sprillans nya DNS:er inte har några namn?
svaret: så kallade glue records. dvs man säger till nic-se i detta fallet att ns.snajd-it.se pekar på 193.45.88.88. då reggar nic-se det i sina root-DNS:er, TROTS att ns.snajd-it.se inte existerar ännu (eftersom man faktiskt just håller på att regga snajd-it.se).

när allt väl är uppe sen så skapar man de NS-records man berättat för nic-se att man tänker ha i efterhand. och allt lirar!


så här kollar man att man gjort rätt:
(jag tänker använda sunet.se som test)

robin-mbp:~ robin$ dig se ns

; <<>> DiG 9.4.1-P1 <<>> se ns
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 40842
;; flags: qr rd ra; QUERY: 1, ANSWER: 9, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;se. IN NS

;; ANSWER SECTION:
se. 11545 IN NS a.ns.se.
se. 11545 IN NS b.ns.se.
se. 11545 IN NS c.ns.se.
se. 11545 IN NS d.ns.se.
se. 11545 IN NS e.ns.se.
se. 11545 IN NS f.ns.se.
se. 11545 IN NS g.ns.se.
se. 11545 IN NS h.ns.se.
se. 11545 IN NS i.ns.se.



det vi får reda på nu är vilka root-servrar nic-se kör för .se-domänen.

nu frågar vi en av dessa vilka NS som är reggade för sunet.se:

robin-mbp:~ robin$ dig @a.ns.se ns sunet.se

; <<>> DiG 9.4.1-P1 <<>> @a.ns.se ns sunet.se
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 25002
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 4, ADDITIONAL: 5
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;sunet.se. IN NS

;; AUTHORITY SECTION:
sunet.se. 86400 IN NS ns2.sunet.se.
sunet.se. 86400 IN NS sunic.sunet.se.
sunet.se. 86400 IN NS server.nordu.net.
sunet.se. 86400 IN NS b.ns.kth.se.

;; ADDITIONAL SECTION:
b.ns.kth.se. 86400 IN A 130.237.72.250
ns2.sunet.se. 86400 IN A 193.11.20.166
ns2.sunet.se. 86400 IN AAAA 2001:6b0:7:3::166
sunic.sunet.se. 86400 IN A 192.36.125.2
sunic.sunet.se. 86400 IN AAAA 2001:6b0:7::2


okej. nu vet vi vad nic-se tror är rätt NS för sunet.se

för att kolla att det stämmer i verkligheten också måste vi fråga sunets DNS:er så att deras NS stämmer med vad nic-se tror:

robin-mbp:~ robin$ dig @ns2.sunet.se ns sunet.se

; <<>> DiG 9.4.1-P1 <<>> @ns2.sunet.se ns sunet.se
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12400
;; flags: qr aa rd; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 3
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;sunet.se. IN NS

;; ANSWER SECTION:
sunet.se. 86400 IN NS sunic.sunet.se.
sunet.se. 86400 IN NS server.nordu.net.
sunet.se. 86400 IN NS b.ns.kth.se.
sunet.se. 86400 IN NS ns2.sunet.se.

;; ADDITIONAL SECTION:
ns2.sunet.se. 86400 IN A 193.11.20.166
sunic.sunet.se. 86400 IN A 192.36.125.2
sunic.sunet.se. 86400 IN AAAA 2001:6b0:7::2



allt stämmer! NS i sunets DNS:er matchar det som nic-se tycker att det ska vara.



sånt här tycker folk är tråkigt. men inte jag.

PS.
har man inte dig (typ i windows) så gör man min första fråga så här med nslookup:

nslookup -type=ns se

0 kommentarer: