Hi, Ben, Thanks so much for your feedback! Please find my comments in-line... On 12/01/2014 08:58 PM, Ben Campbell wrote: > Document: draft-ietf-opsec-dhcpv6-shield-04 Reviewer: Ben Campbell > Review Date: 2014-12-01 IETF LC End Date: 2014-12-01 > > Summary: This draft is almost ready for publication.I have some > questions and comments that might should be considered prior to > publication. (I am leaving off my usual "ready for publication as an > XXX" part, because I have questions on that, below.) > > Major issues: > > (Note: This is not so much a "major issue" as a meta-concern that > doesn't fit well in the major/minor/nit structure.) > > I have questions about the intended status. The draft lists BCP. It's > not clear to me if we intend to say that it's a "best practice" to > implement DHCPv6 filtering, or that, if you do implement it, it's a > best practice to do it like this. Given the strength of a BCP, I > think it's worth clarifying that. BCP of implementing it, if you do. How about adding this text to the intro: "This document specifies a Best Current Practice for the implementation of DHCPv6 Shield (DHCPv6)" ? > Minor issues: > > -- abstract, last sentence: > > I didn't find this assertion in the body itself. It would be nice to > see support for it (perhaps with citations). I guess one could provide references to some vendor's manuals? Is that what you have in mind? (although I'd prefer not to do so). > -- section 4: > > Am I correct in understanding that this is opt in only? You would > disallow a rule of the form of "allow on any port except [list]"? Not sure what you mean. The idea is that if you want to enable dhcpv6 shield, you need to specify on which port(s) the dhcpv6 server(s) is/are connected. > Nits/editorial comments: > > -- section 1, 2nd paragraph: > > This is the first mention of "DHCP-Shield" I found, not counting the > doc name and headers. It would be helpful to have an early mention > that "DHCP-Shield" is the name of the thing that this draft defines. > > -- section 1, 3rd paragraph: > > It would be helpful to define what a "DHCP-Shield device" is, prior > to talking about deploying and configuring them. How about adding (in Section 1) the following text: This document specifies DHCPv6 Shield: a set of filtering rules meant to mitigate attacks that employ DHCPv6-server packets. Throughout this document we refer to a device implementing the DHCPv6 Shield filtering rules as the "DHCPv6 Shield device" ? > -- section 3, paragraph ending with with "... used as follows > [RFC7112]:" > > I'm a bit confused by the citation. Are these defined "as follows", > or in 7112? > > -- section 3, "Extension Header" > > -- these are IPv6 extension headers, right? Yes. Should we explicitly say so? > -- section 3, "IPv6 Header chain" > > Is there a relevant citation for this? Other than RFC7112? > Also, while this section talks about some aspects of header chains, > it never actually defines the term. Which one? > -- section 3, "Upper-Layer Header" > > Again, this section talks about the term without defining it. > > -- section 5, list entry "1": "... the IPv6 entire header chain ..." Not sure what you mean: Section 3 is all about defining the terms. Am I missing something? > should this be "... the entire IPv6 header chain ..."? Yes. Will fix this. > -- section 3, rational for item 1: "An implementation that has such > an implementation-specific limit MUST NOT claim compliance with this > specification." > > That's an odd use of 2119 language; I assume this to be true anytime > an implementation violates a MUST/MUST NOT assertion. You're right. Should we just change this to lowercase, or do you think we should remove the whole sentence? > -- section 3, rational for list item 3: > > It would be helpful if this rational said why dropping unrecognized > next header values is needed for the purpose, not just the fact that > 7045 allows it to be dropped. How about adding this at the end of the RATIONALE: "An unrecognized Next Header value could possibly identify an IPv6 Extension Header, and thus be leveraged to conceal a DHCPv6-server packet". > -- section 3, list item 4: > > Am I correct in assuming that there might be other (non-dhcp) reasons > a device might still drop packets that otherwise pass the > dhcpv6-shield tests? Yes. Why? FWIW, the filtering rules in this document just talk about whether a packet should be blocked or not based on these rules. > -- section 3, paragraph after list item 4: > > The comment that dropped packets SHOULD be logged is redundant with > the same statement in the numbered rules. How about changing this: If a packet is dropped due to this filtering policy, then the packet drop event SHOULD be logged in an implementation-specific manner as a security fault. The logging mechanism SHOULD include a drop counter dedicated to DHCPv6-Shield packet drops. to: The above rules require that if a packet is dropped due to this filtering policy, the packet drop event be logged in an implementation-specific manner as a security fault. The logging mechanism SHOULD include a drop counter dedicated to DHCPv6-Shield packet drops. ? (and there are a few more requirements when it comes to *what* should be logged, as noted by others during the IETF LC). > -- section 7, first paragraph: > > Please expand DoS on first mention. Will do. Thanks! > -- section 7, 2nd to last paragraph: "... on a port not allowed to > send such packets ..." > > Should that be "forward" or "receive"? (I assume this still talks > about L2 switch "ports", not UDP ports?) Yes. But we will clarify the terminology and use "is not allowed to receive.." in all cases. Thanks! Best regards, -- Fernando Gont SI6 Networks e-mail: fgont@xxxxxxxxxxxxxxx PGP Fingerprint: 6666 31C6 D484 63B2 8FB1 E3C4 AE25 0D55 1D4E 7492