Petite explication du DNS:

- deux opérations de base:
     resolving:   nom -> adresse IP
     unresolving: adresse IP -> nom

  (un nom est défini précisément dans la norme, un RFC)

- système hiérarchisé/délégué, resolving et unresolving séparés.

  Exemples: - le resolving de tout domaine sous ch est géré par un certain
              nombre de serveurs DNS (NS)
            - alphanet.ch et ses sous-domaines par un autre ensemble
            - subdomaine.alphanet.ch, idem et récursivement
            - 128.178.x.x est géré par un DNS (unresolve)
            - 128.178.2.x par un autre, délégué.

En clair, si vous possédez une adresse IP chez un fournisseur (fixe ou
dynamique), il est POSSIBLE de faire qu'un nom complètement non relié se
résolve sur cette adresse pour autant que vous ayez autorité dans ce
domaine (exemple: switzerland.ch.eu.org -> un serveur à
l'UNIGE. Mais si vous ne possédez pas switzerland.ch.eu.org, ou au moins 
ch.eu.org dans ce cas, aucun moyen de le faire résoudre chez vous).

Similairement, pour que le unresolve fonctionne, le possesseur de la zone
numérique donnée (p.ex. Classe C, Classe B, Classe A, etc, cf la/les
base(s) de données WHOIS accessible(s) par la commande UNIX whois) doit
modifier sa zone. IL PEUT Y METTRE N'IMPORTE QUOI (p.ex. microsoft.com).
Ce qui explique que parfois unresolv(resolve(name)) != name, en
particulier dans les cas suivants:

   - l'ISP a oublié la configuration reverse (exemple: très souvent chez
     MCnet, Urbanet en dynamique)

   - resolve `pirate': vous faites en sorte qu'un domaine textuel vous
     appartenant (p.ex. ma-belle-compagnie.com, ou mabellecompagnie.com
     si vous voulez faire pro :() se résolve sur une adresse IP qui
     n'est pas sous votre compétence. Exemple: vulcan.alphanet.ch
     (dans mon domaine) se résoud sur 194.38.85.209 qui est sur Urbanet
     et donc se résoud en sitebco-home-5-17.urbanet.ch. Le whois montrera
     aussi Urbanet d'ailleurs

   - machine qui a plusieurs adresses (p.ex. hosting virtual de type
     HTTP/1.1).  Contre-exemple: www.alphanet.ch est un hosting virtuel de
     type HTTP/1.0 (unresolve est aussi www.alphanet.ch).

   - la configuration unresolve est volontairement fantaisiste pour
     piéger les statistiques ou les big brothers en puissance.

(il y en a peut-être d'autres).

Morale de l'histoire:
   - ne jamais utiliser unresolve comme authentification: utiliser
     l'adresse IP ou vérifier unresolve(resolve(name)) == name;
     la plupart des outils UNIX modernes basés sur authentification
     par adresse le font; de toute façon il ne faudrait plus mettre
     en oeuvre de telles authentifications car il y a d'autres
     attaques, moins triviales (en TCP) que le unresolve, cependant.
     En UDP toute authentification par adresse est très dangereuse
     dans tous les cas.
   - utiliser le unresolve avec parcimonie dans les statistiques,
     et rappeler à ses clients que les statistiques sont forcément
     fausses:
        - caches/proxies (sauf si les pages sont toutes dynamiques et
          que le proxy n'est pas configuré en mode
          cache-tout-de-toute-façon)
        - scripts automatiques et moteurs de recherche
        - cf plus haut



--
http://www-internal.alphanet.ch/linux-leman/ avant de poser
une question.

Répondre à