The graphs linked below represent the trust dependencies for top-level domains (TLDs). Boxed nodes represent zones, and elliptical nodes represent name servers. Red arrows connect zones to their name servers, and blue arrows connect name servers to the zones their names are within.
The more domain names (elliptical nodes) in a TLD's graph, the more implicit trust dependencies that TLD has. E.g., the .se graph has only 10 name servers, all of which are direct name servers for the .se zone, so it has no implicit trust dependencies. However, the .fr graph has 136 name servers, only 8 of which are direct name servers for the .fr zone, so it has a lot of implicit trust dependencies.
Having implicit trust dependencies makes a TLD more vulnerable to DNS cache poisoning. E.g., in the case of .fr, if any one of those 136 name servers were to be compromised, it could very easily poison every .fr domain name. This page describes an example attack where one of the implicitly trusted name servers takes over control of the entire .fr domain.
Fully deploying DNSSEC globally would largely solve these trust issues, but why wait for that to happen? TLD operators could fix this through purely administrative changes today.
If a TLD has no more transitive name servers than direct name servers, then it earns a silver star. If the TLD additionally has only one zone dependency, then it earns a gold star.
| TLD | Zones | Servers | PDF link | Graphviz link | ||
|---|---|---|---|---|---|---|
| Direct | Transitive | |||||
| .ac | 18 | 7 | 55 | ac.pdf (27896 bytes) | ac.dot (11547 bytes) | |
| .ad | 104 | 8 | 266 | ad.pdf (106163 bytes) | ad.dot (58240 bytes) | |
| .ae | 78 | 7 | 204 | ae.pdf (83122 bytes) | ae.dot (47354 bytes) | |
| .aero | 99 | 9 | 250 | aero.pdf (99456 bytes) | aero.dot (56883 bytes) | |
| .af | 103 | 12 | 234 | af.pdf (95649 bytes) | af.dot (54171 bytes) | |
| .ag | 18 | 7 | 26 | ag.pdf (22104 bytes) | ag.dot (11667 bytes) | |
| .ai | 9 | 4 | 27 | ai.pdf (16288 bytes) | ai.dot (5481 bytes) | |
| .al | 101 | 7 | 245 | al.pdf (98984 bytes) | al.dot (56901 bytes) | |
| .am | 67 | 7 | 175 | am.pdf (69591 bytes) | am.dot (39699 bytes) | |
| .an | 95 | 10 | 213 | an.pdf (87506 bytes) | an.dot (49718 bytes) | |
| .ao | 75 | 5 | 169 | ao.pdf (70653 bytes) | ao.dot (39245 bytes) | |
| .aq | 105 | 4 | 227 | aq.pdf (95747 bytes) | aq.dot (54040 bytes) | |
| .ar | 90 | 8 | 228 | ar.pdf (91101 bytes) | ar.dot (51565 bytes) | |
| .arpa | 6 | 12 | 34 | arpa.pdf (17162 bytes) | arpa.dot (6366 bytes) | |
| .as | 28 | 9 | 66 | as.pdf (36389 bytes) | as.dot (19377 bytes) | |
| .asia | 18 | 6 | 25 | asia.pdf (22163 bytes) | asia.dot (12606 bytes) | |
| .at | 4 | 10 | 17 | at.pdf (13229 bytes) | at.dot (3249 bytes) | |
| .au | 76 | 9 | 201 | au.pdf (81044 bytes) | au.dot (46406 bytes) | |
| .aw | 92 | 3 | 205 | aw.pdf (84343 bytes) | aw.dot (47978 bytes) | |
| .ax | 17 | 3 | 45 | ax.pdf (22549 bytes) | ax.dot (8916 bytes) | |
| .az | 131 | 5 | 282 | az.pdf (116780 bytes) | az.dot (66551 bytes) | |
| .ba | 86 | 5 | 213 | ba.pdf (86842 bytes) | ba.dot (49738 bytes) | |
| .bb | 8 | 2 | 29 | bb.pdf (16531 bytes) | bb.dot (5787 bytes) | |
| .bd | 6 | 3 | 26 | bd.pdf (15672 bytes) | bd.dot (4909 bytes) | |
![]() |
.be | 2 | 8 | 8 | be.pdf (9322 bytes) | be.dot (1455 bytes) |
| .bf | 62 | 4 | 145 | bf.pdf (60411 bytes) | bf.dot (34165 bytes) | |
| .bg | 64 | 6 | 148 | bg.pdf (62267 bytes) | bg.dot (34741 bytes) | |
![]() |
.bh | 3 | 4 | 4 | bh.pdf (8317 bytes) | bh.dot (1367 bytes) |
| .bi | 59 | 5 | 139 | bi.pdf (59375 bytes) | bi.dot (32902 bytes) | |
| .biz | 2 | 7 | 11 | biz.pdf (9175 bytes) | biz.dot (1711 bytes) | |
| .bj | 62 | 5 | 145 | bj.pdf (60732 bytes) | bj.dot (33865 bytes) | |
| .bm | 24 | 8 | 68 | bm.pdf (29582 bytes) | bm.dot (12049 bytes) | |
| .bn | 59 | 5 | 141 | bn.pdf (58934 bytes) | bn.dot (33100 bytes) | |
| .bo | 72 | 3 | 174 | bo.pdf (71273 bytes) | bo.dot (39691 bytes) | |
![]() |
.br | 2 | 6 | 6 | br.pdf (7596 bytes) | br.dot (987 bytes) |
| .bs | 15 | 3 | 37 | bs.pdf (21259 bytes) | bs.dot (8671 bytes) | |
| .bt | 96 | 7 | 240 | bt.pdf (93915 bytes) | bt.dot (53902 bytes) | |
| .bv | 17 | 3 | 56 | bv.pdf (24864 bytes) | bv.dot (9379 bytes) | |
| .bw | 134 | 7 | 294 | bw.pdf (123878 bytes) | bw.dot (70712 bytes) | |
| .by | 112 | 6 | 237 | by.pdf (99532 bytes) | by.dot (57320 bytes) | |
| .bz | 16 | 6 | 23 | bz.pdf (20565 bytes) | bz.dot (11004 bytes) | |
| .ca | 19 | 10 | 33 | ca.pdf (23416 bytes) | ca.dot (12183 bytes) | |
| .cat | 114 | 9 | 290 | cat.pdf (112943 bytes) | cat.dot (62587 bytes) | |
| .cc | 5 | 7 | 28 | cc.pdf (15331 bytes) | cc.dot (5035 bytes) | |
| .cd | 60 | 3 | 141 | cd.pdf (59938 bytes) | cd.dot (33233 bytes) | |
| .cf | 64 | 3 | 151 | cf.pdf (62722 bytes) | cf.dot (35941 bytes) | |
| .cg | 60 | 3 | 141 | cg.pdf (59937 bytes) | cg.dot (33233 bytes) | |
| .ch | 90 | 8 | 228 | ch.pdf (91323 bytes) | ch.dot (51565 bytes) | |
| .ci | 64 | 6 | 153 | ci.pdf (63269 bytes) | ci.dot (35653 bytes) | |
| .ck | 9 | 4 | 17 | ck.pdf (16874 bytes) | ck.dot (5614 bytes) | |
| .cl | 64 | 7 | 166 | cl.pdf (67558 bytes) | cl.dot (37189 bytes) | |
| .cm | 96 | 8 | 243 | cm.pdf (95796 bytes) | cm.dot (54329 bytes) | |
| .cn | 100 | 6 | 253 | cn.pdf (100325 bytes) | cn.dot (56329 bytes) | |
| .co | 98 | 6 | 229 | co.pdf (91962 bytes) | co.dot (52520 bytes) | |
| .com | 4 | 13 | 21 | com.pdf (13418 bytes) | com.dot (4135 bytes) | |
| .coop | 7 | 4 | 29 | coop.pdf (17487 bytes) | coop.dot (5990 bytes) | |
| .cr | 63 | 6 | 151 | cr.pdf (61405 bytes) | cr.dot (34953 bytes) | |
| .cu | 63 | 6 | 154 | cu.pdf (63267 bytes) | cu.dot (36116 bytes) | |
| .cv | 75 | 5 | 169 | cv.pdf (70648 bytes) | cv.dot (39245 bytes) | |
| .cx | 37 | 7 | 83 | cx.pdf (43375 bytes) | cx.dot (24315 bytes) | |
| .cy | 76 | 8 | 198 | cy.pdf (78481 bytes) | cy.dot (44425 bytes) | |
![]() |
.cz | 2 | 6 | 6 | cz.pdf (7556 bytes) | cz.dot (939 bytes) |
| .de | 9 | 6 | 32 | de.pdf (18412 bytes) | de.dot (6329 bytes) | |
| .dj | 63 | 9 | 152 | dj.pdf (63553 bytes) | dj.dot (35259 bytes) | |
| .dk | 8 | 6 | 31 | dk.pdf (17381 bytes) | dk.dot (5996 bytes) | |
| .dm | 29 | 4 | 62 | dm.pdf (35115 bytes) | dm.dot (19142 bytes) | |
| .do | 29 | 5 | 69 | do.pdf (33372 bytes) | do.dot (15704 bytes) | |
| .dz | 61 | 4 | 139 | dz.pdf (58875 bytes) | dz.dot (33213 bytes) | |
![]() |
.ec | 2 | 4 | 4 | ec.pdf (7141 bytes) | ec.dot (751 bytes) |
| .edu | 5 | 7 | 21 | edu.pdf (14157 bytes) | edu.dot (4497 bytes) | |
| .ee | 30 | 7 | 76 | ee.pdf (32785 bytes) | ee.dot (14240 bytes) | |
| .eg | 23 | 4 | 63 | eg.pdf (31361 bytes) | eg.dot (14831 bytes) | |
| .er | 62 | 6 | 144 | er.pdf (61115 bytes) | er.dot (34301 bytes) | |
| .es | 103 | 10 | 260 | es.pdf (104704 bytes) | es.dot (57608 bytes) | |
| .et | 63 | 4 | 147 | et.pdf (62432 bytes) | et.dot (34786 bytes) | |
| .eu | 4 | 9 | 17 | eu.pdf (11888 bytes) | eu.dot (2682 bytes) | |
![]() |
.fi | 1 | 6 | 6 | fi.pdf (6390 bytes) | fi.dot (431 bytes) |
| .fj | 28 | 8 | 65 | fj.pdf (32529 bytes) | fj.dot (16337 bytes) | |
| .fk | 7 | 6 | 27 | fk.pdf (16866 bytes) | fk.dot (5293 bytes) | |
| .fm | 25 | 6 | 61 | fm.pdf (34163 bytes) | fm.dot (18070 bytes) | |
| .fo | 8 | 2 | 32 | fo.pdf (17130 bytes) | fo.dot (5989 bytes) | |
| .fr | 57 | 8 | 136 | fr.pdf (57973 bytes) | fr.dot (32155 bytes) | |
| .ga | 59 | 4 | 142 | ga.pdf (59219 bytes) | ga.dot (33107 bytes) | |
| .gb | 91 | 4 | 203 | gb.pdf (84368 bytes) | gb.dot (47653 bytes) | |
| .gd | 65 | 7 | 152 | gd.pdf (63861 bytes) | gd.dot (36915 bytes) | |
| .ge | 66 | 5 | 146 | ge.pdf (62073 bytes) | ge.dot (34982 bytes) | |
| .gf | 6 | 2 | 24 | gf.pdf (15190 bytes) | gf.dot (4823 bytes) | |
| .gg | 142 | 10 | 300 | gg.pdf (129024 bytes) | gg.dot (74073 bytes) | |
| .gh | 129 | 6 | 276 | gh.pdf (116990 bytes) | gh.dot (66604 bytes) | |
| .gi | 16 | 6 | 23 | gi.pdf (20574 bytes) | gi.dot (11004 bytes) | |
| .gl | 14 | 5 | 41 | gl.pdf (20511 bytes) | gl.dot (8024 bytes) | |
| .gm | 12 | 3 | 33 | gm.pdf (18843 bytes) | gm.dot (6760 bytes) | |
| .gn | 128 | 4 | 274 | gn.pdf (116220 bytes) | gn.dot (66132 bytes) | |
| .gov | 7 | 7 | 36 | gov.pdf (18299 bytes) | gov.dot (6969 bytes) | |
| .gp | 109 | 4 | 272 | gp.pdf (107849 bytes) | gp.dot (59782 bytes) | |
| .gq | 60 | 2 | 139 | gq.pdf (59145 bytes) | gq.dot (32822 bytes) | |
| .gr | 12 | 9 | 42 | gr.pdf (22696 bytes) | gr.dot (9123 bytes) | |
| .gs | 63 | 7 | 152 | gs.pdf (62684 bytes) | gs.dot (35749 bytes) | |
| .gt | 67 | 6 | 158 | gt.pdf (64024 bytes) | gt.dot (36385 bytes) | |
| .gu | 60 | 5 | 142 | gu.pdf (59320 bytes) | gu.dot (33248 bytes) | |
| .gw | 13 | 3 | 41 | gw.pdf (21150 bytes) | gw.dot (7726 bytes) | |
| .gy | 74 | 8 | 167 | gy.pdf (69761 bytes) | gy.dot (39389 bytes) | |
| .hk | 85 | 10 | 222 | hk.pdf (89983 bytes) | hk.dot (49630 bytes) | |
| .hm | 3 | 3 | 6 | hm.pdf (8803 bytes) | hm.dot (1144 bytes) | |
| .hn | 16 | 6 | 23 | hn.pdf (20568 bytes) | hn.dot (11004 bytes) | |
| .hr | 113 | 5 | 287 | hr.pdf (113390 bytes) | hr.dot (63012 bytes) | |
| .ht | 68 | 6 | 163 | ht.pdf (66899 bytes) | ht.dot (37645 bytes) | |
| .hu | 64 | 7 | 148 | hu.pdf (61380 bytes) | hu.dot (34481 bytes) | |
| .id | 70 | 7 | 178 | id.pdf (72067 bytes) | id.dot (40464 bytes) | |
| .ie | 100 | 9 | 249 | ie.pdf (101253 bytes) | ie.dot (56069 bytes) | |
| .il | 74 | 7 | 172 | il.pdf (72674 bytes) | il.dot (41091 bytes) | |
| .im | 10 | 3 | 36 | im.pdf (20301 bytes) | im.dot (7388 bytes) | |
| .in | 18 | 8 | 31 | in.pdf (23655 bytes) | in.dot (12892 bytes) | |
| .info | 13 | 6 | 17 | info.pdf (17320 bytes) | info.dot (8562 bytes) | |
| .int | 94 | 5 | 208 | int.pdf (86983 bytes) | int.dot (49196 bytes) | |
| .io | 18 | 7 | 55 | io.pdf (27538 bytes) | io.dot (11547 bytes) | |
![]() |
.iq | 2 | 6 | 6 | iq.pdf (8157 bytes) | iq.dot (1246 bytes) |
| .ir | 97 | 4 | 249 | ir.pdf (98952 bytes) | ir.dot (55688 bytes) | |
| .is | 71 | 7 | 164 | is.pdf (67608 bytes) | is.dot (37948 bytes) | |
| .it | 11 | 5 | 36 | it.pdf (19090 bytes) | it.dot (6832 bytes) | |
| .je | 142 | 10 | 300 | je.pdf (129120 bytes) | je.dot (74073 bytes) | |
| .jm | 64 | 5 | 153 | jm.pdf (63012 bytes) | jm.dot (35571 bytes) | |
| .jo | 67 | 6 | 158 | jo.pdf (65278 bytes) | jo.dot (37679 bytes) | |
| .jobs | 5 | 7 | 28 | jobs.pdf (15339 bytes) | jobs.dot (5051 bytes) | |
![]() |
.jp | 2 | 7 | 7 | jp.pdf (8107 bytes) | jp.dot (1129 bytes) |
| .ke | 146 | 3 | 337 | ke.pdf (137514 bytes) | ke.dot (77904 bytes) | |
| .kg | 83 | 3 | 170 | kg.pdf (70531 bytes) | kg.dot (40518 bytes) | |
| .kh | 121 | 6 | 288 | kh.pdf (117989 bytes) | kh.dot (68168 bytes) | |
| .ki | 108 | 10 | 264 | ki.pdf (109242 bytes) | ki.dot (63653 bytes) | |
| .km | 15 | 3 | 42 | km.pdf (22516 bytes) | km.dot (9512 bytes) | |
| .kn | 86 | 3 | 222 | kn.pdf (87843 bytes) | kn.dot (49782 bytes) | |
| .kp | 13 | 2 | 36 | kp.pdf (20129 bytes) | kp.dot (7204 bytes) | |
![]() |
.kr | 2 | 6 | 6 | kr.pdf (7704 bytes) | kr.dot (987 bytes) |
| .kw | 6 | 4 | 28 | kw.pdf (16226 bytes) | kw.dot (4953 bytes) | |
| .ky | 7 | 6 | 29 | ky.pdf (17113 bytes) | ky.dot (5745 bytes) | |
| .kz | 80 | 7 | 164 | kz.pdf (69513 bytes) | kz.dot (39488 bytes) | |
| .la | 6 | 7 | 28 | la.pdf (16875 bytes) | la.dot (5647 bytes) | |
| .lb | 114 | 5 | 246 | lb.pdf (102039 bytes) | lb.dot (59346 bytes) | |
| .lc | 19 | 7 | 26 | lc.pdf (22136 bytes) | lc.dot (12056 bytes) | |
| .li | 91 | 8 | 229 | li.pdf (92705 bytes) | li.dot (52021 bytes) | |
| .lk | 95 | 9 | 244 | lk.pdf (96603 bytes) | lk.dot (54111 bytes) | |
| .lr | 128 | 3 | 274 | lr.pdf (114196 bytes) | lr.dot (66097 bytes) | |
| .ls | 129 | 3 | 278 | ls.pdf (115104 bytes) | ls.dot (66633 bytes) | |
| .lt | 18 | 7 | 63 | lt.pdf (26061 bytes) | lt.dot (10091 bytes) | |
| .lu | 93 | 9 | 239 | lu.pdf (95767 bytes) | lu.dot (53371 bytes) | |
| .lv | 64 | 8 | 148 | lv.pdf (61717 bytes) | lv.dot (34736 bytes) | |
| .ly | 68 | 5 | 153 | ly.pdf (65023 bytes) | ly.dot (36535 bytes) | |
| .ma | 60 | 6 | 143 | ma.pdf (60172 bytes) | ma.dot (33859 bytes) | |
| .mc | 64 | 5 | 149 | mc.pdf (62122 bytes) | mc.dot (34586 bytes) | |
| .md | 78 | 7 | 172 | md.pdf (71064 bytes) | md.dot (40124 bytes) | |
| .me | 17 | 8 | 27 | me.pdf (22460 bytes) | me.dot (11765 bytes) | |
| .mg | 65 | 5 | 151 | mg.pdf (61840 bytes) | mg.dot (35176 bytes) | |
| .mh | 11 | 4 | 29 | mh.pdf (18008 bytes) | mh.dot (6932 bytes) | |
![]() |
.mil | 2 | 6 | 6 | mil.pdf (7959 bytes) | mil.dot (1146 bytes) |
| .mk | 55 | 5 | 124 | mk.pdf (56733 bytes) | mk.dot (32317 bytes) | |
| .ml | 59 | 5 | 140 | ml.pdf (58901 bytes) | ml.dot (32986 bytes) | |
| .mm | 61 | 5 | 145 | mm.pdf (61356 bytes) | mm.dot (34300 bytes) | |
| .mn | 17 | 10 | 27 | mn.pdf (22151 bytes) | mn.dot (11713 bytes) | |
| .mo | 87 | 6 | 227 | mo.pdf (89535 bytes) | mo.dot (50507 bytes) | |
| .mobi | 16 | 6 | 23 | mobi.pdf (20591 bytes) | mobi.dot (10962 bytes) | |
![]() |
.mp | 2 | 4 | 4 | mp.pdf (7161 bytes) | mp.dot (735 bytes) |
| .mq | 94 | 3 | 235 | mq.pdf (95474 bytes) | mq.dot (53217 bytes) | |
| .mr | 63 | 3 | 146 | mr.pdf (61614 bytes) | mr.dot (34326 bytes) | |
| .ms | 33 | 7 | 75 | ms.pdf (38619 bytes) | ms.dot (21496 bytes) | |
| .mt | 59 | 8 | 144 | mt.pdf (60199 bytes) | mt.dot (33279 bytes) | |
| .mu | 110 | 7 | 277 | mu.pdf (114854 bytes) | mu.dot (66088 bytes) | |
| .museum | 49 | 5 | 107 | museum.pdf (46677 bytes) | museum.dot (25238 bytes) | |
| .mv | 8 | 4 | 29 | mv.pdf (17090 bytes) | mv.dot (5752 bytes) | |
| .mw | 94 | 7 | 239 | mw.pdf (98750 bytes) | mw.dot (56731 bytes) | |
![]() |
.mx | 2 | 6 | 6 | mx.pdf (7611 bytes) | mx.dot (1061 bytes) |
| .my | 98 | 8 | 249 | my.pdf (98769 bytes) | my.dot (55417 bytes) | |
| .mz | 16 | 5 | 45 | mz.pdf (24013 bytes) | mz.dot (10150 bytes) | |
| .na | 38 | 5 | 85 | na.pdf (41444 bytes) | na.dot (22588 bytes) | |
| .name | 5 | 10 | 31 | name.pdf (16192 bytes) | name.dot (5421 bytes) | |
| .nc | 61 | 4 | 146 | nc.pdf (60414 bytes) | nc.dot (33944 bytes) | |
| .ne | 60 | 3 | 140 | ne.pdf (58326 bytes) | ne.dot (32990 bytes) | |
| .net | 4 | 13 | 21 | net.pdf (13955 bytes) | net.dot (4135 bytes) | |
| .nf | 3 | 2 | 4 | nf.pdf (7233 bytes) | nf.dot (691 bytes) | |
| .ng | 8 | 6 | 38 | ng.pdf (19888 bytes) | ng.dot (7800 bytes) | |
| .ni | 77 | 7 | 169 | ni.pdf (70553 bytes) | ni.dot (40332 bytes) | |
| .nl | 90 | 7 | 203 | nl.pdf (83268 bytes) | nl.dot (47454 bytes) | |
| .no | 16 | 6 | 56 | no.pdf (24339 bytes) | no.dot (9215 bytes) | |
| .np | 114 | 9 | 280 | np.pdf (116556 bytes) | np.dot (66376 bytes) | |
| .nr | 26 | 4 | 53 | nr.pdf (30676 bytes) | nr.dot (16701 bytes) | |
| .nu | 2 | 9 | 12 | nu.pdf (9933 bytes) | nu.dot (1879 bytes) | |
![]() |
.nz | 3 | 7 | 7 | nz.pdf (9307 bytes) | nz.dot (2024 bytes) |
| .om | 63 | 4 | 144 | om.pdf (61318 bytes) | om.dot (34589 bytes) | |
| .org | 13 | 6 | 17 | org.pdf (17687 bytes) | org.dot (8562 bytes) | |
| .pa | 77 | 6 | 194 | pa.pdf (76588 bytes) | pa.dot (42523 bytes) | |
| .pe | 61 | 4 | 142 | pe.pdf (59724 bytes) | pe.dot (33622 bytes) | |
![]() |
.pf | 2 | 2 | 2 | pf.pdf (6415 bytes) | pf.dot (448 bytes) |
| .pg | 86 | 5 | 215 | pg.pdf (86910 bytes) | pg.dot (50035 bytes) | |
| .ph | 61 | 3 | 158 | ph.pdf (62930 bytes) | ph.dot (35557 bytes) | |
| .pk | 13 | 3 | 31 | pk.pdf (18754 bytes) | pk.dot (7082 bytes) | |
![]() |
.pl | 1 | 9 | 9 | pl.pdf (7776 bytes) | pl.dot (680 bytes) |
| .pm | 58 | 8 | 136 | pm.pdf (57845 bytes) | pm.dot (32493 bytes) | |
| .pn | 101 | 4 | 219 | pn.pdf (91573 bytes) | pn.dot (51645 bytes) | |
| .pr | 12 | 5 | 40 | pr.pdf (21059 bytes) | pr.dot (7736 bytes) | |
![]() |
.pro | 2 | 4 | 4 | pro.pdf (6896 bytes) | pro.dot (762 bytes) |
| .ps | 67 | 6 | 161 | ps.pdf (65866 bytes) | ps.dot (37562 bytes) | |
| .pt | 64 | 6 | 155 | pt.pdf (63160 bytes) | pt.dot (35367 bytes) | |
![]() |
.pw | 2 | 4 | 4 | pw.pdf (8333 bytes) | pw.dot (860 bytes) |
| .py | 102 | 8 | 252 | py.pdf (99465 bytes) | py.dot (57299 bytes) | |
![]() |
.qa | 3 | 3 | 3 | qa.pdf (7394 bytes) | qa.dot (1030 bytes) |
| .re | 58 | 8 | 136 | re.pdf (57842 bytes) | re.dot (32493 bytes) | |
| .ro | 35 | 6 | 68 | ro.pdf (36290 bytes) | ro.dot (19510 bytes) | |
| .rs | 93 | 9 | 231 | rs.pdf (92618 bytes) | rs.dot (53082 bytes) | |
| .ru | 66 | 7 | 146 | ru.pdf (62903 bytes) | ru.dot (34950 bytes) | |
| .rw | 60 | 3 | 141 | rw.pdf (59941 bytes) | rw.dot (33233 bytes) | |
| .sa | 66 | 6 | 157 | sa.pdf (64872 bytes) | sa.dot (37305 bytes) | |
| .sb | 93 | 8 | 247 | sb.pdf (100205 bytes) | sb.dot (57068 bytes) | |
| .sc | 22 | 7 | 47 | sc.pdf (28667 bytes) | sc.dot (15751 bytes) | |
| .sd | 154 | 7 | 355 | sd.pdf (147549 bytes) | sd.dot (83993 bytes) | |
![]() |
.se | 1 | 10 | 10 | se.pdf (7832 bytes) | se.dot (729 bytes) |
| .sg | 89 | 5 | 226 | sg.pdf (90837 bytes) | sg.dot (50830 bytes) | |
| .sh | 18 | 7 | 55 | sh.pdf (27823 bytes) | sh.dot (11547 bytes) | |
| .si | 36 | 8 | 79 | si.pdf (38827 bytes) | si.dot (21067 bytes) | |
| .sj | 17 | 3 | 56 | sj.pdf (24872 bytes) | sj.dot (9379 bytes) | |
| .sk | 44 | 9 | 94 | sk.pdf (43004 bytes) | sk.dot (23033 bytes) | |
| .sl | 8 | 2 | 29 | sl.pdf (17003 bytes) | sl.dot (5999 bytes) | |
| .sm | 69 | 4 | 156 | sm.pdf (64308 bytes) | sm.dot (36130 bytes) | |
| .sn | 63 | 5 | 147 | sn.pdf (60857 bytes) | sn.dot (34363 bytes) | |
![]() |
.so | 1 | 5 | 5 | so.pdf (6666 bytes) | so.dot (412 bytes) |
| .sr | 6 | 2 | 25 | sr.pdf (15401 bytes) | sr.dot (4702 bytes) | |
| .st | 91 | 5 | 225 | st.pdf (92218 bytes) | st.dot (53416 bytes) | |
| .su | 66 | 5 | 146 | su.pdf (62479 bytes) | su.dot (34950 bytes) | |
| .sv | 73 | 7 | 170 | sv.pdf (69168 bytes) | sv.dot (39130 bytes) | |
| .sy | 8 | 6 | 27 | sy.pdf (16815 bytes) | sy.dot (5387 bytes) | |
| .sz | 63 | 3 | 150 | sz.pdf (62167 bytes) | sz.dot (35704 bytes) | |
| .tc | 70 | 5 | 153 | tc.pdf (65423 bytes) | tc.dot (38077 bytes) | |
| .td | 60 | 3 | 139 | td.pdf (59126 bytes) | td.dot (32862 bytes) | |
![]() |
.tel | 1 | 10 | 10 | tel.pdf (8043 bytes) | tel.dot (870 bytes) |
| .tf | 58 | 8 | 136 | tf.pdf (57846 bytes) | tf.dot (32493 bytes) | |
| .tg | 14 | 3 | 40 | tg.pdf (21073 bytes) | tg.dot (8261 bytes) | |
| .th | 70 | 6 | 150 | th.pdf (64681 bytes) | th.dot (36898 bytes) | |
| .tj | 63 | 5 | 152 | tj.pdf (61848 bytes) | tj.dot (35192 bytes) | |
| .tk | 2 | 7 | 11 | tk.pdf (9836 bytes) | tk.dot (1595 bytes) | |
| .tl | 68 | 9 | 180 | tl.pdf (71119 bytes) | tl.dot (40265 bytes) | |
| .tm | 20 | 7 | 57 | tm.pdf (29229 bytes) | tm.dot (12295 bytes) | |
| .tn | 63 | 5 | 150 | tn.pdf (63745 bytes) | tn.dot (35756 bytes) | |
| .to | 69 | 5 | 159 | to.pdf (66288 bytes) | to.dot (38023 bytes) | |
| .tp | 102 | 6 | 253 | tp.pdf (102026 bytes) | tp.dot (56950 bytes) | |
| .tr | 59 | 6 | 142 | tr.pdf (58624 bytes) | tr.dot (33143 bytes) | |
| .travel | 25 | 8 | 63 | travel.pdf (34638 bytes) | travel.dot (18268 bytes) | |
| .tt | 6 | 8 | 30 | tt.pdf (17097 bytes) | tt.dot (5116 bytes) | |
| .tv | 5 | 7 | 28 | tv.pdf (15349 bytes) | tv.dot (5035 bytes) | |
| .tw | 85 | 9 | 222 | tw.pdf (87406 bytes) | tw.dot (49629 bytes) | |
| .tz | 36 | 3 | 89 | tz.pdf (38182 bytes) | tz.dot (18853 bytes) | |
| .ua | 88 | 10 | 211 | ua.pdf (85245 bytes) | ua.dot (48483 bytes) | |
| .ug | 73 | 5 | 166 | ug.pdf (68920 bytes) | ug.dot (39921 bytes) | |
![]() |
.uk | 2 | 11 | 11 | uk.pdf (10018 bytes) | uk.dot (1787 bytes) |
| .us | 3 | 8 | 11 | us.pdf (10256 bytes) | us.dot (2045 bytes) | |
| .uy | 67 | 6 | 156 | uy.pdf (64842 bytes) | uy.dot (36422 bytes) | |
![]() |
.uz | 2 | 6 | 6 | uz.pdf (7121 bytes) | uz.dot (582 bytes) |
| .va | 139 | 9 | 317 | va.pdf (128988 bytes) | va.dot (72176 bytes) | |
| .vc | 16 | 6 | 23 | vc.pdf (20801 bytes) | vc.dot (11004 bytes) | |
| .ve | 68 | 5 | 173 | ve.pdf (69382 bytes) | ve.dot (38465 bytes) | |
| .vg | 70 | 5 | 153 | vg.pdf (65286 bytes) | vg.dot (38077 bytes) | |
| .vi | 70 | 6 | 157 | vi.pdf (64887 bytes) | vi.dot (37296 bytes) | |
| .vn | 59 | 7 | 143 | vn.pdf (59482 bytes) | vn.dot (33592 bytes) | |
| .vu | 8 | 5 | 28 | vu.pdf (16312 bytes) | vu.dot (5992 bytes) | |
| .wf | 58 | 8 | 136 | wf.pdf (57843 bytes) | wf.dot (32493 bytes) | |
![]() |
.ws | 2 | 6 | 6 | ws.pdf (7980 bytes) | ws.dot (957 bytes) |
| .xn--0zwm56d / .测试 | 21 | 3 | 44 | xn--0zwm56d.pdf (28046 bytes) | xn--0zwm56d.dot (14489 bytes) | |
| .xn--11b5bs3a9aj6g / .परीक्षा | 21 | 3 | 44 | xn--11b5bs3a9aj6g.pdf (27987 bytes) | xn--11b5bs3a9aj6g.dot (14513 bytes) | |
| .xn--80akhbyknj4f / .испытание | 21 | 3 | 44 | xn--80akhbyknj4f.pdf (27638 bytes) | xn--80akhbyknj4f.dot (14509 bytes) | |
| .xn--9t4b11yi5a / .테스트 | 21 | 3 | 44 | xn--9t4b11yi5a.pdf (27800 bytes) | xn--9t4b11yi5a.dot (14501 bytes) | |
| .xn--deba0ad / .טעסט | 21 | 3 | 44 | xn--deba0ad.pdf (27269 bytes) | xn--deba0ad.dot (14489 bytes) | |
| .xn--g6w251d / .測試 | 21 | 3 | 44 | xn--g6w251d.pdf (28052 bytes) | xn--g6w251d.dot (14489 bytes) | |
| .xn--hgbk6aj7f53bba / .آزمایشی | 21 | 3 | 44 | xn--hgbk6aj7f53bba.pdf (27938 bytes) | xn--hgbk6aj7f53bba.dot (14517 bytes) | |
| .xn--hlcj6aya9esc7a / .பரிட்சை | 21 | 3 | 44 | xn--hlcj6aya9esc7a.pdf (27770 bytes) | xn--hlcj6aya9esc7a.dot (14517 bytes) | |
| .xn--jxalpdlp / .δοκιμή | 21 | 3 | 44 | xn--jxalpdlp.pdf (27360 bytes) | xn--jxalpdlp.dot (14493 bytes) | |
| .xn--kgbechtv / .إختبار | 21 | 3 | 44 | xn--kgbechtv.pdf (27276 bytes) | xn--kgbechtv.dot (14493 bytes) | |
| .xn--zckzah / .テスト | 21 | 3 | 44 | xn--zckzah.pdf (27262 bytes) | xn--zckzah.dot (14485 bytes) | |
![]() |
.ye | 5 | 4 | 4 | ye.pdf (8391 bytes) | ye.dot (1481 bytes) |
| .yt | 58 | 8 | 136 | yt.pdf (57839 bytes) | yt.dot (32493 bytes) | |
| .yu | 89 | 7 | 222 | yu.pdf (89358 bytes) | yu.dot (51383 bytes) | |
| .za | 127 | 7 | 274 | za.pdf (114258 bytes) | za.dot (65929 bytes) | |
| .zm | 132 | 5 | 285 | zm.pdf (118568 bytes) | zm.dot (68047 bytes) | |
| .zw | 139 | 7 | 294 | zw.pdf (124364 bytes) | zw.dot (70890 bytes) | |
These graphs were generated from a snapshot of the DNS taken on June 10, 2009. The snapshot was taken using dnstrace (from the djbdns package), modified to trace multiple zones and transmit multiple queries in parallel and to do additional explicit NS queries. Running this tool sent a total of 85,189 DNS queries for 3467 different domain names to 2104 different DNS servers. I used a local copy of the root zone to avoid additional traffic to the global root servers.
The raw output was then processed by a Python script written with help from Bob Ippolito and then fed to graphviz to generate the PDF graphs linked from the table.
The table above still marks a domain as red even if all of the name servers are managed by a single organization; e.g., .com depends directly on {a,b,c,d,e,f,g,h,i,j,k,l,m}.gtld-servers.net and transitively on {a,c,d,e,f,g,h,l}2.nstld.com, but all of these are managed by VeriSign. This is suboptimal, but arguably not really a trust issue. (I would like to award a bronze star to these zones; if anyone has suggestions on how to automatically measure the number of organizational dependencies for a zone, I would be grateful.)
The graphs don't distinguish where NS records come from; e.g., the .net name servers think zocalo.net's name servers are ns{,2,3,4}.zocalo.net, whereas ns{,2,3,4}.zocalo.net and ns{,2,3}.via.net think they're ns{,2,3}.via.net + ns4.zocalo.net. This means (under normal conditions) a cache will never think that all of ns{,2,3,4}.zocalo.net and ns{,2,3}.via.net are authoritative for zocalo.net at one time. Additionally, it would be harder to attack a DNS cache once taking control of ns{,2,3}.zocalo.net than any of the other name servers.
I currently don't check for any DNSSEC records. In theory, if the DNS cache handles DNSSEC validation and has appropriate trust anchors configured, then DNSSEC signatures could help to limit dependency graphs.
The number of name servers a zone transitively depends on does not exactly equal the amount of trust. E.g., b.ns13.net, ns3.nic.tm, ns4.icb.co.uk, ns4.nic.io, and ns4.nic.sh all resolve to the same IP address (202.181.96.60), so any graphs containing two or more of these names is slightly overstating the amount of trust. On the other hand, some name server names have multiple IP addresses and some IP addresses are load-balanced across multiple machines, so representing these instances with a single node is slightly understating the amount of trust.
Please feel free to send comments and suggestions for improvements to matthew@dempsky.org.