Subject: Re: [dhcwg] [v6ops] [EXTERNAL] Re: Question to DHCPv6 Relay Implementors regarding draft-ietf-dhc-dhcpv6-pd-relay-requirements

From: Jen Linkova <[email-masked]>
Date: Wed, 4 Nov 2020 18:27:50 +1100

On Fri, Oct 30, 2020 at 3:24 AM <[email-masked]> wrote:
> Sorry for the delay in reply, I’ve been out of the office for the last few weeks for various reasons.
>
> Here’s a new wording proposal incorporating Jen & Bernie’s suggestions:
>
> R-4
> To prevent routing loops, the relay SHOULD implement a configurable policy to drop packets
> received on a DHCP-PD client facing interface with a destination address in a prefix delegated
> to a client connected to that interface, as follows:  For point-to-point links, when the packet’s
> ingress and egress interfaces match. For multi-access links, when the packet’s ingress and
> egress interface match, and the source MAC and next-hop MAC addresses match. An
> ICMPv6 Type 1, Code 6 (Destination Unreachable, reject route to destination) error message MAY
> be sent as per [RFC4443], section 3.1.  The ICMP policy SHOULD be configurable.

That looks good, thanks for  updating the text!

> On 15. Oct 2020, at 03:51, Jen Linkova <[email-masked]> wrote:
>
> On Wed, Oct 14, 2020 at 12:44 AM Bernie Volz (volz) <[email-masked]> wrote:
>
> If not, perhaps we just say:
>
> R-4
> To prevent routing loops, the relay SHOULD implement a configurable policy to drop traffic received from an uplink interface as follows:
>
>
> I'm not sure 'from an uplink interface' makes sense. In the case of a
> routing loop caused by an amnesiac DHCP-PD client it would be a
> downstream interface.
> The scenario when such traffic arrives from an uplink interface is
> 'the uplink router believes the prefix is delegated to the client but
> the relay does not have a route pointing to the client so it sends
> traffic back' - so more likely 'an amnesiac relay' case.
>
> For point-to-point links, when the packet's ingress and egress interfaces match. For multi-access links, when the packet's ingress and egress interface match, and the source MAC and next-hop MAC addresses match. An ICMPv6 Type 1, Code 6 (Destination Unreachable, reject route to
> destination) error message MAY be sent as per [RFC4443], section 3.1.  The ICMP policy SHOULD be configurable.
>
> - Bernie
>
> -----Original Message-----
> From: [email-masked] <[email-masked]>
> Sent: Tuesday, October 13, 2020 9:16 AM
> To: Michael Richardson <[email-masked]>; Jen Linkova <[email-masked]>
> Cc: Bernie Volz (volz) <[email-masked]>; dhcwg <[email-masked]>; 6man <[email-masked]>; v6ops list <[email-masked]>
> Subject: Re: [dhcwg] [v6ops] [EXTERNAL] Re: Question to DHCPv6 Relay Implementors regarding draft-ietf-dhc-dhcpv6-pd-relay-requirements
>
> Hi,
>
> Thanks for all of the discussion on this. We’ve reworked the requirement as follows:
>
> R-4
> To prevent routing loops, the relay SHOULD implement a configurable policy to drop client traffic as follows:  For point-to-point links, when the packet's ingress and egress interfaces match. For multi-access links, when the packet's ingress and egress interface match, and the source MAC and next-hop MAC addresses match. An ICMPv6 Type 1, Code 6 (Destination Unreachable, reject route to
> destination) error message MAY be sent back to the client.  The ICMP policy SHOULD be configurable.
>
> Thanks,
> Ian
>
> On 9. Oct 2020, at 17:41, Michael Richardson <[email-masked]> wrote:
>
>
> Jen Linkova <[email-masked]> wrote:
>
> I think there is confusion re: the scenario we are talking about.
> I've attached the diagram for the case which concerns me.
> So:
> - The Relay R has an interface eth0 connected to a switch S.
> - Devices A and B are connected to the same switch and using R as a
> default gateway.
> - The prefix 2001:db8::/56 was delegated to a client A via the relay R.
>
>
> a friendly amendment to your example to aid in human comprehension:
>    } - The prefix 2001:db8:0000:0123:/64 was delegated to a client A via the relay R.
>    }  - R installs a route for 2001:db8:0000:0123:/64 towards A via eth0.
>
> - The device B (which has an address NOT from the delegated prefix,
> but from another /64 assigned to that common link, let's sat
> 2001:db8:cafe::/64) sends a packet to an address from the delegated
>
>
> now, my brain can more clearly see that 2001:db8:cafe::/64 is not
> within 2001:db8:0000:0123:/64, while I had to use a few extra brain
> cells to see that it wasn't in that ::/56 :-)
>
> What I'd expect to happen (with DHCP-PD or without - e.g. if R has a
> static route towards A, not a dynamic route produced by PD):
> - the packet is sent to A. Well, if A does not have a route to
> 2001:db8::42 then indeed a routing loop might happen. But if A does
> have a route, the packet will be delivered.
>
>
> What seems to be required by R4:
> - R detects that the packet is received via eth0 and needs to be sent
> back to eth0. R4 seems to require such packets to be dropped.
> So if B would never be able to communicate to any address in the
> delegated prefix, right?
>
>
> Am I missing anything?
>
>
> I think that you got it right.
>
> Perhaps the missing piece of the rule is don’t send it back to where it came from, based on link layer addresses (or link if point-to-point).
>
>
> Yes. If R4 was saying 'drop the packet if it comes from the same
> link-layer address you are going to send it back' - it would make
> total sense. But I don't think routers do *that*.
>
>
> Yes, if we made the check on L2 address, then it would work.
> And I agree that routers are exactly doing that.
>
> I think that it also works if B is a router with additional interfaces
> downstream, unless there are multiple paths.
>
> --
> Michael Richardson <[email-masked]>   . o O ( IPv6 IøT consulting )
>          Sandelman Software Works Inc, Ottawa and Worldwide
>
> --------------------------------------------------------------------
> IETF IPv6 working group mailing list
> [email-masked]
> Administrative Requests: https://www.ietf.org/mailman/listinfo/ipv6
> --------------------------------------------------------------------
>
>
>
>
> --
> SY, Jen Linkova aka Furry
>
>

-- 
SY, Jen Linkova aka Furry

---

From: "Bernie Volz (volz)" <[email-masked]>
Date: Wed, 4 Nov 2020 12:14:52 +0000

Hi ... looks good but perhaps MAC address is too Ethernet specific and just link-layer address would be better?

- Bernie

On Oct 29, 2020, at 12:24 PM, "[email-masked]" <[email-masked]> wrote:

Hi,

R-4

Thanks,
Ian

On 15. Oct 2020, at 03:51, Jen Linkova <[email-masked]<mailto:[email-masked]>> wrote:

On Wed, Oct 14, 2020 at 12:44 AM Bernie Volz (volz) <[email-masked]<mailto:[email-masked]>> wrote:
If not, perhaps we just say:

R-4

- Bernie

-----Original Message-----
From: [email-masked]<mailto:[email-masked]> <[email-masked]<mailto:[email-masked]>>
Sent: Tuesday, October 13, 2020 9:16 AM
To: Michael Richardson <[email-masked]<mailto:[email-masked]>>; Jen Linkova <[email-masked]<mailto:[email-masked]>>
Cc: Bernie Volz (volz) <[email-masked]<mailto:[email-masked]>>; dhcwg <[email-masked]<mailto:[email-masked]>>; 6man <[email-masked]<mailto:[email-masked]>>; v6ops list <[email-masked]<mailto:[email-masked]>>
Subject: Re: [dhcwg] [v6ops] [EXTERNAL] Re: Question to DHCPv6 Relay Implementors regarding draft-ietf-dhc-dhcpv6-pd-relay-requirements

Hi,

R-4

Thanks,
Ian

On 9. Oct 2020, at 17:41, Michael Richardson <[email-masked]<mailto:[email-masked]>> wrote:

Jen Linkova <[email-masked]<mailto:[email-masked]>> wrote:

Am I missing anything?

--
Michael Richardson <[email-masked]<mailto:[email-masked]>>   . o O ( IPv6 IøT consulting )
         Sandelman Software Works Inc, Ottawa and Worldwide

--------------------------------------------------------------------
IETF IPv6 working group mailing list
[email-masked]<mailto:[email-masked]>
Administrative Requests: https://www.ietf.org/mailman/listinfo/ipv6
--------------------------------------------------------------------

---

From: Timothy Winters <[email-masked]>
Date: Wed, 4 Nov 2020 08:01:48 -0500

I agree with Bernie, link-layer address would be an improvement to the
Mac Address.

~Tim

On Wed, Nov 4, 2020 at 7:15 AM Bernie Volz (volz) <volz=
[email-masked]> wrote:

> To prevent routing loops, the relay SHOULD implement a configurable policy
> to drop traffic received from an uplink interface as follows:
>
>
> For point-to-point links, when the packet's ingress and egress interfaces
> match. For multi-access links, when the packet's ingress and egress
> interface match, and the source MAC and next-hop MAC addresses match. An
> ICMPv6 Type 1, Code 6 (Destination Unreachable, reject route to
> Cc: Bernie Volz (volz) <[email-masked]>; dhcwg <[email-masked]>; 6man <
> [email-masked]>; v6ops list <[email-masked]>
> Subject: Re: [dhcwg] [v6ops] [EXTERNAL] Re: Question to DHCPv6 Relay
> Implementors regarding draft-ietf-dhc-dhcpv6-pd-relay-requirements
>
> Hi,
>
> To prevent routing loops, the relay SHOULD implement a configurable policy
> to drop client traffic as follows:  For point-to-point links, when the
> packet's ingress and egress interfaces match. For multi-access links, when
> the packet's ingress and egress interface match, and the source MAC and
> next-hop MAC addresses match. An ICMPv6 Type 1, Code 6 (Destination
> Unreachable, reject route to
> Perhaps the missing piece of the rule is don’t send it back to where it
> came from, based on link layer addresses (or link if point-to-point).
>
>
> _______________________________________________
> v6ops mailing list
> [email-masked]
> https://www.ietf.org/mailman/listinfo/v6ops
>

---

From: "Bernie Volz (volz)" <[email-masked]>
Date: Wed, 4 Nov 2020 23:57:06 +0000

I’m also wondering given issues the IESG raised for the https://tools.ietf.org/html/draft-ietf-v6ops-cpe-slaac-renum document regarding the text…
2<https://tools.ietf.org/html/draft-ietf-v6ops-cpe-slaac-renum-05#section-2>.  Requirements Language

   Take careful note: Unlike other IETF documents, the key words "MUST",
   "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT",
   "RECOMMENDED", "MAY", and "OPTIONAL" in this document are not used as
   described in [RFC2119<https://tools.ietf.org/html/rfc2119>].  This document uses these keywords not
   strictly for the purpose of interoperability, but rather for the
   purpose of establishing industry-common baseline functionality.  As
   such, the document points to several other specifications (preferable
   in RFC or stable form) to provide additional guidance to implementers
   regarding any protocol implementation required to produce a
   successful CE router that interoperates successfully with a
   particular subset of currently deploying and planned common IPv6
   access networks.

   Note: the aforementioned terms are used in exactly the same way as in
   [RFC7084<https://tools.ietf.org/html/rfc7084>], with the above explanation copied verbatim from
   Section 1.1 of [RFC7084]<https://tools.ietf.org/html/rfc7084#section-1.1>.

See https://datatracker.ietf.org/doc/draft-ietf-v6ops-cpe-slaac-renum/ballot/.

… whether it would be wise to follow the IESG guidance and drop the special use (in section 2.3)? Otherwise, you may run into the same issues the cpe-slaac-renum document did.

It may be wise to wait until the dust settles with that document and the text that it ends up using (perhaps just the default boilerplate for the keywords). And apply that.

I WILL assume you will do that (as I am currently the one holding the document) unless I hear otherwise from you. Or, you could decide to just update it to follow the standard boilerplate for these keywords – if so, be sure to use the latest version, such as what was used in https://tools.ietf.org/html/rfc8925 (section 1.1).

Thanks!

  *   Bernie

From: dhcwg <[email-masked]> On Behalf Of Timothy Winters
Sent: Wednesday, November 4, 2020 8:02 AM
To: Bernie Volz (volz) <volz=[email-masked]>
Cc: v6ops list <[email-masked]>; dhcwg <[email-masked]>
Subject: Re: [dhcwg] [v6ops] [EXTERNAL] Re: Question to DHCPv6 Relay Implementors regarding draft-ietf-dhc-dhcpv6-pd-relay-requirements

I agree with Bernie, link-layer address would be an improvement to the Mac Address.

~Tim

On Wed, Nov 4, 2020 at 7:15 AM Bernie Volz (volz) <volz=[email-masked]<mailto:[email-masked]>> wrote:
Hi ... looks good but perhaps MAC address is too Ethernet specific and just link-layer address would be better?
- Bernie

On Oct 29, 2020, at 12:24 PM, "[email-masked]<mailto:[email-masked]>" <[email-masked]<mailto:[email-masked]>> wrote:

Hi,

R-4

Thanks,
Ian

R-4

- Bernie

-----Original Message-----
From: [email-masked]<mailto:[email-masked]> <[email-masked]<mailto:[email-masked]>>
Sent: Tuesday, October 13, 2020 9:16 AM
To: Michael Richardson <[email-masked]<mailto:[email-masked]>>; Jen Linkova <[email-masked]<mailto:[email-masked]>>
Cc: Bernie Volz (volz) <[email-masked]<mailto:[email-masked]>>; dhcwg <[email-masked]<mailto:[email-masked]>>; 6man <[email-masked]<mailto:[email-masked]>>; v6ops list <[email-masked]<mailto:[email-masked]>>
Subject: Re: [dhcwg] [v6ops] [EXTERNAL] Re: Question to DHCPv6 Relay Implementors regarding draft-ietf-dhc-dhcpv6-pd-relay-requirements

Hi,

R-4

Thanks,
Ian

Am I missing anything?

_______________________________________________
v6ops mailing list
[email-masked]<mailto:[email-masked]>
https://www.ietf.org/mailman/listinfo/v6ops

---

From: [email-masked]
Date: Thu, 5 Nov 2020 15:47:46 +0100

Hi,

Just to be clear, are we talking about Michael’s proposed rewording/restructuring of the requirement text (here with Bernie’s link-layer wording change):

   R-4
   To prevent routing loops, the relay SHOULD implement a configurable
   policy to drop potential looping packets received on any DHCP-PD client
   facing interfaces.
   The policy SHOULD be configurable on a per-client or per-destination basis.

   Looping packets are those with a destination address in a prefix
   delegated to a client connected to that interface, as follows:

        1) For point-to-point links (e.g., PPPoE), when the packet’s ingress and egress
           interfaces match.

        2) For multi-access links (e.g., ethernet), when the packet’s
           ingress and egress interface match, and the source link-layer and next-hop 
           link-layer  addresses match.

   An ICMPv6 Type 1, Code 6 (Destination Unreachable, reject route to destination) error message MAY
   be sent as per [RFC4443], section 3.1.  The ICMP policy SHOULD be configurable.

Thanks,
Ian

> On 4. Nov 2020, at 14:01, Timothy Winters <[email-masked]> wrote:
> 
> 
> On Wed, Nov 4, 2020 at 7:15 AM Bernie Volz (volz) <volz=[email-masked] <mailto:[email-masked]>> wrote:
>> On Oct 29, 2020, at 12:24 PM, "[email-masked] <mailto:[email-masked]>" <[email-masked] <mailto:[email-masked]>> wrote:
>> 
>> 
>> Hi,
>> 
>>> On 15. Oct 2020, at 03:51, Jen Linkova <[email-masked] <mailto:[email-masked]>> wrote:
>>> 
>>> On Wed, Oct 14, 2020 at 12:44 AM Bernie Volz (volz) <[email-masked] <mailto:[email-masked]>> wrote:
>>>> From: [email-masked] <mailto:[email-masked]> <[email-masked] <mailto:[email-masked]>>
>>>> To: Michael Richardson <[email-masked] <mailto:[email-masked]>>; Jen Linkova <[email-masked] <mailto:[email-masked]>>
>>>> Cc: Bernie Volz (volz) <[email-masked] <mailto:[email-masked]>>; dhcwg <[email-masked] <mailto:[email-masked]>>; 6man <[email-masked] <mailto:[email-masked]>>; v6ops list <[email-masked] <mailto:[email-masked]>>
>>>>> On 9. Oct 2020, at 17:41, Michael Richardson <[email-masked] <mailto:[email-masked]>> wrote:
>>>>> 
>>>>> 
>>>>> Jen Linkova <[email-masked] <mailto:[email-masked]>> wrote:
>>>>> Michael Richardson <[email-masked] <mailto:[email-masked]>>   . o O ( IPv6 IøT consulting )
>>>>> [email-masked] <mailto:[email-masked]>
>>>>> Administrative Requests: https://www.ietf.org/mailman/listinfo/ipv6 <https://www.ietf.org/mailman/listinfo/ipv6>
> [email-masked] <mailto:[email-masked]>
> https://www.ietf.org/mailman/listinfo/v6ops <https://www.ietf.org/mailman/listinfo/v6ops>

---

From: [email-masked]
Date: Thu, 5 Nov 2020 16:05:01 +0100

Hi Bernie,

The Requirements text for this was taken from RFC7084 as originally it was expected that this draft would be similar in its format and approach. However, as the draft has developed, I don’t think that is still true. The main difference is that RFC7084 requirements are largely a list of ’these are the RFC’s that you need to implement' (hence the Requirements text).

The delegating relay draft’s requirements are mostly ‘standalone’ functional requirements, with only a small number referencing other RFCs, so I think the best approach here would just be to move to using the standard boilerplate. I’ll update.

Thanks,
Ian

> On 5. Nov 2020, at 00:57, Bernie Volz (volz) <volz=[email-masked]> wrote:
> 
> I’m also wondering given issues the IESG raised for the https://tools.ietf.org/html/draft-ietf-v6ops-cpe-slaac-renum <https://tools.ietf.org/html/draft-ietf-v6ops-cpe-slaac-renum> document regarding the text…
>  <>2 <https://tools.ietf.org/html/draft-ietf-v6ops-cpe-slaac-renum-05#section-2>.  Requirements Language
>  
>    described in [RFC2119 <https://tools.ietf.org/html/rfc2119>].  This document uses these keywords not
>    [RFC7084 <https://tools.ietf.org/html/rfc7084>], with the above explanation copied verbatim from
>    Section 1.1 of [RFC7084] <https://tools.ietf.org/html/rfc7084#section-1.1>.
>  
> See https://datatracker.ietf.org/doc/draft-ietf-v6ops-cpe-slaac-renum/ballot/ <https://datatracker.ietf.org/doc/draft-ietf-v6ops-cpe-slaac-renum/ballot/>.
>  
> I WILL assume you will do that (as I am currently the one holding the document) unless I hear otherwise from you. Or, you could decide to just update it to follow the standard boilerplate for these keywords – if so, be sure to use the latest version, such as what was used in https://tools.ietf.org/html/rfc8925 <https://tools.ietf.org/html/rfc8925> (section 1.1).
>  
> Thanks!
>  
> Bernie
>  
> https://www.ietf.org/mailman/listinfo/v6ops <https://www.ietf.org/mailman/listinfo/v6ops>_______________________________________________
> v6ops mailing list