Bug 732 - tcp-mss, outgoing-tcp-mss option
tcp-mss, outgoing-tcp-mss option
Product: NSD
Classification: Unclassified
Component: NSD Code
Other All
: P5 enhancement
Assigned To: NSD team
Depends on:
  Show dependency treegraph
Reported: 2015-12-19 20:21 CET by Daisuke HIGASHI
Modified: 2016-01-05 11:40 CET (History)
1 user (show)

See Also:

nsd-4.1.7-tcp-mss.diff (10.26 KB, application/octet-stream)
2015-12-19 20:21 CET, Daisuke HIGASHI

Note You need to log in before you can comment on or make changes to this bug.
Description Daisuke HIGASHI 2015-12-19 20:21:45 CET
Created attachment 312 [details]


   I have created a patch to add two options, tcp-mss and outgoing-tcp-mss to set TCP MSS via setsockopt(TCP_MAXSEG). When PMTUD doesn't work correctly, setting TCP MSS to value lower than common MSS on ethernet would help.

   tcp-mss: <number>
              Maximum  segment  size  (MSS)  of TCP socket on which the server
              responds to queries.

    outgoing-tcp-mss: <number>
              Maximum segment size  (MSS)  of  TCP  socket  for  outgoing  XFR
              request to other namesevers.

  PMTUD doesn't work under  ECMP server load-balancing or anycast deployment in some cases[1][2]. Reducing TCP MSS is easy and suitable method for DNS servers to address this issue.
  I have tested this patch on Ubuntu12, CentOS7, and FreeBSD10. But on FreeBSD setsockopt(TCP_MAXSEG) is implemented but it doesn't work [3].

Comment 1 Daisuke HIGASHI 2015-12-19 20:22:51 CET
I submitted same patch for Unbound
Comment 2 Wouter Wijngaards 2016-01-05 11:40:07 CET
Hi Daisuke,

Thank you for your patch.  I have applied it to the code repository.

Best regards, Wouter