惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
V2EX
博客园 - 叶小钗
Last Week in AI
Last Week in AI
Google DeepMind News
Google DeepMind News
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Microsoft Security Blog
Microsoft Security Blog
腾讯CDC
P
Proofpoint News Feed
大猫的无限游戏
大猫的无限游戏
The Cloudflare Blog
aimingoo的专栏
aimingoo的专栏
月光博客
月光博客
量子位
A
About on SuperTechFans
Engineering at Meta
Engineering at Meta
Apple Machine Learning Research
Apple Machine Learning Research
Jina AI
Jina AI
博客园 - Franky
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
人人都是产品经理
人人都是产品经理
D
DataBreaches.Net
博客园_首页
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Stack Overflow Blog
Stack Overflow Blog

dnsmasq-discuss

[Dnsmasq-discuss] Announce: dnsmasq-2.92rc2 Re: [Dnsmasq-discuss] [PATCH] Fix arguments order for chaos subdomain check Re: [Dnsmasq-discuss] patch: block-file/allow-file - for review/feedback Re: [Dnsmasq-discuss] patch: block-file/allow-file - for review/feedback Re: [Dnsmasq-discuss] patch: block-file/allow-file - for review/feedback Re: [Dnsmasq-discuss] patch: block-file/allow-file - for review/feedback [Dnsmasq-discuss] patch: block-file/allow-file - for review/feedback [Dnsmasq-discuss] NFTsets and hosts-files [Dnsmasq-discuss] [PATCH] Allow expired RRSIGs when stale caching is enabled [Dnsmasq-discuss] [PATCH] Fix local host records being overridden by upstream NXDOMAIN [Dnsmasq-discuss] [PATCH] Fix arguments order for chaos subdomain check Re: [Dnsmasq-discuss] Malformed RRSIG Can Crash dnsmasq [Dnsmasq-discuss] Malformed NSEC/NSEC3 Can Hang dnsmasq [Dnsmasq-discuss] Malformed RRSIG Can Crash dnsmasq [Dnsmasq-discuss] Security - IMPORTANT Re: [Dnsmasq-discuss] Issue with circuit-id matching on dhcp requests Re: [Dnsmasq-discuss] Issue with circuit-id matching on dhcp requests Re: [Dnsmasq-discuss] Issue with circuit-id matching on dhcp requests [Dnsmasq-discuss] Issue with circuit-id matching on dhcp requests Re: [Dnsmasq-discuss] [PATCH] bpf.c: fix memory leak in arp_enumerate() on BSD Re: [Dnsmasq-discuss] [PATCH] bpf.c: fix memory leak in arp_enumerate() on BSD Re: [Dnsmasq-discuss] dnssec problem here and now Re: [Dnsmasq-discuss] dnssec problem here and now [Dnsmasq-discuss] dnssec problem here and now Re: [Dnsmasq-discuss] server= with interface parameter changes behavior over time Re: [Dnsmasq-discuss] [PATCH] bpf.c: fix memory leak in arp_enumerate() on BSD Re: [Dnsmasq-discuss] [PATCH] bpf.c: fix memory leak in arp_enumerate() on BSD Re: [Dnsmasq-discuss] [PATCH] Preserve existing log file permissions when adding group-write bit. [Dnsmasq-discuss] server= with interface parameter changes behavior over time [Dnsmasq-discuss] [PATCH] bpf.c: fix memory leak in arp_enumerate() on BSD
Re: [Dnsmasq-discuss] server= with interface parameter ch...
Michael Bruck · 2026-05-20 · via dnsmasq-discuss
For the scenario described in the patch it ends up using
SO_BINDTODEVICE until ifindex is filled in by unrelated events. So
those users may see inconsistent behavior.

At the time that patch was added allocate_sfd() contained a hardwired
lookup before the call to local_bind():

if (intname && strlen(intname) != 0)
  ifindex = if_nametoindex(intname); /* index == 0 when not binding to
an interface */

That is gone now. In 2.90 a lookup seems to happen only in
enumerate_interfaces().
Presumably that lookup doesn't happen in my case and ifindex is not
filled in. If this is relevant: I am using --bind-interfaces.

Regards,

Michael


Am Mo., 4. Mai 2026 um 22:58 Uhr schrieb Simon Kelley <[email protected]>:
>
> Thanks for this,
>
> https://thekelleys.org.uk/gitweb/?p=dnsmasq.git;a=commit;h=9d6918d32cafde4cd99c58d5c0c1d46ab328bc5e
>
> and especially its commit message, is relevant.
>
> I'll try and get back to looking at this in a week or so, please prod me
> again if I don't.
>
>
> Cheers,
>
> Simon.
>
>
>
> On 27.04.2026 06:43, Michael Bruck wrote:
> > Hi,
> >
> > with dnsmasq 2.90 I try to perform lookups from within a separate VRF:
> >
> > server=62.109.121.17@EXTVRF0
> > server=62.109.121.18@EXTVRF0
> >
> > As expected %EXTVRF0 is set for the ports:
> >
> > # nslookup google.at 127.0.0.1 & ss -aneup | grep dnsmasq
> > UNCONN 0      0                     0.0.0.0%EXTVRF0:24227
> > 0.0.0.0:*    users:(("dnsmasq",pid=20890,fd=21)) ino:131069 sk:301f
> > cgroup:/ <->
> > UNCONN 0      0                     0.0.0.0%EXTVRF0:30488
> > 0.0.0.0:*    users:(("dnsmasq",pid=20890,fd=22)) ino:131070 sk:3021
> > cgroup:/ <->
> >
> > But later %EXTVRF0 goes missing:
> >
> > # nslookup google.de 127.0.0.1 & ss -aneup | grep dnsmasq
> > UNCONN 0      0                             0.0.0.0:8647
> > 0.0.0.0:*    users:(("dnsmasq",pid=14818,fd=22)) ino:131106 sk:1021
> > cgroup:/ <->
> > UNCONN 0      0                             0.0.0.0:28338
> > 0.0.0.0:*    users:(("dnsmasq",pid=14818,fd=21)) ino:131105 sk:1022
> > cgroup:/ <->
> >
> > The first case works with net.ipv4.udp_l3mdev_accept=0, i.e. the
> > return packets being contained inside the VRF device. The second only
> > works with net.ipv4.udp_l3mdev_accept=1.
> >
> > Skimming over the code I see local_bind() in network.c use
> > SO_BINDTODEVICE when it has no ifindex but
> > IP_UNICAST_IF/IPV6_UNICAST_IF once it obtained an ifindex.
> > IP_UNICAST_IF seems to only affect outgoing packets (unlike
> > SO_BINDTODEVICE), which would match the observed behavior.
> >
> > It looks like the change in behavior can be triggered by touching the
> > interface that dnsmasq listens on (ip l s X down/up).
> > Presumably the interface change indirectly causes the ifindex to be
> > stored in the server struct.
> >
> > I think it needs to use either
> > a) SO_BINDTODEVICE/SO_BINDTOIFINDEX or
> > b) IP*_UNICAST_IF with a ifindex lookup when index is unknown
> > but not a mix of these. Maybe even a way to pick a/b, since they both
> > may be useful for different setups (and apparently the second requires
> > fewer privileges).
> >
> > Unrelated, but this looked suspicious: add_update_server may reuse an
> > existing entry and overwrite serv->interface without resetting
> > serv->ifindex.
> >
> > Regards,
> > Michael Bruck
> >
> > _______________________________________________
> > Dnsmasq-discuss mailing list
> > [email protected]
> > https://lists.thekelleys.org.uk/cgi-bin/mailman/listinfo/dnsmasq-discuss
> >
>

_______________________________________________
Dnsmasq-discuss mailing list
[email protected]
https://lists.thekelleys.org.uk/cgi-bin/mailman/listinfo/dnsmasq-discuss