Opened 3 years ago
Last modified 18 months ago
#18404 new defect
sysntpd uses the wrong source address
| Reported by: | jch@… | Owned by: | developers |
|---|---|---|---|
| Priority: | normal | Milestone: | |
| Component: | base system | Version: | Barrier Breaker 14.07 |
| Keywords: | busybox ntp | Cc: |
Description
Sysntpd doesn't use the destination address of the request as the source address, it defers to the kernel to choose one. This is incorrect with multiple interfaces.
20:35:04.727958 IP 192.168.3.198.37306 > 192.168.1.1.123: NTPv3, Client, length 48
20:35:04.728275 IP 192.168.3.1.123 > 192.168.3.198.37306: NTPv3, Server, length 48
Here, 192.168.1.1 is the address advertised in DNS. The NTP client sends a request to that address, but sysntpd replies from the address 192.168.3.1 (the address assigned to the link on which the request came). The client, correctly enough, discards the reply.

I've checked the source, and there's nothing obviously wrong -- it uses the right auxiliary data, and would appear to do the right thing.
The issue is also not due to some strange SNATing, since it persists even if the firewall is disabled.