Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

IPSEC backend #516

Closed
wants to merge 5 commits into from
Closed

Conversation

eyakubovich
Copy link
Contributor

Updated version of #290

This is still a WIP on the packaging front. charon daemon depends on libatomic wich is missing from the base image.

MohdAhmad and others added 5 commits September 22, 2016 17:46
IPSEC Mode: Tunnel
This means that the entire IP packet is encrypted. We encapsulate using
the host IP addresses therefore we can have a separate IPSEC backend
instead of integrating it with existing backends. Running in tunnel mode
has the added advantage of not leaking the container IPs.

Authentication Mechanism: Pre-shared key (PSK)
For authentication, we use a PSK, generated by flannel and distributed
through etcd which in turn uses client-side certificates for
authentication.

Internet key exchange (IKE): Charon
We use charon daemon from the strongSwan project to negotiate Security
Associations (SAs) between the endpoints. SAs define the security
attributes, used to enable secure communication between endpoints [1].
IKE has two phases, the first establishes a secure channel using the
Diffie-Hellman key exchange and the second phase uses this secure
channel to negotiate the security attributes like, for example the keys
used to encrypt traffic. We use, 4096 bit Diffie-Hellman, AES-256-CBC
for encryption and SHA-256 for integrity. Note IKEv1 is used and phase 1
is run in Main mode.

Configuration
The only configuration parameter required is whether UDP Encapsulation
should be enabled.
@tomdee
Copy link
Contributor

tomdee commented Nov 9, 2016

@eyakubovich Congratulations on the new job! Are you looking for someone to take over this PR now?

@eyakubovich
Copy link
Contributor Author

@tomdee Thanks! I was temporarily helping out CoreOS and took some time to update the PR. However I am no longer working on this. On a personal level, I would love it if this PR finally got merged, @MohdAhmad worked very hard on it and I think it would be a good addition to flannel. Lots of people have asked for this feature.

LocalAddrs: []string{localLease.Attrs.PublicIP.String()},
RemoteAddrs: []string{remoteLease.Attrs.PublicIP.String()},
Proposals: []string{"aes256-sha256-modp4096"},
Version: "1",

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there an advantage to using IKEv1 here? IKEv2 seems to be simpler and more reliable.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like this was taken directly from library docs.
https://github.com/bronze1man/goStrongswanVici
What is wrong with v1 is it just works?
I'm still running some ikev1 without any problems.

@aquavitae
Copy link

Any progress on this?

@mkutsevol
Copy link
Contributor

I've made a follow-up PR #637

@tomdee
Copy link
Contributor

tomdee commented Mar 13, 2017

Closing in favour of #637

@tomdee tomdee closed this Mar 13, 2017
@rektide rektide mentioned this pull request Dec 1, 2019
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants