twosigma / twosigma/nsncd

Can't handle "Additional" section

Open
#90 10 comments 0 reactions 0 assignees View on GitHub
Dominant language
Rust
Stars
78
Forks
22
Avg merge
2d 3h
Merged PRs (30d)
13

Description

I have a router with built-in DNS server capabilities. It's behaving in the following way:

1. When it's queried for a name that has multiple IP addresses, it returns all of them in the ANSWER section.
image

---

2. When it's queried again in the following few seconds, it returns just a single answer in the ADDITIONAL section.
image

---

Now, I'm not sure why, but when an answer contains multiple responses, nsncd seems to repeat the query. If the DNS server responds again with multiple responses, everything is fine, and nsncd answers on its front-end socket with a single IP address. But when I use the DNS server described above, it returns a strange response upon receiving the upstream strange response:

image

image

---

For comparison, here's a good response with google.com's IP address (it seems to always return just one IP address from both my strange DNS server, as well as 8.8.8.8):
image

---

I don't know much about rust, neither about nsncd in particular. I'm a NixOS user with access to this peculiar DNS server for only a few days. So anyone debugging this please do let me know if you want me to provide additional information.

Contributor guide

Open the contributing guide

Research direction

Reproduce the issue with the described router DNS server and compare responses that place records in ANSWER versus ADDITIONAL sections. Trace nsncd's upstream response handling and verify that an ADDITIONAL-section response is parsed correctly and produces the expected single IP address on the frontend socket.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
networking
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.