Jump to content

Site Multihoming by IPv6 Intermediation: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Alaibot (talk | contribs)
m Robot: tagging uncategorised page
ce
 
(33 intermediate revisions by 27 users not shown)
Line 1: Line 1:
The '''Site Multihoming by IPv6 Intermediation''' ('''SHIM6''') protocol is an [[Internet Layer]]<ref>{{clarify|reason=Either avoid this term, or provide more explanation/context. It's confusing to use the term shim in the context of OSI|text=[[shim (computing)|shim]]|date=January 2016}}{{Cite web |title=Site Multihoming by IPv6 Intermediation (shim6) |url=https://datatracker.ietf.org/wg/shim6/about/ |access-date=2022-09-05 |website=IETF Datatracker}}</ref> defined in RFC 5533.
The '''SHIM6''' protocol is a [[Network layer|layer 3]] [[shim]] for providing locator agility below the transport protocols, so that [[multihoming]] can be provided for [[IPv6]] with [[failover]] and [[Load balancing (computing)|load sharing properties]], without assuming that a multihomed site will have a [[Provider Independent Address Space|provider independent IPv6 address]] prefix which is announced in the global IPv6 routing table. The hosts in a site which has multiple provider allocated IPv6 address prefixes, will use the SHIM6 protocol to setup state with peer hosts, so that the state can later be used to failover to a different locator pair, should the original one stop working.


==Architecture==
== About the shim6 architecture ==


The SHIM6 architecture defines failure detection and locator pair exploration functions. The first is used to detect outages through the path defined by the current locator pair for a communication. To achieve this, hints provided by upper protocols such as [[Transmission Control Protocol]] (TCP) are used, or specific SHIM6 packet probes. The second function is used to determine valid locator pairs that could be used when an outage is detected.
The approach used by "Level 3 Shim for IPv6" (SHIM6) is based on the modification of the IPv6 stack element, i.e. the network-layer functionality of the stack, within the [[protocol stack]] of the host. The modification is in the form of an additional functionality block.


The ability to change locators while a communication is being held introduces security problems, so mechanisms based on applying cryptography to the address generation process ([[Cryptographically Generated Addresses]], CGA), or on bounding the addresses to the prefixes assigned to a host through [[hash-based address]]es were defined. These approaches are not needed for IPv4 because of the short address length (32 bits).
Above the SHIM6 protocol element the [[protocol stack]] uses constant endpoint identities, i.e. constant [[IPv6#Addressing|IPv6 addresses]], to refer to both itself and to the remote peer. This identities, known as identifiers, are used by transport protocols such as [[Transmission Control Protocol|TCP]] or [[User Datagram Protocol|UDP]], and [[Application layer |applications]], to identify a communication. The shim layer provides a set of associations between identifiers and the different locator sets that are the [[IPv6#Addressing|IPv6 addresses]] actually conveyed in the [[IPv6#IPv6 packet|IPv6 packets]].


An implementation of shim6 in the Linux kernel is available under the name ''LinShim6''.<ref>[http://inl.info.ucl.ac.be/softwares/linshim6 linshim6 at the Departement of Computing Science and Engineering at Université catholique de Louvain (UCLouvain) in Louvain-la-Neuve]</ref>
As packets are passed from the IP Endpoint sub-layer to the IP Routing sub-layer, the identifiers are mapped to a current pair of locators. The reverse mapping is applied to incoming packets, where the incoming locator pair is stripped off the packet, and the corresponding pair of identifiers is associated with the packet which is then passed to the IP Endpoint sub-layer that lies above the SHIM6 sublayer. The identifiers are the initial addresses used between the two hosts. The locators are the set of [[IPv6#Addressing|IPv6 addresses]] that are associated with the endpoint.


== See also ==
The SHIM6 architecture defines SHIM6 Failure Detection and Locator Pair Exploration functions. The first is used to detect outages through the path defined by the current locator pair for a communication. To achieve this, hints provided by upper protocols such as [[Transmission Control Protocol|TCP]] are used, or specific SHIM6 packet probes. The second function is used to determine valid locator pairs that could be used when an outage is detected.
* [[Locator/Identifier Separation Protocol]]


== References ==
The ability to change locators while a communication is being held introduces security problems, so mechanisms based on applying cryptography to the address generation process ([[Cryptographically Generated Addresses]], CGA), or on bounding the addresses to the prefixes assigned to a host through a hash ([[Hash Based Addresses]], HBA) have been defined. This approaches are not feasible for IPv4 because of the short address length (32 bits).
{{Reflist}}
* C. de Launois and M. Bagnulo. [http://inl.info.ucl.ac.be/publications/paths-towards-ipv6-multihoming The Paths towards IPv6 Multihoming] {{Webarchive|url=https://web.archive.org/web/20090925205315/http://inl.info.ucl.ac.be/publications/paths-towards-ipv6-multihoming |date=2009-09-25 }}. IEEE Communications Surveys and Tutorials, 8(2), 2006


==External links==
The intention of the SHIM6 approach is to minimise the amount of change required to support dynamic locator agility in the protocol stack, and support dynamic locator agility as a negotiated endpoint-to-endpoint capability. An application can initiate a session with a remote host by using an entirely conventional lookup of the host's domain name in the [[Domain name system|DNS]], and open up a session with the remote endpoint using one of its addresses as the destination address. The application can continue to exchange packets with this remote host for the duration of the session by continuing to use this destination address. If the local host subsequently opens up a new session with the same remote host, the same destination address may be used, or if the local host passes a reference to a third party as a referral, the same destination address may be used. In terms of semantics and functionality this represents no change to the use of addresses an endpoint identifiers in the IPv6 architecture.
* [http://tools.ietf.org/wg/shim6/ IETF SHIM6 Working Group status page]


{{IPv6}}
SHIM6 currently has [[Internet Engineering Task Force|IETF]] draft status.

{{Uncategorized|date=October 2007}}
{{DEFAULTSORT:Site Multihoming By Ipv6 Intermediation}}
[[Category:Internet architecture]]
[[Category:Multihoming]]
[[Category:IPv6]]
[[Category:Routing]]

Latest revision as of 05:46, 28 January 2024

The Site Multihoming by IPv6 Intermediation (SHIM6) protocol is an Internet Layer[1] defined in RFC 5533.

Architecture

[edit]

The SHIM6 architecture defines failure detection and locator pair exploration functions. The first is used to detect outages through the path defined by the current locator pair for a communication. To achieve this, hints provided by upper protocols such as Transmission Control Protocol (TCP) are used, or specific SHIM6 packet probes. The second function is used to determine valid locator pairs that could be used when an outage is detected.

The ability to change locators while a communication is being held introduces security problems, so mechanisms based on applying cryptography to the address generation process (Cryptographically Generated Addresses, CGA), or on bounding the addresses to the prefixes assigned to a host through hash-based addresses were defined. These approaches are not needed for IPv4 because of the short address length (32 bits).

An implementation of shim6 in the Linux kernel is available under the name LinShim6.[2]

See also

[edit]

References

[edit]
  1. ^ shim[clarification needed]"Site Multihoming by IPv6 Intermediation (shim6)". IETF Datatracker. Retrieved 2022-09-05.
  2. ^ linshim6 at the Departement of Computing Science and Engineering at Université catholique de Louvain (UCLouvain) in Louvain-la-Neuve
[edit]