# Locator/Identifier Separation Protocol

Le Locator/Identifier Separation Protocol (LISP) désigne un changement de l'architecture Internet qui permet de séparer deux rôles distincts joués par des adresses IP : celui de localisateur (où se trouve une machine sur le réseau) et celui d'identificateur (chaque appareil connecté a une adresse IP différente). Il est décrit par la RFC 6830 et a été originellement proposé par Cisco en 2009.

## Problème

Une adresse IP sert deux buts distincts :
* comme identificateur d'une machine dans un réseau,
* comme localisateur utilisé par le routage, pour acheminer le trafic dans un réseau IP.
Si à l'origine ces deux buts étaient similaires, aujourd'hui deux adresses IP proches sont potentiellement éloignées pour le réseau, ce qui rend le routage plus complexe.

### Exemple

Une personne A est située à l'est. Si cette personne change d'emplacement pour celui de B, à l'ouest, elle a encore l'identité A, mais son emplacement devient B.
Par exemple A possède l'adresse IP x.y.z.1 lorsqu'il réside à l'est. Après avoir déménagé, sa nouvelle adresse IP (attribuée typiquement par DHCP), pourra être w.z.y.9 : cette IP reflète le changement d'emplacement, mais également d'identité pour A.

### Historique

C'est en octobre 2006 que l'Internet Architecture Board exprime son intérêt pour une architecture supportant la montée en charge du routage et de l'adressage, dans un contexte d'épuisement des adresses IPv4. Plusieurs propositions ont émergé, chacune proposant une séparation entre localisation et identification sur le réseau. Le nom « Loc/ID split » est pour cela parfois utilisé.

### Propositions

Plusieurs propositions ont vu le jour pour séparer ces deux fonctions :
* Mécanismes basés sur le réseau :
** GSE/8+8
** Locator/Identifier Separation Protocol (LISP)
* Mécanismes basés sur les hôtes :
** SHIM6
** Host Identity Protocol
Dans l'approche LISP, les routeurs sont responsables de l'association entre les End-point-identifiers (EID) et les route-locators (RLOC), ce processus étant transparent pour les hôtes.

## Fonctionnement

Quand un hôte d'un domaine LISP veut contacter un serveur d'un domaine LISP, le trafic est intercepté par un routeur ingress (iTR) qui détermine le RLOC associé au EID de la destination en consultant le service d'annuaire EID-RLOC. Le trafic sera ensuite encapsulé à destination du RLOC de destination qui fait office d'egress router (eTR).
L'accès au domaine LISP par un hôte d'un domaine non LISP utilise un proxy qui se charge d'interroger le système d'annuaire et d'encapsuler le trafic.
Le cœur du réseau n'a donc pas besoin de connaître l'espace d'adressage EID.

### Terminologie

* Routing Locator (RLOC) : Un RLOC est la sortie d'un egress tunnel router (ETR), aussi bien en IPv4 ou IPv6
* Endpoint ID (EID) : Un EID est une adresse IP (IPv4 ou bien IPv6) utilisée comme source et destination des champs address du premier header LISP d'un paquet.
* Egress Tunnel Router (ETR) : Un ETR est le point de sortie du tunnel : il accepte un paquet IP où l'adresse IP de destination est une des IP d'un RLOC.
* Ingress Tunnel Router (ITR) : Un ITR est le point d'entrée du tunnel : il reçoit les paquets des équipements terminaux du site, et renvoie des paquets encapsulés avec LISP, vers un ETR de l'autre côté.
* Proxy ETR (PETR) : Un PETR est utilisé pour l'interconnexion entre les sites LISP et non LISP. Un PETR se comporte comme un ETR, mais le fait pour les sites LISP qui envoient des paquets vers des sites non-LISP.
* Proxy ITR (PITR): Un PITR est utilisé pour l'interconnexion entre les sites LISP et non-LISP. Un PITR se comporte comme un ITR, et agit sur les paquets envoyés par les sites non-LISP vers les sites LISP.
* xTR : Un xTR joue à la fois les rôles d'ITR et d'ETR.
* Re-encapsulating Tunnel Router (RTR): Un RTR est utilisé pour les communications de site LISP à site LISP, lorsque la communication directe n'est pas supportée. Par exemple un site uniquement en IPv4 avec un site uniquement en IPv6.

## Utilisation

Le bénéfice escompté est de trouver une solution de multi-homing qui ne fasse pas appel à des adresses de type Provider Independent comme actuellement, ce qui empêche l'agrégation et nuit au bon fonctionnement du routage sur Internet. Le recours à un NAT serait également dissuadé.
Ce protocole permet aussi la communication entre IPv6 et IPv4 et permet la mobilité.
Un groupe de travail a été créé au sein de l'IETF en vue de développer LISP.
L'utilisation de Lisp pourrait aider à la virtualisation du réseau.