Fri, 06/08/2007 - 13:42 by Sébastien Barré • Categories:
Shim6 is a mechanism that allows multihomed hosts to take profit from the multiple paths available across the Internet. It is designed as a new intermediate sublayer inside the IPv6 network layer. Shim6 is still a work in progress. The set of drafts produced by the IETF Shim6 working group is available here.
Since Shim6 gives end-hosts the ability to manage several paths, it is also a natural mean of providing failure detection and recovery, as well as best path selection. While the second is still a research matter, the first has been defined as the REAP companion protocol for shim6.
The LinShim6 implementation first appeared as a result of a Master's thesis work, which described the initial design choices and implications on the Linux Networking stack of the new shim6 layer. It currently support the major parts of the shim6 protocol, as well as the full REAP protocol.
Up to now, the only author is Sébastien Barré but proposals for contributions are very welcome. The development platform for LinShim6 is gforge. You can find there information for subscription to the LinShim6 mailing list, a browsable svn and the latest tarballs and documentation for the project.
Referencing and being referenced
When citing LinShim6 in publications, please use the following reference paper:
Implementation and evaluation of the Shim6 protocol in the Linux kernel, Sébastien Barré, John Ronan and Olivier Bonaventure. To appear in Computer Communications, 2011.
You are also welcome to tell us about your LinShim6-related publications. We can then list them here (see below for a list of already published Shim6 papers).
MipShim6 is a variant of LinShim6 that handles mobility together with multihoming.
It is currently in prototype state, and can be downloaded here .
As for LinShim6, there is a publication you can cite when referencing the MipShim6 implementation:
MipShim6: une approche combinée pour la mobilité et la multi-domiciliation,S. Barré, A. Dhraief, N. Montavont, O. Bonaventure, Actes du 14ème Colloque Francophone sur l'Ingénierie des Protocoles (CFIP 09), pages 113-124, October 2009.
In this section we try to gather an up to date list of publications that made use of our LinShim6 implementation.
- Implementation and evaluation of the Shim6 protocol in the Linux kernel, S. Barré, J. Ronan and O. Bonaventure. Computer Communications, 2011. To appear.
- An empirical evaluation of a Shim6 implementation, J. Ronan, J. McLaughlin, 2nd International ICST Conference on Mobile Networks and Management, September 2010.
- MipShim6: une approche combinée pour la mobilité et la multi-domiciliation,S. Barré, A. Dhraief, N. Montavont, O. Bonaventure, Actes du 14ème Colloque Francophone sur l'Ingénierie des Protocoles (CFIP 09), pages 113-124, October 2009.
- Shim6 Implementation Report : LinShim6, S. Barré, O. Bonaventure,Internet draft, draft-barre-shim6-impl-03.txt, expired. Sep 2009.
- Rehoming Decision Algorithm: Design and Empirical Evaluation, A. Dhraief, N. Montavont, EPS'09 : Symposium on Embedded and Pervasive Systems , Aug 2009.
- Supporting IPv6 host-based multihoming (shim6) in Linux firewalls, C. Paasch, Master Thesis, Jun 2009.
- On the use of SHIM6 for mobility support in IMS networks, J. Ronan, S. Balasubramaniam, A. K. Kiani, W. Yao, 4th International Conference on Testbeds and research infrastructures for the development of network & communities, Innsbruck, Austria, 2008.
- LinShim6 - Implementation of the Shim6 protocol,S. Barré,Tech report, Feb 2008.
- Implementing SHIM6 using the Linux XFRM framework, S. Barré, O. Bonaventure, Routing In Next Generation workshop, Madrid, Spain. Dec 2007
- Improved Path Exploration in shim6-based Multihoming, S. Barré, O. Bonaventure, SIGCOMM 2007 Workshop "IPv6 and the Future of the Internet", Kyoto, Japan, Aug 2007
- Formalization and Verification of the Shim6 Protocol, Matthijs Mekking, Master thesis, May 2007.
- Développement d'extensions au Kernel Linux pour supporter le multihoming IPv6, S. Barré, Master thesis, Jun 2006.
- Download the latest tarball/documentation (Version 0.9.1)
- Get information about the LinShim6 git repository
- Subscribe to the shim6-impl mailing list
- Submit a bug report (you need an account for that)
- Shim6-enabled Ubuntu live CD (kindly provided by John Ronan) [new website from tssg]
- A wireshark patch for shim6 by Matthijs Mekking
- Aug 28th, 09: LinShim6 0.9.1 released.
- Feb 12th, 09: LinShim6 0.9 released. New features:
- Shim6 can be compiled as a module
- Faster TCP failure recovery, thanks to a RTO reset after path change.
- New option in shim6c, to configure the failure detection timer.
- Support for the Keepalive timeout option.
- Sept 29th, 08: LinShim6 svn repository replaced with a git repository. You can get information about it here.
- July 25th, 08, LinShim6 0.8.2 released : Two bug fixes in the kernel patch, that were sometimes responsible for freezing the kernel.
NEW : .deb packages are now provided for easy installation of the kernel part. If you install linux-image, linux-ubuntu-modules, and linux-backports-modules, you will get a fully functional shim6-enabled Ubuntu kernel, that simply appears as a new Shim6 kernel in the grub. We also provide a linux-headers package, which is needed by the Linshim6 daemon. There is not yet a kernel package for the daemon, but it is easy to install :
- tar -zxvf LinShim6-0.8.2.tar.gz
- cd LinShim6-0.8.2
- ./configure CPPFLAGS="-isystem /usr/src/linux-headers-2.6.24-19-shim6-0.8/include/" (you must have installed the linux-headers package first)
- make install
- July 15th, 08 : LinShim6 0.8.1 released : A small bug was present in the just released 0.8. We thus fixed it in this release 0.8.1.
- July 14th, 08 : LinShim6 0.8 released : The major new addition is the support for locator updates. Several bugs have also been fixed.
- May 7th, 08 : LinShim6 0.7 released : The major new addition is the implementation of HBA. You can now easily specify in the config file a set of prefixes you use regularly. HBA will be used by LinShim6 for thoses prefixes instead of CGA, thus lowering the computational cost of the Shim6 negotiation.
- April 28th, 08 : LinShim6 0.6.3 released : It contains mainly bug fixes.
- February 29th, 08 : LinShim6 version 0.6.1 released. It now includes a tool for manual CGA generation, as well as a CGA daemon that listens to Router Advertisements. The CGA stuff is now configured automatically when typing make install, so that it works without complicated procedure.
- February 11th, 08 : LinShim6 version 0.6 released. It can be downloaded here.
- January 1st, 08 : The documentation for the 0.5.x version of LinShim6 is now available and can be downloaded here.
- October 13th : Fixed compilation errors when LOG_EXPL_TIME option was enabled.
Thanks to Martin Kulas and Aaron Kunde for their patch ! New version LinShim6-0.5.1-2
- October 11th : Fixed bug #167 - New version LinShim6-0.5.1-1
- October 10th : The bug tracking system has been enabled on the gforge development platform. You just need to create an account for that (which is fast), than you will be able to submit a bug report.
- October 10th : Junxiu Lu, from Cernet Tsinghua University, China, has joined the development 'team' (whose only member previously was Sébastien Barré). Welcome !
- October 8th : the 0.5 release of LinShim6, for the Linux kernel 126.96.36.199 is available. This is a complete redesign of the architecture, that makes use of the xfrm framework. Rather than bringing new functionalities, this release provides better integration to the Linux kernel, which will allow good interaction with Mobile IPv6 and IPsec in the future. Because it is newer, it is probably more buggy than 0.4.3, but you are still strongly encouraged to test it and report bugs, so as to improve it. Thank you !