[Dnsmasq-discuss] [PATCH] Set reply interface in unicast DHCP reply under Linux
Simon Kelley
simon at thekelleys.org.uk
Thu Mar 19 23:33:45 GMT 2015
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Looks good to me. I can't immediately see any situation where it would
cause problems.
I'm going to pull this into the mainline, and see how it goes.
Cheers,
Simon.
On 18/03/15 16:09, Lung-Pin Chang wrote:
> Hi folks,
>
> Recently we are investigating an issue reported by one of our
> customer.
>
> The problematic unit is a Linux-based box with dual ethernet
> ports, and both of them are connected into
>
> the same network with IPs manually configured within the same
> subnet (say, 10.56.78.2/24 & 10.56.78.1/24).
>
> Routing table on the box now looks like the following: DiskStation>
> ip route 10.56.78.0/24 dev eth1 proto kernel scope link src
> 10.56.78.2 10.56.78.0/24 dev eth0 proto kernel scope link src
> 10.56.78.1
>
> When we're trying to offer DHCP leases over eth0 (with
> --bind-interfaces), the kernel picks the route via eth1,
>
> causing mismatch in the IP header and DHCP server entries within
> the DHCPACK packet.
>
> The clients (we've tested dhclient 4.3.2) tossed this DHCPACK,
> hence it would be unable to get any lease within the network.
>
> As the kernel always prefer the first route in this multipath case
> (see fib_get_table in include/net/ip_fib.h of kernel source),
>
> it seems the proper way to mitigate this is to set the outbound
> interface via cmsg,
>
> as done in the broadcast in dhcp_packet() of dhcp.c.
>
> I've consolidated the cmsg creation in bcast & ucast case into one,
> as shown in [1],
>
> and some quick tests with the patch proved it works with the case
> mentioned above.
>
> Would like to hear your comments of this patch via list, direct
> mail or GitHub, thanks!
>
> [1]:
> https://github.com/iamben/dnsmasq/commit/fbd4ff8ebc62bb9ddb9f186a7473087972439a7e
>
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iEYEARECAAYFAlULXNkACgkQKPyGmiibgrcecACfUiRKA03gu11EQyslFycyVGp1
1mQAn1hW8a0VJ8PoQ2UMxg5582louRAu
=xYI5
-----END PGP SIGNATURE-----
More information about the Dnsmasq-discuss
mailing list