[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: IPv6 broadband provisioning



Iljitsch,

I would strongly suggest alignment with the two existing DSL Forum TR-101 models ( the N:1 and 1:1 VLAN approach) and CableLabs DOCSIS. Let's reuse the same logical architectures so we don't have providers changing their aggregation network logical constructs to support IPv6. In the 1:1 VLAN model, each subscriber is uniquely identified by S/C- VLAN tags to the BNG. It is the N:1 VLAN model that needs an method to insert some "access node specific" information into the DHCPv6 exchange.

I'm not sure we need to use global-unicast addresses on the WAN CPE interface so I'd hazard to say that RA with PIO is not needed. Just do stateless autoconfig for link-local, then move to DHCPv6 for prefix delegation (ie, M-bit=0, O-bit=1 in the RA). This may cause interesting CPE implementation-specific issues when sourcing ICMPv6 packets out the WAN interface, but the flexibility is there to use the "best" address for the SRC IP. From a customer's perspective, is a global-unicast WAN address useful? From an ISP and vendor perspective it may add additional complexities. What do you think about such an approach? This would remove the need to add anything to RA between the ISP router and the CPE.

If we assume the reasons we established a L2 DHCPv6 relay agent are still valid in an IPv6-world, I'd suggest DHCPv6 Layer 2 Relay agents for the requirement you describe. What you have described is the very reason that the DSL Forum implemented L2 DHCP(v4) Relay Agents in TR-101. I'd propose extending something similar to DHCPv6 that would: - Allow a access node (such as a DSLAM) to intercept DHCPv6 messages, and - Insert DHCPv6 Interface-ID and Remote-ID to uniquely identify the IPv6 subscriber
- Encapsulate these messages into a DHCPv6 Relay-Forward structure
- Forward towards the all_dhcp_relay_agents_and_servers address - with a Source IPv6 address of the requesting client inserted into the Relay- Forward

This last part removes the need for the DSLAM to implement a complete IPv6 stack that would require configuration and participation in ND, etc. I would like to explore this part with others as part of discussions within the DHC WG on this issue.

In the n:1 IPoE world we need to consider the layer 2 Ethernet network as much as IPv6, so some mechanisms you describe for DoS prevention need to be extended to MAC addresses. To this extent we would usually admit a single learnt MAC per DSL line (does this also imply a single link-local?? I guess EUI-64 may not be MAC derived?)

The nasty subject of ND and DAD comes up in the N:1 VLAN approach because a "split-horizon" forwarding model is in place. RFC 2460 defines a "link" as a medium over which nodes can communicate at a link-layer. The problem with the N:1 VLAN model is that nodes cannot communicate with one-another via the link-layer, only with the L3 router (BNG). This fundamental problem manifests itself during DAD - consider this: - When a node sends a DAD (for link-local addressing) it uses an unspecified source and the destination is set to the solicited-node MC address of the target - Because the network is running split-horizon, only the ISP router(s) will receive these DADs. - The routers cannot relay these messages back into the N:1 VLAN, because the node sending the DAD (still with a tentative address) will immediately stop address auto-configuration if it receives a DAD with the target-address equal to its tentative address. - If the router sends a Neighbour Solicitation message and does happen to receive a response what should it do? Should it send a Neighbour Advertisement (which would cause the node with a tentative address state to stop?)


Regards,

-David


On 28/12/2007, at 11:58 PM, Iljitsch van Beijnum wrote:

Hi,

(I posted largely the same message to the internet area list yesterday because we had extensive discussions there about DSL Forum stuff.)

One of the things that we haven't quite figured out about IPv6 is how broadband deployment would work. I think it would be good if we can agree that customer routers can request an IPv6 prefix using DHCPv6 prefix delegation. Since there is really no other way to do this, I don't expect that to be too controversial.

The problem is how ISPs get to enforce restrictions on how packets flow from devices connected to the DSL or cable modem (or link, a user could buy their own modem which isn't controlled by the ISP). If there is a dedicated physical or virtual interface per customer, this is all simple enough. But I understand this isn't necessarily the case, and moving in that direction could be costly. So here's another approach. Please let me know what you think.

The first device under the control of the ISP, or at least a device very low in the aggregation hierarchy, to intercepts router advertisements from the ISP's IPv6 router and slightly modifies them: it basically injects some bits that are particular to the customer/line, so that every customer sees RAs with a prefix unique to them.

For instance, if an IPv6 router sits on top of two layers of layer 2 aggregation devices, the IPv6 router sends out router advertisements with prefix 2001:db8:31::/64. The lowest layer of aggregation devices then insert a 16-bit customer or line ID in bits 48 - 63 so that customer 9 sees 2001:db8:31:9::/64 and customer 10 2001:db8:31:a::/64 and so on. (The router advertisements can also be generated by the layer 2 device itself, but there probably needs to be some centrally configured info in there, too.)

Customers without an IPv6 router do normal IPv6 stateless autoconfig so the lower 64 bits of the addresses are random, but the ISP only sees packets with the customer ID number somewhere in the higher bits so they know which packets come from which customer. The layer 2 infrastructure can safely impose the restriction that all customer traffic goes to the IPv6 router and not to other customers, because customers don't know their neighbor's prefix is on-link so they'll send those packets to the router anyway. And the router doesn't need an address in all those prefixes, the users only need to know its link local address. (Of course add ingress filtering as required.) The router is simply told that all of 2001:db8:31::/48 is on-link so it will do ND for all customer machines, but it doesn't send redirects.

(I would probably implement a per-customer ND cache LRU algorithm to prevent one user from DoSing a whole town by generating large amounts of addresses that the router must do neighbor discovery for. There is no reason why a user wouldn't be able to connect a large number of machines using a switch but this may not be altogether desirable from the ISP's perspective.)