From b3d7011130a3b6311ed80bdca3a11a356d7d2b2a Mon Sep 17 00:00:00 2001 From: Christof Schulze Date: Wed, 16 May 2018 16:59:47 +0200 Subject: [PATCH] gluon-core: make sure dns traffic leaves the correct interface when there is ipv6 wan uplink --- package/gluon-core/luasrc/lib/gluon/upgrade/820-dns-config | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/package/gluon-core/luasrc/lib/gluon/upgrade/820-dns-config b/package/gluon-core/luasrc/lib/gluon/upgrade/820-dns-config index 18b44d3f..c29e5169 100755 --- a/package/gluon-core/luasrc/lib/gluon/upgrade/820-dns-config +++ b/package/gluon-core/luasrc/lib/gluon/upgrade/820-dns-config @@ -16,6 +16,13 @@ uci:delete('dhcp', dnsmasq, 'cachesize') uci:delete('firewall', 'client_dns') if dns.servers then + localipv6 = uci:get("network", "loopback", "ip6addr") + -- below is an ugly hack that makes sure the dns upstream traffic is leaving the correct network interface. + appended = {} + for i,s in ipairs(dns.servers) do + table.insert(appended, s .. "@" .. string.sub(localipv6,0, string.find(localipv6,"/")-1 ) ) + end + uci:set('dhcp', dnsmasq, 'server', appended ) -- allow inbound traffic for dns from client zone uci:section('firewall', 'rule', 'client_dns', { src = 'local_client',