Lorsque j'ai signalé mon nom de domaine Godaddy à l'adresse IP du GCP VM exécutant mon serveur Web, tout ce que je devais faire:
Qu'est-ce qui m'empêche de faire la même chose pour n'importe quel domaine du monde?
En fait, j'ai fait:
J'ai créé un CName, A, SOA Entrée pour google.ca à mon adresse IP publique externe VMS et rien ne m'arrête. Maintenant, je ne m'attends pas à ce que tout le trafic de Google commence à diriger vers n'importe où je Vous voulez (ce serait un DDO amusant), mais ce qui se passe ici? Qu'est-ce que je manque?
Mes intentions ne sont pas contraires à l'éthique. J'essaie simplement d'apprendre comment tout fonctionne.
Rien ne vous arrête. Cependant, personne ne jettera pas non plus. C'est parce que le vrai domaine ne pointe pas sur votre serveur de noms (GCP DNS). On ne pouvait obtenir que ces enregistrements en leur demandant directement votre serveur de noms.
Les requêtes DNS commencent à la racine:
$ Dig google.ca +trace
; <<>> Dig 9.11.5-P4-5.1-Debian <<>> google.ca +trace
;; global options: +cmd
. 68215 IN NS h.root-servers.net.
. 68215 IN NS k.root-servers.net.
. 68215 IN NS i.root-servers.net.
. 68215 IN NS g.root-servers.net.
. 68215 IN NS a.root-servers.net.
. 68215 IN NS b.root-servers.net.
. 68215 IN NS d.root-servers.net.
. 68215 IN NS f.root-servers.net.
. 68215 IN NS l.root-servers.net.
. 68215 IN NS e.root-servers.net.
. 68215 IN NS j.root-servers.net.
. 68215 IN NS m.root-servers.net.
. 68215 IN NS c.root-servers.net.
;; Received 553 bytes from 192.168.2.5#53(192.168.2.5) in 31 ms
ca. 172800 IN NS c.ca-servers.ca.
ca. 172800 IN NS x.ca-servers.ca.
ca. 172800 IN NS any.ca-servers.ca.
ca. 172800 IN NS j.ca-servers.ca.
;; Received 626 bytes from 202.12.27.33#53(m.root-servers.net) in 24 ms
google.ca. 86400 IN NS ns1.google.com.
google.ca. 86400 IN NS ns2.google.com.
google.ca. 86400 IN NS ns3.google.com.
google.ca. 86400 IN NS ns4.google.com.
;; Received 603 bytes from 199.253.250.68#53(x.ca-servers.ca) in 42 ms
google.ca. 300 IN A 172.217.16.163
;; Received 54 bytes from 216.239.32.10#53(ns1.google.com) in 22 ms
(J'ai parcouru les choses Dnssec pour la brièveté.)
Bien sûr, bien sûr, vous n'effectueriez pas une interrogation itérative vous-même. Un serveur DNS récursif le fera pour vous, beaucoup plus rapide, aussi.
Supposons qu'il est 1980, et les livres de téléphone sont encore une chose. Qu'est-ce qui vous empêche d'aller à l'entrée de Kmart dans votre répertoire téléphonique, et remplacer leur numéro de téléphone avec le numéro de téléphone pour votre magasin? Absolument rien. Vous êtes libre de le faire, et si vous utilisez ce répertoire, chaque fois que vous essayez d'appeler Kmart, vous aurez votre propre boutique. Vous pouvez réattribuer les numéros de téléphone au contenu de votre cœur.
La chose est, tout le monde a son propre répertoire téléphonique, et ils ne regardent pas le vôtre. À moins que vous ne pouvez pénétrer dans la compagnie de téléphone et changer le numéro de téléphone de Kmart il pour que les annuaires téléphoniques qu'ils envoient auront le numéro de votre entreprise, vous ne vont pas à nier toute entreprise à Kmart.
De même, si vous décidez que vous êtes fatigué de taper incrediblylongdomainnamethattakesaridiculouslylongtimetotime.com et vous ne voulez pas compter sur autocomplete, vous êtes libre de configurer un serveur qui a short.com résolution à l'adresse IP de " incrediblylongdomainnamethattakesaridiculouslylongtimetotime.com, et avoir votre utilisation de l'ordinateur que serveur pour résoudre les noms de domaine. Mais à moins que vous pouvez obtenir d'autres ordinateurs des gens à utiliser aussi ce serveur, vous ne va pas affecter ce qui se passe quand on tape short.com dans la barre d'adresse.
Donc, ma question est de savoir ce qui m'empêche de faire la même chose pour n'importe quel domaine du monde? En fait, j'ai fait.
La partie difficile reçoit ces données, y compris les enregistrements NS
pour vos serveurs de noms installés sur le .ca
serveurs de noms. Ils ne vous laisseront probablement pas faire cela, et les tiers résoudront le domaine en interrogeant les serveurs de noms de la racine vers le bas, donc (global) d'abord, ce qui donne l'adresse à la .ca
serveurs de noms, qui donnent l'adresse au .google.ca
serveurs de noms.
Bien sûr, si vous installez ces enregistrements dans les serveurs de noms de votre organisation, tout le monde au sein de votre organisation verra les données que vous avez configurées. (Eh bien, en supposant qu'ils utilisent les serveurs de noms de l'Org, au lieu de quelque chose comme 8.8.8.8 directement.) Mais au moment où quelqu'un essaie d'ouvrir une connexion HTTPS là-bas, ils obtiendront une erreur car aucun CA en dehors de votre organisation ne signera vos clés pour ce domaine. (Lequel bien sûr peut ensuite être contourné en mettant en place une CA de votre propre au sein de l'organisation, mais c'est une histoire différente.)
Essayez de traverser https://howdns.works Il couvre à la fois les DN itératifs et récursifs et la manière dont cela fonctionne, de manière très amusante et compréhensible. La réponse à peu près indiquée par Daniel a tout besoin.
Des choses comme ça peuvent être utiles! Une fois, j'ai configuré le pare-feu pour être AOL afin que les utilisateurs d'un client puissent se rendre à AOL via un proxy de pare-feu sur le même TCP Port.