Sorry a couple of important typos on RFC numbers: email escaped too early.
Disregard previous message, and use this one.

Ray Hunter wrote:
It's definitely going to become an operational FAQ, unless it is very clear whether/how a network operator can force equivalent use of DHCPv4 static address assignment for both source and destination addresses via DHCPv6 (possibly by turning off SLAAC for assignment of GUA on an interface via a flag, or via RFC3484 bis), and how to achieve this effect for all nodes on a link, without resorting to local configuration. So I may as well be the first to ask.

In the absence of other answers, here's my analysis and "how to achieve current semi backward-compatible DHCPv4 like behavior in DHCPv6".

Conclusion: it does not see to be very straightforward IMVVHO.
[note: not in any way a flame, just an attempt at documenting a real-live use-case v. current implementations of current standards The use case is based on current implementations of IETF standards in Windows 7 and Windows 2008. This is not a criticism of those OS'es. It's just a common combination already in production that people like me can easily relate to.]


Problem statement: a network manager wants to be able to create firewall rules to control access at a granularity level of an individual Windows 7 PC communicating via IPv6 with an individual Windows Server 2008. The motivation is SoX / ISO27001 compliance. The manager does not want the firewall rules to have to change every day, and the rules should also be independent of the NIC related MAC/EUI-64 address so that they do not change upon NIC hardware replacement.


Suggested analysis & solution according to TODAY's documents:

Assumptions of today's default behavior (implementation dependent):
Both Windows 2008 & Windows 7 have IPv6 enabled by default and IPv6 is preferred over IPv4 (source: Understanding IPv6 2) Windows Server 2008 auto registers SLAAC IPv6 GUA in DNS, but not temporary addresses. (source: Understanding IPv6 2) DHCPv6 IPAM system will also register DHCPv6 assigned IPv6 GUA in DNS (source: an commercial implementation) Windows 7 uses temporary addresses for outbound sessions by default. (source: Understanding IPv6 2) Firewall only supports static filtering rules configured by the CLI. (source: all common implementations) DHCPv6 will be available in every implementation (via recent upgrade to SHOULD in draft-ietf-6man-node-req-bis-10)


If a DNS server received auto-registration for both SLAAC GUA and DHCPv6 GUA derived addresses in DNS, the manager does not want the Windows 7 machine to connect to the SLAAC generated GUA e.g. 2001:4f0:df8c:2:021c:c0ff:fee2:84e4 instead of the DHCPv6 obtained GUA e.g. 2001:47f0:df8c:2::2 because only the DHCPv6 GUA 2001:47f0:df8c:2::2 will have a firewall rule entry.

Equally it is more than likely that there will be no firewall rule to allow RFC 3041 temporary addresses from the Windows 7 PC source address, so any session attempts to connect from a source using a temporary address will also fail.


After doing my own research, I think the answer today to achieve desired semi-backwards compatible DHCPv4 like behavior is:

RFC3484 prefix policy table is required to determine source and destination address preference if there are both DHCPv6 GUA & SLAAC GUA configured on the same node at the same precedence in the prefix policy table.

RFC3484 & RFC3484 bis currently have no mechanism to achieve preference of DHCPv6 GUA over a SLAAC GUA on the same prefix, so the manager currently needs to stop both nodes obtaining a SLAAC derived GUA in the first place, otherwise behavior is unpredictable [no tie break in RFC3484 or RFC3484 bis].

Any RFC 3041 temporary addresses that are used by a client or server on outbound sessions (Windows default) would also probably get blocked by a host to server firewall rule. So the manager needs to turn off the feature of using temporary addresses by default on every server and every host system [no IETF mechanism to do this, so this is local configuration via Active Directory or via a netsh command: netsh interface ipv6 set global randomizeidentifiers=disabled].


Now the router:
DHCPv6 relay =ENABLED, and manually configured pointed at a central DHCPv6 server

RA = ENABLED because it is needed for the default route on both Windows machines
source http://tools.ietf.org/html/draft-ietf-6man-node-req-bis-10
> Nodes using the Dynamic Host Configuration Protocol for IPv6 (DHCPv6) are expected to determine their default router information and on-link prefix information from received Router Advertisements.

RA has to include all the DHCPv6 valid prefixes as RA options for on link / off link determination
source RFC 4861
> A router SHOULD include all its on-link prefixes (except the link-local prefix) so that multihomed hosts have complete prefix information about on-link destinations for the links to which they attach.

RA has to be configured to set the A flag = OFF for ALL prefixes on this router interface (autonomous address-configuration flag)
source RFC4862
> If the Autonomous flag is not set, silently ignore the Prefix Information option.

M (managed) flag = ON -> indicate presence of DHCPv6 and desire to use it
source RFC4861
> When set, it indicates that addresses are available via Dynamic Host Configuration Protocol [DHCPv6].

O (Other) flag = X -> irrelevant
source RFC4861
> If the M flag is set, the O flag is redundant and can be ignored because DHCPv6 will return all available configuration information.


You may ask "how is this different from IPv4 today at an operational/ implementation level?"

IMVHO [this is not a flame! just an attempt at a neutral analysis from an existing enterprise network based implementation]
We have no temporary IPv4 addresses to override by default
We have no SLAAC equivalent in IPv4 to turn off
By default nodes generally use DHCPv4 + broadcast on link connection (hard coded default in almost every OS but which can be overridden)
Default router is generally learned via DHCPv4 in an existing tool
We generally only have one IPv4 address that is auto-registered in DNS per adapter We have no address selection issues (there's only 1 source and 1 destination address) DHCPv4 server or DHCPv4 relay is built into almost every implementation even though it was hardly formally standardized

regards,
RayH
--------------------------------------------------------------------
IETF IPv6 working group mailing list
ipv6@ietf.org
Administrative Requests: https://www.ietf.org/mailman/listinfo/ipv6
--------------------------------------------------------------------

Reply via email to