Hi Yoav,
I like your attempt at reducing the requirement set to the minimum.
Parts of the text I think do not distinguish well between IPsec hosts
(such as remote access clients) and (simple) hosts, that are non-IPsec
hosts protected behind a gateway. Presumably simple hosts will be
unaffected by this protocol.
And in the spirit of minimizing the set of requirements: isn't your #3
solution components just an optimization? I think in many cases a
protocol that includes #1 and #2 but not #3 could be sufficient for
scale. And then #3 could be added as an extension. Or we can decide that
we do not need a fully general #3, and we're good enough with simple
shortcuts between two spokes of the same hub.
Thanks,
Yaron
On 03/16/2014 08:25 AM, Yoav Nir wrote:
As promised, here's my view of what a short list of requirements for AD-VPN
should be like.
First, a few terms:
An AD-VPN is a subset of the hosts on the Internet, such that all traffic between two
nodes within the AD-VPN must be protected by IPsec when it traverses nodes outside of the
AD-VPN. An IPsec gateway is a node within the AD-VPN that protects the traffic for
passage across nodes outside of the AD-VPN. An IPsec host is a node that protects only
its own traffic (common for remote access VPNs). The set of hosts whose traffic is
protected by an IPsec gateway is called its "protected domain". The AD-VPN can
be said to be partitioned into protected domains.
All this can be accomplished with IPsec and IKEv2 as defined in RFCs 4301,
4303, and 5996. What's missing is dynamic updates to SPD and PAD, and a way to
deal with the complexity of the configuration of large scale VPNs.
So any IPsec gateway or host joining an AD-VPN has to know several things:
- the total AD-VPN. Specifically, whether an IP address (could the the
destination of an outgoing packet or the source of an incoming packet) is or is
not in the AD-VPN. Packets that are destined to outside the AD-VPN can be sent
in the clear over the Internet.
- For each host in the AD-VPN, a next-hop gateway.
- Credentials for connecting to such a next-hop gateway.
- If more protected domains, gateways or hosts are added to the AD-VPN, we
want the node to learn of this. This doesn't have to happen immediately, but we
would like to be able to set an upper bound on how long it takes.
For a simple configuration, there can be one such next-hop gateway for all
addresses (that's a hub). Using a single hub for all the VPN is not efficient,
so even if we accept this as an initial configuration, we need this to expand.
Another requirement of this protocol is to limit the impact of rogue or
compromised nodes. Specifically, such nodes should not be able to alter the
AD-VPN by dynamically removing parts of the protected domains of other
gateways, and checks and limits should be imposed on their ability to claim
parts of the Internet as part of their own protected domains. This requirement
may have a negative impact on usability, for example if additions to the AD-VPN
would require matching configuration on both the protecting gateway and on some
other node (could be a part of the AD-VPN, like a hub node, or an external
server, or maybe an RPKI CA), but we believe it is essential for security in
the face of the possibility of compromised nodes.
So to get all this, we need the following from the solution protocol (and it
could be one protocol, or a whole suite of protocols at different levels:
1. A protocol for discovery of the AD-VPN, and at least one next-hop gateway
with the credentials to access it. The latter part may be assumed to be
manually configured, but the discovery has to be automatic, as the total AD-VPN
is assumed to change. Note that the other side of this protocol is not required
to be part of the AD-VPN. A server giving out this information over HTTPS is an
acceptable solution, as is encoding this information in the DNS.
2. A protocol for propagating changes to the AD-VPN throughout the network.
This does not have to be a single protocol. For example, We could have hub
spokes that communicate this information through routing protocols, and spoke
nodes that get the information from the hub nodes. Or trusted nodes that update
an HTTPS server, while the other nodes periodically download said information.
The requirement is that eventually, and after a bounded time period, all nodes
will know of the change.
3. A protocol for discovery of more efficient paths through the AD-VPN.
Specifically, such a protocol would allow an IPsec gateway (or an IPsec host)
to create a new tunnel such that the traffic would require fewer hops on its
way to the destination host. This protocol would also need to handle providing
credentials to the nodes. It's not enough to tell a gateway to set up a tunnel
with another gateway at address 192.0.2.5, You also need to tell what
credential that gateway is going to present (by DN or alternate name, and maybe
by public key as in DANE) and also what IDi/IDr are going to be used in IKE.
These are the requirements as I see them. The opinions posted here are my own,
they do not reflect those of my employer, and do not necessarily reflect those
of my co-authors on the AD-VPN draft.
Yoav
_______________________________________________
IPsec mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/ipsec
_______________________________________________
IPsec mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/ipsec