On Tue, 2022-09-06 at 13:24 +0100, Simon Kelley wrote:
> > CAUTION: This email originated from outside of the organization. Do
> > > not click links or open attachments unless you recognize the
> > sender > and know the content is safe.
> > 
> > 
> > On 02/09/2022 14:03, Luis Thomas wrote:
> > > > Hi everyone,
> > > > 
> > > > We are using both dnsmasq and isc dhcrelay as dhcp-relays for >
> > > > > dhcpv6
> > > > only.
> > > > 
> > > > we launch dnsmasq like this:
> > > > 
> > > >       dnsmasq -d \
> > > >       --conf-file=/dev/null \
> > > >       --dhcp-relay fd12:3456::b6e3:f9ff:fea5:fa5b,2020:abcd::1
> > > > \
> > > >       --except-interface=lo \
> > > >       --interface=tun0,eno2 \
> > > >       --port 0
> > > > 
> > > > and isc dhcrelay like this:
> > > > 
> > > >       dhcrelay -d -6 -l tun0 -u 2020:abcd::1%eno2 --no-pid
> > > > 
> > > > tun0 address is fd12:3456::b6e3:f9ff:fea5:fa5b.
> > > > eno2 address is 2020:abcd::2.
> > > > 
> > > > With dnsmasq the source address of the relay-forward packets is
> > > > the
> > > > address of tun0.
> > > > With dhcrelay the source address of the relay-forward packets
> > > > is > > the
> > > > address of eno2.
> > > > 
> > > > We don't really understand why it so on dnsmasq (or dhcrelay
> > > > for > > that
> > > > matter), could someone explain it to us ? RFC 3315 section 20.
> > > > > > Relay
> > > > Agent Behavior says nothing about the source address.
> > > > 
> > > > In our use case it makes more sense that the source address of
> > > > the
> > > > relay-forward packet is the address of eno2 since it's the
> > > > outbound
> > > > interface (and the one that will receive the replies).
> > > > 
> > > > Nevertheless the attached patch fixes this issue as it sets the
> > > > > > source
> > > > address of relay-forward packets to be the address of the
> > > > "upper"
> > > > interface.
> > > > 
> > > > We've also attached two filtered pcap files of a wireshark
> > > > capture
> > > > showing the difference before and after the patch on the
> > > > machine
> > > > hosting the dhcp server and the machine hosting the dhcp_relay.
> > > > 
> > > > Regards,
> > > > 
> > > > 
> > 
> > Hmm,
> > 
> > Looking at the code, I obviously intended the current behaviour: >
> > there's
> > a comment to that effect /* source address == relay address */ and
> > > the
> > code goes to the effort of setting up the source address and
> > calling
> > send_from() which supplies that to the kernel.
> > 
> > The question, therefore, is why? I think this probably a carry-over
> > > from
> > DHCPv4, where the "giaddr" field is overloaded to specify the
> > subnet > on
> > which the client resides, and the global address of the relay. It's
> > > also
> > the case that a configured V4 client communicates directly with the
> > server, bypassing the relay , so the server has to have a route to
> > > the
> > client-side subnet of the relay in all cases.
> > 
> > DHCPv6 is not the same: the relay is always involved in client-
> > server
> > communication; it's actually a proxy, not a relay, so the need for
> > > the
> > server to have a route to the client-side is no longer there and it
> > makes more sense for the server to use the server-side address to >
> > return
> > messages to the client.
> > 
> > You're right that RFC3315 is silent on this, and so is RFC8415, as
> > > far
> > as I can see. Googling did find
> > https://urldefense.com/v3/__https://www.cisco.com/c/en/us/td/docs/switches/lan/catalyst9500/software/release/16-8/configuration_guide/sec/b_168_sec_9500_cg/b_168_sec_9500_cg_chapter_0101000.pdf__;!!N30Cs7Jr!Q421ImOmP1QY1W0cGWn4UubtRyenNYwk6XaKoLPqef5zUZZiyFVzXHQzLE8-W4aNa410kA0i5iyv98b0mTv_hA$
> > and
> > https://urldefense.com/v3/__https://techhub.hpe.com/eginfolib/networking/docs/switches/5710/5200-4993_l3-ip-svcs_cr/content/517706420.htm__;!!N30Cs7Jr!Q421ImOmP1QY1W0cGWn4UubtRyenNYwk6XaKoLPqef5zUZZiyFVzXHQzLE8-W4aNa410kA0i5iyv98YVw3DtJQ$
> > both of which state that the default is the server-side interface
> > address. Of course, the behaviour of ISC code is a strong push in
> > the
> > same direction.
> > 
> > 
> > TLDR; I think the behaviour change you want is correct. I
> > understand > why
> > the patch you submitted went for minimal-change, but I'd like to go
> > > for
> > maximum-simplification instead, removing the calculation of the >
> > address
> > on "from" and the call to send_from(). I will push that in the next
> > > day
> > or two.
> > 
> > 
> > Cheers.
> > 
> > Simon.
> > 
> > 
> > > > _______________________________________________
> > > > Dnsmasq-discuss mailing list
> > > > Dnsmasq-discuss@lists.thekelleys.org.uk
> > > > https://urldefense.com/v3/__https://lists.thekelleys.org.uk/cgi-bin/mailman/listinfo/dnsmasq-discuss__;!!N30Cs7Jr!Q421ImOmP1QY1W0cGWn4UubtRyenNYwk6XaKoLPqef5zUZZiyFVzXHQzLE8-W4aNa410kA0i5iyv98aWSitojA$
> > 
> > _______________________________________________
> > Dnsmasq-discuss mailing list
> > Dnsmasq-discuss@lists.thekelleys.org.uk
> > https://urldefense.com/v3/__https://lists.thekelleys.org.uk/cgi-bin/mailman/listinfo/dnsmasq-discuss__;!!N30Cs7Jr!Q421ImOmP1QY1W0cGWn4UubtRyenNYwk6XaKoLPqef5zUZZiyFVzXHQzLE8-W4aNa410kA0i5iyv98aWSitojA$


Hi Simon,

Thank you for your explanations, we'll gladly test your changes once
they're pushed.

On a completely different note, do you have an idea on when 2.87 will
be released ?

Cheers,

Luis

-- 
Luis Thomas


_______________________________________________
Dnsmasq-discuss mailing list
Dnsmasq-discuss@lists.thekelleys.org.uk
https://lists.thekelleys.org.uk/cgi-bin/mailman/listinfo/dnsmasq-discuss

Reply via email to