C'est une très vieille question, mais j'avais plusieurs des mêmes questions pour comprendre comment fonctionne Internet . Comme les autres réponses, les livres sur le réseautage donnent un aperçu du BGP et du DNS, mais m'ont laissé perplexe. Par exemple, a.root-servers.net à m.root-servers.net sont indiqués comme serveurs racine, mais comment un service DNS sait-il où trouver ces serveurs s'il ne peut pas utiliser DNS lui-même.
Les bases de l'IP, du sous-réseau, du DNS, etc. sont supposées connues par cette réponse. Je m'occupe des «lacunes» que j'ai, et probablement l'intervenant, sur le fonctionnement d'Internet. Je ne suis nullement un expert, mais c'est ma compréhension des lacunes.
Adresses IP
La première chose à noter est que lorsque Internet a commencé comme ARPANET, tout le monde connaissait tout le monde et les tables de routage pour les adresses IP étaient codées à la main. Je suppose que le processus d'attribution des IP s'est fait par téléphone. Comme Internet est devenu trop grand, BGP a été utilisé par plusieurs réseaux (AS) pour annoncer qu'ils avaient des IP publiques ou pouvaient accéder à une IP publique via leur AS à un autre AS. La confiance était là qu'un AS ne publierait pas une adresse IP qu'il n'avait pas.
Aujourd'hui, il n'y a plus autant de confiance. Au lieu de cela, les FAI peuvent télécharger et authentifier les allocations IP à chaque AS à partir de l'IANA et des autorités régionales. Ces téléchargements sont désormais authentifiés via la cryptographie à clé publique. Ainsi, lorsque l'IANA "attribue une adresse IP", elle modifie son dossier (ou vraiment l'autorité régionale modifie son dossier). Tous les autres AS peuvent télécharger et authentifier leurs enregistrements.
Ces enregistrements sont importants car les FAI ne peuvent pas croire que les autres FAI ont les adresses IP. Les FAI peuvent comparer la publicité BGP avec les enregistrements IP authentifiés. Si une publicité BGP affiche le dernier AS en tant qu'AS autre que ce qui se trouve dans l'enregistrement authentifié de l'IANA et du RIR, la publicité BGP ne change pas leur propre routage.
Plus communément, un FAI ou AS malhonnête peut annoncer qu'il a un itinéraire via son AS qu'il n'a pas. AS1 a une adresse IP enregistrée et AS5 utilise actuellement AS5 -> AS4 -> AS3 -> AS1 -> IP. AS2 annonce à AS5 une route AS5 -> AS2 -> AS1 -> IP. Sauf qu'AS2 n'a pas de connexion avec AS1. Il peut simplement perdre les paquets, peut-être pour frustrer les clients d'hébergement d'AS1. Ou AS2 pourrait être un réseau de petite entreprise avec un arrangement multihomed avec AS5 et AS1. Leur routeur est mal configuré et annonce un chemin à travers un réseau de petite entreprise. Presque tous les FAI jettent de telles publicités de leurs clients BGP et ne transmettent que les publicités de fin de BGP.
Plus probablement, vous avez le cas du Pakistan essayant de fermer Youtube au Pakistan par un tel détournement d'IP, et de fermer Youtube en dehors du Pakistan aussi, car les AS en dehors du Pakistan ont supposé que leurs publicités BGP étaient correctes.
En fin de compte, il n'y a pas de défense parfaite contre un tel détournement d'IP. Dans la plupart des pays comme les États-Unis, un tel abus de BGP peut être puni comme une rupture de contrat et d'autres FAI fermeront les connexions d'appairage avec cet AS s'ils le doivent. Un FAI peut également ignorer l'ensemble de l'appareil IANA et RIR et rediriger les adresses IP vers leurs propres serveurs. Cela ne fonctionnera cependant pas pour les sites https, en supposant que le FAI ne dispose des clés privées d'aucune autorité de certification. Il y a très peu à gagner économiquement. Cela ne se produit qu'avec des gouvernements autoritaires, comme l'Égypte a récemment fermé toutes les publicités BGP à leurs FAI de l'extérieur du pays.
Serveurs DNS
DNS est un peu plus simple une fois que les tables IP sont correctes. Les serveurs racine sont toutes des adresses IP enregistrées dans le code du serveur DNS. a.root-servers.net est 198.41.0.4 et l'adresse IP est anycast dans un AS. Dans le cas de a.root-servers.net, l'AS est Verisign et il existe cinq sites différents. Aux États-Unis, les deux sites sont New York et LA. Anycasting est comme si vous aviez une adresse au 123 Main Street et que vous disiez "Peu importe la ville dans laquelle vous vous trouvez, allez au 123 Main Street et vous trouverez l'une de mes entreprises." 123 Main Street à NY et LA donneront la même réponse pour tous les domaines de premier niveau. L'AS, dans ce cas Verisign, détermine en interne quel serveur a le moins de sauts via OSPF, BGP interne et d'autres protocoles de routage. Ainsi, un routeur à Denver peut aller à Los Angeles tandis qu'un routeur à Chicago va à New York.
L'un des serveurs racine donne quelle adresse IP pour le domaine de premier niveau com. Ensuite, ce domaine donne le domaine de yoursite.com. Les bureaux d'enregistrement ont vraiment un contrat avec celui qui gère le domaine de premier niveau. Donc, si le domaine de premier niveau n'a actuellement aucun enregistrement pour yoursite.com, il a accès pour ajouter un enregistrement avec son serveur who-is. Ensuite, avec l'accès que le registraire vous a donné aux enregistrements DNS de yoursite.com, vous modifiez les enregistrements de leur serveur DNS pour accéder à votre adresse IP.
Parce que tout DNS dépend de plusieurs adresses IP allant au bon endroit, vous avez le même problème que précédemment avec l'authentification par AS du registre IP, puis les affectations BGP. C'est l'élément clé d'un site Web http. Https a la protection supplémentaire des certificats. Ainsi, un FAI ne peut pas rediriger les demandes de ses propres serveurs racine et serveurs de domaine de niveau supérieur pour donner leur propre IP pour, par exemple, citibank.com. S'ils l'ont fait, l'adresse IP donnée à l'utilisateur sera une adresse IP différente, mais leur serveur n'aura pas la clé privée de Citibank.