Evolution of the Internet architecture : OpenLISP and shim6 host-based IPv6 multihoming implementations
Wed, 07/16/2008 - 00:57 by Olivier Bonaventure • Categories:
The IP Networking Lab actively contributes to the experimental evaluation of mechanisms and protocols for the future Internet architecture by releasing the first publicly available implementations of the Locator Identifier Separation Protocol (LISP) and the shim6 host-based IPv6 multihoming.
The Internet architecture was designed in the 1970s as a small internetwork to serve the needs of researchers. For the last 30 years, the Internet continued to grow and we are now getting close to hitting the limits of the 32 bits IPv4 addressing space. During the last decade, the Internet Engineering Task Force has been designing IPv6 as a replacement for IPv4. Most of the initial benefits of IPv6 (security, QoS, autoconfiguration, ...) have been ported to IPv4 and IPv6 deployment has been limited.
However, thanks to the huge IPv6 addressing space, it is possible to design protocols and mechanisms that are more scalable and more powerful than with IPv4. A typical example is the multihoming problem. This problem occurs when a site is attached to several Internet Service providers. With IPv4, the classical solution is for the site to obtain one IPv4 prefix and advertise it by using BGP. This solution works and traffic engineering is possible, but unfortunately, it contributes to a significant growth of the BGP routing tables in the global Internet. With IPv6, many different solutions have been discussed within the IETF. Eventually, the IETF decided to focus on a host-based technique. Basically, when a site is attached to n providers, each of its hosts will receive n different IPv6 addresses. This reduces the size of the BGP routing tables by avoiding to advertise the IPv6 prefixes used by the stub domains and provide many additional benefits in terms of path diversity or performance. However, this requires the implementation of new protocols and mechanisms to coordinate the utilization of the different IPv6 addresses by each host, avoid security problems and efficiently detect failures.
Now that the shim6 standardization is being finalized by the IETF, it is time to validate this approach experimentally in the IPv6 Internet. Sebastien Barré has developed the first publicly available implementation of the shim6 IPv6 host-based multihoming on the Linux kernel:
Other approaches to better scale the Internet architecture are being discussed, notably within the Routing Research Group of the Internet Research Task Force. Several of these approaches rely on separating the two roles of IP addresses: the locator role and the identifier role. In today's IPv4 Internet, IPv4 addresses are used both to indicate the location in the Internet topology of a host (the locator role) and to terminate the transport flows on end-hosts (the identifier role). This means that it is difficult to change the IP address of a host without disrupting transport flows.
The techniques that separate identifiers from locators take a different approach. First, an identifier is attached to each end-host. This identifier is used to terminate the transport flows. Second, each identifier may be reachable through multiple locators and a mapping mechanism is used to map an identifier (or a set of identifiers) onto a set of locators. This improves the scalability of the routing system as only the locators need to be distributed by BGP provided, of course, that the mapping system remains scalable. Furthermore, separating identifiers and locators has several additional benefits in terms of path diversity and performance. Some approaches propose to attach locators to hosts while other prefer to attach locators only to routers. The latter approach is the solution chosen by the proponents of the Locator/Identifier Separation Protocol (LISP). LISP is a router-based solution to solve the scaling problems of the Internet architecture that is currently being developed by Cisco.
There are still many open questions concerning notably the mapping between identifiers and locators. To allow researchers to experiment with LISP, the IP Networking Lab releases OpenLISP. OpenLISP is the first publicly available implementation of LISP on the FreeBSD kernel. OpenLISP was designed and implemented by Luigi Iannone: