+1 on starting by replicating the IPv4 stacking approach in use today.
My 2c worth (as I can't attend the meeting)
If the starting point for Homenet architecture is multiple trees of
stackable devices, I would then define a stackable device to consist of
one or more of:
1) An ISP port
2) An end device port
3) A L2 VLAN port
4) A stack-in port (optional)
5) A stack-out port (optional)
6) A topology configuration function (either manual or automatic)
7) A packet forwarding function
8) A VLAN function
9) A router function
10) A firewall function
11) name resolution function
12) An address delegation server function
13) An address delegation client function
14) an ISP selection function
All of these functions can be implemented in existing code and hardware
with IPv4 (e.g. openwrt). There's nothing really crazy or new here that
people won't be doing already today with IPv4. In fact, the need for
stackable devices has been written about on the IPv6 lists on several
occasions.
Please note that the above are functional descriptions, not hard
allocations. The ports may well be the same Ethernets soft switched
based on the location of the device in the tree, and their individual
functions assigned using the topology configuration function. In the
case of a VM running on an end host, that would implement the stack-in
port function on the interface connected to a homenet router, and deploy
other functions such as VLAN's and routing internally within the VM kernel.
Looking at each item in turn:
1. An ISP port would adapt to the physical media of the uplink
(Ethernet, DSL etc.), would provide any login credentials (PPP etc.)
negotiate link addresses (address delegation client function = DHCPv4
client). It would also have a stateful packet firewall function (on by
default). Existence of a working ISP port implies that this is a "root"
device of the Homenet tree. How do you know if this interface is an ISP
port? Manual configuration, interface type, PD learns a prefix via this
interface.
2. An end device port would be a flat L2 LAN port. I think these are
well understood. Although the endless debate of SLAAC or DHCPv6 or
something else will probably remain just that. Given the massive
deployment of DHCPv4 in home networks, I'm tempted to say DHCPv6 should
be preferred, without any intention of restarting a war.
3. An L2 VLAN port would be any standard switch port, either internal or
external.
4. The stack-in port connects to upstream Homenet devices.
The stack-in port in IPv4 does not have to be any different from an ISP
port in an IPv4 implementation. It acts as a DHCPv4 client and can spoof
the remote end into thinking it's simply an end host by applying
outbound NATv4 (also for address conservation). Obviously I think we'd
prefer to avoid NAT66 by default. Equally there's no fundamental reason
why the stack-in function should have the firewall function enabled by
default. So in an IPv6 implementation it would have the firewall
disabled by default, and would receive delegated prefixes (see prefix
delegation below)
5. The stack out port connects to downstream Homenet devices.
The stack-out port in IPv4 does not have to be any different from an end
device port in an IPv4 implementation. It acts as a DHCPv4 server to any
attached devices. In IPv6 it would have to be able to cascade Prefix
Delegation obtained from the root CPE router. (see prefix delegation below)
6. The topology configuration function would be new for IPv6. Although
it exists implicitly in IPv4 Homenet's, the fact that stack-out ports
are largely functionally identical to end device ports and stack-in
ports are largely identical to ISP ports makes it largely redundant:
thus the firewall function, DHCPv4 client and server, and NATv4 are
almost always enabled by default in IPv4 implementations. This would not
work for IPv6. I think the topology configuration function should be
automatic given the plug and play requirement for configuration by
non-expert end users.
7. Packet forwarding is a basic kernel function of the device. It may
either route or switch, depending on the port type.
8. A VLAN function would be allowed to speak any standard VLAN protocol,
and can either be internal to the box as a virtual interface or a
physical interface for inter-switch connection.
9. The router function can speak standard IGP on any interface (as
already being discussed). Default would be disabled on the ISP port.
10. I think the firewall function is well understood for both IPv4 and
IPv6, even though it is not fully standardized within the IETF. I don't
think Homenet needs to specify too much here expect that the firewall
should be stateful.
11. Name Resolution
Here's where I start to run into problems.
In IPv4 implementations with NATv4, you've always got the option of
split DNS.
There are a number of local name resolution specs which AFAIK assume
flat LANs and are not generally routeable.
I'm not sure that there's a simple solution for Homenet to handle the
combination of local names and potentially multiple ISPs. I could well
be wrong.
12+13. Prefix Delegation Client and Server:
Whilst there's no requirement for address conservation yet in an IPv6
implementation, there's a real danger of getting stuck because AFAIK
Prefix Delegation is only defined between an ISP router and _the_
(singular) customer premises router. Also if an ISP only provides a
single /64 to the root CPE router via PD, there are no standards for how
or whether to subdivide this prefix further. Does Homenet then simply
fail? Or should it implement true CIDR to provide >/64 prefixes to
sub-devices in the tree?
14. ISP Selection function
The ISP selection function in IPv4 implementations can be a straight
outbound ping to a remote device to check basic reachability, plus
application of NATv4 to ensure that the return route is correct. Note
that for Homenet I would bundle NATv4 in with the ISP selection
function, not necessarily the ISP interface. There are many such basic
load balancing implementations on the market already. Despite all of the
various multi-homing initiatives, I have yet to see how an IPv6 ISP
selection function would work.
So the main 3 challenges IMHO are:
1) A protocol suitable for topology detection and configuration.
2) A protocol suitable for cascaded prefix delegation within the Homenet.
Unless all Homenet devices implement a routing protocol that can
distribute the address of a DHCPv6 server so a DHCPv6 client can be made
to contact a DHCPv6 server in the root CPE device, which distributes
prefixes it has learned via PD from the ISP.
3) Any protocol that allows ISP selection and correct reverse routing to
the end device (without resorting to NAT66, or dynamic routing to end
devices, or DHCPv6 distributed address selection) Homenet is unlikely to
solve this in detail, but it should/could be used as a signal to other
WG's of the importance of multi-homing. A basic choice of whether ISP
selection and multihoming is a homenet router function, or an end device
function would already be a useful pointer IMHO.
I'm sure there's smarter people than me on the list that can fill these
gaps, or exclude these requirements in V1.
best regards,
RayH
Subject:
Re: [homenet] draft-chown-homenet-arch-00.txt
From:
Erik Nordmark <[email protected]>
Date:
Mon, 03 Oct 2011 21:35:54 -0700
To:
Tim Chown <[email protected]>
CC:
[email protected]
Content-Transfer-Encoding:
7bit
Precedence:
list
MIME-Version:
1.0
References:
<[email protected]>
<[email protected]>
<EMEW3|507144591d242f9fb36239f554f547a1n8KDRS03tjc|ecs.soton.ac.uk|[email protected]>
In-Reply-To:
<EMEW3|507144591d242f9fb36239f554f547a1n8KDRS03tjc|ecs.soton.ac.uk|[email protected]>
Message-ID:
<[email protected]>
Content-Type:
text/plain; charset=ISO-8859-1; format=flowed
Message:
7
On 9/21/11 5:27 AM, Tim Chown wrote:
Hi,
I have been working with Jari, Jason and Ole to produce a new version
of the homenet architecture draft. Mark, who produced the first
version with Jari, is now of course WG chair and has stepped down as
editor of the text.
One thing I've been looking for is a way to avoid boiling the ocean; I
think being able to assign stable IP address prefixes in an arbitrary
topology is a hard problem, yet I think there simple home topologies
that show up today with IPv4 NATs that we should be able to handle
with relative ease.
Today's IPv4 consumer home routers have a designated uplink port
(labeled "Internet", "WAN", or something similar) and the behavior is
different on that port (where it runs a DHCPv4 client) and the other
ports (where it runs a DHCPv4 server). If we start with a simple
solution to target such devices for IPv6 home networks (without IPv6
NATs), then we can come up with hierarchical prefix delegation and
default routes towards the delegating routers; no need to ensure that
a single stable prefix is assigned to each link in an arbitrary
topology of routers.
Then we can work on that harder problem as an extension of the simple
approach for the simple topologies.
Erik
_______________________________________________
homenet mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/homenet