Introduction
OpenIKEv2 is an open source IKEv2 (draft #17 version) implementation written in C++. It is based in three core components:
- libopenikev2: Library providing the core IKEv2 funcionability. It controls state machine, message parsing, message construction, SA management and all the IKEv2 processing. See the features section for more information.
- libopenikev2_impl: Library providing some concrete implementations of the libopenikev2 interfaces. See the features section for more information.
- openikev2: Application using libopenikev2 and libopenikev2_impl libraries. It has a similar behaviour than others IKEv2 daemons, like racoon2 or ikev2.
Why another IKEv2 daemon?
When OpenIKEv2 development started, there wasn't any opensource IKEv2 implementation. As the result of our master tesis, this implementation was designed and its development was started.
Now there are, at least, three more opensource implementations: racoon2, ikev2, and strongSwan. We perfom interoperability test with both, in order to allow that all opensource implementations can collaborate in the future. You can see a comparative table and an interoperability table here.
In addition, the libopenikev2 API allows use IKEv2 protocol inside other applications without running any stand-alone daemon. This allows a more elegant way to use IKEv2 protocol in several advanced scenarios that precise IKEv2 protocol.
Who are we?
We are members of the ANTS research group of the University of Murcia in Spain (UMU). We are:
- Alejandro Pérez Méndez (main developer)
- Pedro Javier Fernández Ruiz (main developer)
- Gregorio Martínez Pérez(project manager)
- Rafael Marín López (project manager)
- Antonio F. Gómez Skarmeta (project & group manager)